indexing
description: "Implementation of DB_SELECTION"
legal: "See notice at end of class."
status: "See notice at end of class."
date: "$Date: 2007-04-16 12:45:58 -0700 (Mon, 16 Apr 2007) $"
revision: "$Revision: 67858 $"
class interface
DATABASE_SELECTION [G -> DATABASE create default_create end]
create
make (i: INTEGER_32)
SQL_SCAN
create {DATABASE_SELECTION}
string_make (n: INTEGER_32)
`n'
STRING_8
require STRING_8
non_negative_size: n >= 0
ensure STRING_8
empty_string: count = 0
area_allocated: capacity >= n
feature
adapt (s: STRING_8): DATABASE_SELECTION [G]
`s'
`s'
STRING_8
ensure STRING_8
adapt_not_void: Result /= Void
shared_implementation: Result.shared_with (s)
from_c (c_string: POINTER)
`c_string'
STRING_8
require STRING_8
c_string_exists: c_string /= default_pointer
ensure STRING_8
no_zero_byte: not has ('%U')
from_c_substring (c_string: POINTER; start_pos, end_pos: INTEGER_32)
`c_string'
STRING_8
require STRING_8
c_string_exists: c_string /= default_pointer
start_position_big_enough: start_pos >= 1
end_position_big_enough: start_pos <= end_pos + 1
ensure STRING_8
valid_count: count = end_pos - start_pos + 1
make (i: INTEGER_32)
SQL_SCAN
string_make (n: INTEGER_32)
`n'
STRING_8
require STRING_8
non_negative_size: n >= 0
ensure STRING_8
empty_string: count = 0
area_allocated: capacity >= n
format_make
DB_FORMAT
make_empty
STRING_8
ensure STRING_8
empty: count = 0
area_allocated: capacity >= 0
make_filled (c: CHARACTER_8; n: INTEGER_32)
`n'`c'
STRING_8
require STRING_8
valid_count: n >= 0
ensure STRING_8
count_set: count = n
area_allocated: capacity >= n
filled: occurrences (c) = count
make_from_c (c_string: POINTER)
`c_string'
STRING_8
require STRING_8
c_string_exists: c_string /= default_pointer
make_from_cil (a_system_string: SYSTEM_STRING)
`a_system_string'
STRING_8
require STRING_8
is_dotnet: {PLATFORM}.is_dotnet
make_from_string (s: STRING_8)
`s'
STRING_8
require STRING_8
string_exists: s /= Void
ensure STRING_8
not_shared_implementation: Current /= s implies not shared_with (s)
initialized: same_string (s)
feature
area: SPECIAL [CHARACTER_8]
TO_SPECIAL
bit_type: INTEGER_32 is 8
INTERNAL
boolean_field (i: INTEGER_32; object: ANY): BOOLEAN
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
boolean_field: field_type (i, object) = boolean_type
boolean_type: INTEGER_32 is 3
INTERNAL
character_32_field (i: INTEGER_32; object: ANY): CHARACTER_32
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
character_32_field: field_type (i, object) = character_32_type
character_32_type: INTEGER_32 is 12
INTERNALWide_character_type
INTERNAL
character_8_field (i: INTEGER_32; object: ANY): CHARACTER_8
`i'`object'
INTERNALcharacter_field
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
character_8_field: field_type (i, object) = character_8_type
character_8_type: INTEGER_32 is 2
INTERNALCharacter_type
INTERNAL
character_field (i: INTEGER_32; object: ANY): CHARACTER_8
`i'`object'
INTERNALcharacter_8_field
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
character_8_field: field_type (i, object) = character_8_type
character_type: INTEGER_32 is 2
INTERNALCharacter_8_type
INTERNAL
class_name (object: ANY): STRING_8
`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
class_name_of_type (type_id: INTEGER_32): STRING_8
`type_id'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
code (i: INTEGER_32): NATURAL_32
`i'
STRING_8
require STRING_GENERAL
valid_index: valid_index (i)
db_spec: DATABASE
HANDLE_SPEC
ensure HANDLE_SPEC
not_void: Result /= Void
double_field (i: INTEGER_32; object: ANY): REAL_64
`i'`object'
INTERNALreal_64_field
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
real_64_field: field_type (i, object) = real_64_type
double_type: INTEGER_32 is 6
INTERNALReal_64_type
INTERNAL
dynamic_type (object: ANY): INTEGER_32
`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
ensure INTERNAL
dynamic_type_nonnegative: Result >= 0
expanded_field_type (i: INTEGER_32; object: ANY): STRING_8
`i'
`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
is_expanded: field_type (i, object) = expanded_type
ensure INTERNAL
result_exists: Result /= Void
expanded_type: INTEGER_32 is 7
INTERNAL
false_constant: STRING_8 is "false"
STRING_8
field (i: INTEGER_32; object: ANY): ?ANY
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
not_special: not is_special (object)
field_name (i: INTEGER_32; object: ANY): STRING_8
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
not_special: not is_special (object)
ensure INTERNAL
result_exists: Result /= Void
field_name_of_type (i: INTEGER_32; type_id: INTEGER_32): STRING_8
`i'`type_id'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
index_large_enough: i >= 1
index_small_enought: i <= field_count_of_type (type_id)
field_offset (i: INTEGER_32; object: ANY): INTEGER_32
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
not_special: not is_special (object)
field_static_type_of_type (i: INTEGER_32; type_id: INTEGER_32): INTEGER_32
`i'`type_id'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
index_large_enough: i >= 1
index_small_enough: i <= field_count_of_type (type_id)
ensure INTERNAL
field_type_nonnegative: Result >= 0
field_type (i: INTEGER_32; object: ANY): INTEGER_32
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
ensure INTERNAL
field_type_nonnegative: Result >= 0
field_type_of_type (i: INTEGER_32; type_id: INTEGER_32): INTEGER_32
`i'`type_id'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
index_large_enough: i >= 1
index_small_enough: i <= field_count_of_type (type_id)
ensure INTERNAL
field_type_nonnegative: Result >= 0
fuzzy_index (other: STRING_8; start: INTEGER_32; fuzz: INTEGER_32): INTEGER_32
`other'start
`fuzz'`other'
STRING_8
require STRING_8
other_exists: other /= Void
other_not_empty: not other.is_empty
start_large_enough: start >= 1
start_small_enough: start <= count
acceptable_fuzzy: fuzz <= other.count
generating_type: STRING_8
ANY
ensure ANY
generating_type_not_void: Result /= Void
generating_type_not_empty: not Result.is_empty
generator: STRING_8
ANY
ensure ANY
generator_not_void: Result /= Void
generator_not_empty: not Result.is_empty
generic_count (obj: ANY): INTEGER_32
`obj'
INTERNAL
require INTERNAL
obj_not_void: obj /= Void
generic_count_of_type (type_id: INTEGER_32): INTEGER_32
`type_id'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
generic_dynamic_type (object: ANY; i: INTEGER_32): INTEGER_32
`object'
`i'
INTERNAL
require INTERNAL
object_not_void: object /= Void
object_generic: generic_count (object) > 0
i_valid: i > 0 and i <= generic_count (object)
ensure INTERNAL
dynamic_type_nonnegative: Result >= 0
generic_dynamic_type_of_type (type_id: INTEGER_32; i: INTEGER_32): INTEGER_32
`type_id'`i'
INTERNAL
require INTERNAL
type_id_nonnegative: type_id >= 0
type_id_generic: generic_count_of_type (type_id) > 0
i_valid: i > 0 and i <= generic_count_of_type (type_id)
ensure INTERNAL
dynamic_type_nonnegative: Result >= 0
hash_code: INTEGER_32
STRING_8
ensure HASHABLE
good_hash_value: Result >= 0
index_of (c: CHARACTER_8; start_index: INTEGER_32): INTEGER_32
`c'`start_index'
STRING_8
require STRING_8
start_large_enough: start_index >= 1
start_small_enough: start_index <= count + 1
ensure STRING_8
valid_result: Result = 0 or (start_index <= Result and Result <= count)
zero_if_absent: (Result = 0) = not substring (start_index, count).has (c)
found_if_present: substring (start_index, count).has (c) implies item (Result) = c
none_before: substring (start_index, count).has (c) implies not substring (start_index, Result - 1).has (c)
index_of_code (c: like code; start_index: INTEGER_32): INTEGER_32
`c'`start_index'
STRING_GENERAL
require STRING_GENERAL
start_large_enough: start_index >= 1
start_small_enough: start_index <= count + 1
ensure STRING_GENERAL
valid_result: Result = 0 or (start_index <= Result and Result <= count)
zero_if_absent: (Result = 0) = not substring (start_index, count).has_code (c)
found_if_present: substring (start_index, count).has_code (c) implies code (Result) = c
none_before: substring (start_index, count).has_code (c) implies not substring (start_index, Result - 1).has_code (c)
integer_16_field (i: INTEGER_32; object: ANY): INTEGER_16
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
integer_16_field: field_type (i, object) = integer_16_type
integer_16_type: INTEGER_32 is 10
INTERNAL
integer_32_field (i: INTEGER_32; object: ANY): INTEGER_32
`i'`object'
INTERNALinteger_field
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
integer_32_field: field_type (i, object) = integer_32_type
integer_32_type: INTEGER_32 is 4
INTERNALInteger_type
INTERNAL
integer_64_field (i: INTEGER_32; object: ANY): INTEGER_64
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
integer_64_field: field_type (i, object) = integer_64_type
integer_64_type: INTEGER_32 is 11
INTERNAL
integer_8_field (i: INTEGER_32; object: ANY): INTEGER_8
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
integer_8_field: field_type (i, object) = integer_8_type
integer_8_type: INTEGER_32 is 9
INTERNAL
integer_field (i: INTEGER_32; object: ANY): INTEGER_32
`i'`object'
INTERNALinteger_32_field
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
integer_32_field: field_type (i, object) = integer_32_type
integer_type: INTEGER_32 is 4
INTERNALInteger_32_type
INTERNAL
item (i: INTEGER_32): CHARACTER_8 assign put
`i'
STRING_8infix "@"
STRING_8
require TABLE
valid_key: valid_index (i)
require TO_SPECIAL
valid_index: valid_index (i)
item_code (i: INTEGER_32): INTEGER_32
`i'
STRING_8
require STRING_8
index_small_enough: i <= count
index_large_enough: i > 0
last_index_of (c: CHARACTER_8; start_index_from_end: INTEGER_32): INTEGER_32
`c'
STRING_8
require STRING_8
start_index_small_enough: start_index_from_end <= count
start_index_large_enough: start_index_from_end >= 1
ensure STRING_8
last_index_of_non_negative: Result >= 0
correct_place: Result > 0 implies item (Result) = c
last_parsed_query: STRING_8
max_predefined_type: INTEGER_32 is 16
INTERNAL
natural_16_field (i: INTEGER_32; object: ANY): NATURAL_16
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
natural_16_field: field_type (i, object) = natural_16_type
natural_16_type: INTEGER_32 is 14
INTERNAL
natural_32_field (i: INTEGER_32; object: ANY): NATURAL_32
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
natural_32_field: field_type (i, object) = natural_32_type
natural_32_type: INTEGER_32 is 15
INTERNAL
natural_64_field (i: INTEGER_32; object: ANY): NATURAL_64
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
natural_64_field: field_type (i, object) = natural_64_type
natural_64_type: INTEGER_32 is 16
INTERNAL
natural_8_field (i: INTEGER_32; object: ANY): NATURAL_8
`i'`object'
INTERNAL
require INTERNAL
object_not_void: object /= Void
index_large_enough: i >= 1
index_small_enough: i <= field_count (object)
natural_8_field: field_type (i, object) = natural_8_type
natural_8_type: INTEGER_32 is 13
INTERNAL
none_type: INTEGER_32 is -2