37 #define HA_OPEN_ABORT_IF_LOCKED 0
38 #define HA_OPEN_WAIT_IF_LOCKED 1
39 #define HA_OPEN_IGNORE_IF_LOCKED 2
40 #define HA_OPEN_TMP_TABLE 4
42 #define HA_OPEN_INTERNAL_TABLE 512
65 enum ha_rkey_function {
73 HA_READ_PREFIX_LAST_OR_PREV,
75 HA_READ_MBR_INTERSECT,
91 enum ha_extra_function {
97 HA_EXTRA_NO_READCHECK=5,
100 HA_EXTRA_NO_KEYREAD=8,
101 HA_EXTRA_NO_USER_CHANGE=9,
102 HA_EXTRA_KEY_CACHE=10,
103 HA_EXTRA_NO_KEY_CACHE=11,
104 HA_EXTRA_WAIT_LOCK=12,
105 HA_EXTRA_NO_WAIT_LOCK=13,
106 HA_EXTRA_WRITE_CACHE=14,
107 HA_EXTRA_FLUSH_CACHE=15,
109 HA_EXTRA_KEYREAD_CHANGE_POS=17,
111 HA_EXTRA_REMEMBER_POS=18,
112 HA_EXTRA_RESTORE_POS=19,
113 HA_EXTRA_REINIT_CACHE=20,
114 HA_EXTRA_FORCE_REOPEN=21,
117 HA_EXTRA_RESET_STATE,
118 HA_EXTRA_IGNORE_DUP_KEY,
119 HA_EXTRA_NO_IGNORE_DUP_KEY,
120 HA_EXTRA_PREPARE_FOR_DROP,
121 HA_EXTRA_PREPARE_FOR_UPDATE,
122 HA_EXTRA_PRELOAD_BUFFER_SIZE,
126 HA_EXTRA_CHANGE_KEY_TO_UNIQUE,
127 HA_EXTRA_CHANGE_KEY_TO_DUP,
133 HA_EXTRA_KEYREAD_PRESERVE_FIELDS,
141 HA_EXTRA_IGNORE_NO_KEY,
142 HA_EXTRA_NO_IGNORE_NO_KEY,
150 HA_EXTRA_WRITE_CAN_REPLACE,
151 HA_EXTRA_WRITE_CANNOT_REPLACE,
158 HA_EXTRA_DELETE_CANNOT_BATCH,
159 HA_EXTRA_UPDATE_CANNOT_BATCH,
164 HA_EXTRA_INSERT_WITH_UPDATE,
166 HA_EXTRA_PREPARE_FOR_RENAME
171 enum ha_panic_function {
179 enum ha_base_keytype {
183 HA_KEYTYPE_LONG_INT=4,
185 HA_KEYTYPE_ULONG_INT=9,
186 HA_KEYTYPE_LONGLONG=10,
187 HA_KEYTYPE_ULONGLONG=11,
189 HA_KEYTYPE_VARTEXT1=15,
190 HA_KEYTYPE_VARBINARY1=16,
192 HA_KEYTYPE_VARTEXT2=17,
193 HA_KEYTYPE_VARBINARY2=18
199 #define HA_PACK_KEY 2
200 #define HA_AUTO_KEY 16
201 #define HA_BINARY_PACK_KEY 32
202 #define HA_UNIQUE_CHECK 256
203 #define HA_NULL_ARE_EQUAL 2048
204 #define HA_GENERATED_KEY 8192
206 #define HA_KEY_HAS_PART_KEY_SEG 65536
210 #define HA_SPACE_PACK_USED 4
211 #define HA_VAR_LENGTH_KEY 8
212 #define HA_NULL_PART_KEY 64
213 #define HA_USES_COMMENT 4096
214 #define HA_USES_BLOCK_SIZE ((uint32_t) 32768)
215 #define HA_SORT_ALLOWS_SAME 512
219 #define HA_SPACE_PACK 1
220 #define HA_PART_KEY_SEG 4
221 #define HA_VAR_LENGTH_PART 8
222 #define HA_NULL_PART 16
223 #define HA_BLOB_PART 32
224 #define HA_SWAP_KEY 64
225 #define HA_REVERSE_SORT 128
226 #define HA_NO_SORT 256
231 #define HA_END_SPACE_ARE_EQUAL 512
232 #define HA_BIT_PART 1024
235 #define HA_OPTION_PACK_RECORD 1
236 #define HA_OPTION_PACK_KEYS 2
237 #define HA_OPTION_COMPRESS_RECORD 4
238 #define HA_OPTION_TMP_TABLE 16
239 #define HA_OPTION_NO_PACK_KEYS 128
240 #define HA_OPTION_TEMP_COMPRESS_RECORD ((uint32_t) 16384)
241 #define HA_OPTION_READ_ONLY_DATA ((uint32_t) 32768)
245 #define HA_DONT_TOUCH_DATA 1
246 #define HA_PACK_RECORD 2
247 #define HA_CREATE_TMP_TABLE 4
248 #define HA_CREATE_KEEP_FILES 16
259 #define HA_STATUS_POS 1
266 #define HA_STATUS_NO_LOCK 2
268 #define HA_STATUS_TIME 4
275 #define HA_STATUS_CONST 8
281 #define HA_STATUS_VARIABLE 16
287 #define HA_STATUS_ERRKEY 32
291 #define HA_STATUS_AUTO 64
300 #define HA_ERR_FIRST 120
304 typedef unsigned long key_part_map;
305 #define HA_WHOLE_KEY (~(key_part_map)0)
310 #define SEARCH_FIND 1
311 #define SEARCH_NO_FIND 2
312 #define SEARCH_SAME 4
313 #define SEARCH_BIGGER 8
314 #define SEARCH_SMALLER 16
315 #define SEARCH_SAVE_BUFF 32
316 #define SEARCH_UPDATE 64
317 #define SEARCH_PREFIX 128
318 #define SEARCH_LAST 256
319 #define MBR_CONTAIN 512
320 #define MBR_INTERSECT 1024
321 #define MBR_WITHIN 2048
322 #define MBR_DISJOINT 4096
323 #define MBR_EQUAL 8192
324 #define SEARCH_NULL_ARE_EQUAL 32768
325 #define SEARCH_NULL_ARE_NOT_EQUAL 65536
328 #define READ_CACHE_USED 2
329 #define READ_CHECK_USED 4
330 #define KEY_READ_USED 8
331 #define WRITE_CACHE_USED 16
332 #define OPT_NO_ROWS 32
335 #define HA_STATE_CHANGED 1
336 #define HA_STATE_AKTIV 2
337 #define HA_STATE_WRITTEN 4
338 #define HA_STATE_DELETED 8
339 #define HA_STATE_NEXT_FOUND 16
340 #define HA_STATE_PREV_FOUND 32
341 #define HA_STATE_KEY_CHANGED 128
342 #define HA_STATE_WRITE_AT_END 256
343 #define HA_STATE_ROW_CHANGED 1024
344 #define HA_STATE_EXTEND_BLOCK 2048
345 #define HA_STATE_RNEXT_SAME 4096
349 FIELD_LAST=-1,FIELD_NORMAL,FIELD_SKIP_ENDSPACE,FIELD_SKIP_PRESPACE,
350 FIELD_SKIP_ZERO,FIELD_BLOB,FIELD_CONSTANT,FIELD_INTERVALL,FIELD_ZERO,
351 FIELD_VARCHAR,FIELD_CHECK,
355 enum data_file_type {
356 STATIC_RECORD, DYNAMIC_RECORD, COMPRESSED_RECORD, BLOCK_RECORD
362 #define NO_MIN_RANGE 1
365 #define NO_MAX_RANGE 2
377 #define UNIQUE_RANGE 16
390 #define NULL_RANGE 64
395 const unsigned char *key;
397 enum ha_rkey_function flag;
398 key_part_map keypart_map;
412 typedef uint64_t ha_rows;
414 #define HA_POS_ERROR (~ (::drizzled::ha_rows) 0)
415 #define HA_OFFSET_ERROR (~ (::drizzled::internal::my_off_t) 0)
417 #if SIZEOF_OFF_T == 4
418 #define MAX_FILE_SIZE INT32_MAX
420 #define MAX_FILE_SIZE INT64_MAX
423 inline static uint32_t ha_varchar_packlength(uint32_t field_length)
425 return (field_length < 256 ? 1 :2);