189
194
HA_KEYTYPE_END=0,
190
195
HA_KEYTYPE_TEXT=1, /* Key is sorted as letters */
191
196
HA_KEYTYPE_BINARY=2, /* Key is sorted as unsigned chars */
197
HA_KEYTYPE_SHORT_INT=3,
192
198
HA_KEYTYPE_LONG_INT=4,
193
200
HA_KEYTYPE_DOUBLE=6,
201
HA_KEYTYPE_NUM=7, /* Not packed num with pre-space */
202
HA_KEYTYPE_USHORT_INT=8,
194
203
HA_KEYTYPE_ULONG_INT=9,
195
204
HA_KEYTYPE_LONGLONG=10,
196
205
HA_KEYTYPE_ULONGLONG=11,
207
HA_KEYTYPE_UINT24=13,
197
209
/* Varchar (0-255 bytes) with length packed with 1 byte */
198
210
HA_KEYTYPE_VARTEXT1=15, /* Key is sorted as letters */
199
211
HA_KEYTYPE_VARBINARY1=16, /* Key is sorted as unsigned chars */
200
212
/* Varchar (0-65535 bytes) with length packed with 2 bytes */
201
213
HA_KEYTYPE_VARTEXT2=17, /* Key is sorted as letters */
202
HA_KEYTYPE_VARBINARY2=18 /* Key is sorted as unsigned chars */
214
HA_KEYTYPE_VARBINARY2=18, /* Key is sorted as unsigned chars */
218
#define HA_MAX_KEYTYPE 31 /* Must be log2-1 */
205
220
/* These flags kan be OR:ed to key-flag */
207
222
#define HA_NOSAME 1 /* Set if not dupplicated records */
303
326
Errorcodes given by handler functions
305
optimizer::sum_query() assumes these codes are > 1
328
opt_sum_query() assumes these codes are > 1
306
329
Do not add error numbers before HA_ERR_FIRST.
307
330
If necessary to add lower numbers, change HA_ERR_FIRST accordingly.
309
332
#define HA_ERR_FIRST 120 /* Copy of first error nr.*/
311
/* Other constants */
313
typedef unsigned long key_part_map;
334
#define HA_ERR_KEY_NOT_FOUND 120 /* Didn't find key on read or update */
335
#define HA_ERR_FOUND_DUPP_KEY 121 /* Dupplicate key on write */
336
#define HA_ERR_INTERNAL_ERROR 122 /* Internal error */
337
#define HA_ERR_RECORD_CHANGED 123 /* Uppdate with is recoverable */
338
#define HA_ERR_WRONG_INDEX 124 /* Wrong index given to function */
339
#define HA_ERR_CRASHED 126 /* Indexfile is crashed */
340
#define HA_ERR_WRONG_IN_RECORD 127 /* Record-file is crashed */
341
#define HA_ERR_OUT_OF_MEM 128 /* Record-file is crashed */
342
#define HA_ERR_NOT_A_TABLE 130 /* not a MYI file - no signature */
343
#define HA_ERR_WRONG_COMMAND 131 /* Command not supported */
344
#define HA_ERR_OLD_FILE 132 /* old databasfile */
345
#define HA_ERR_NO_ACTIVE_RECORD 133 /* No record read in update() */
346
#define HA_ERR_RECORD_DELETED 134 /* A record is not there */
347
#define HA_ERR_RECORD_FILE_FULL 135 /* No more room in file */
348
#define HA_ERR_INDEX_FILE_FULL 136 /* No more room in file */
349
#define HA_ERR_END_OF_FILE 137 /* end in next/prev/first/last */
350
#define HA_ERR_UNSUPPORTED 138 /* unsupported extension used */
351
#define HA_ERR_TO_BIG_ROW 139 /* Too big row */
352
#define HA_WRONG_CREATE_OPTION 140 /* Wrong create option */
353
#define HA_ERR_FOUND_DUPP_UNIQUE 141 /* Dupplicate unique on write */
354
#define HA_ERR_UNKNOWN_CHARSET 142 /* Can't open charset */
355
#define HA_ERR_WRONG_MRG_TABLE_DEF 143 /* conflicting tables in MERGE */
356
#define HA_ERR_CRASHED_ON_REPAIR 144 /* Last (automatic?) repair failed */
357
#define HA_ERR_CRASHED_ON_USAGE 145 /* Table must be repaired */
358
#define HA_ERR_LOCK_WAIT_TIMEOUT 146
359
#define HA_ERR_LOCK_TABLE_FULL 147
360
#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */
361
#define HA_ERR_LOCK_DEADLOCK 149
362
#define HA_ERR_CANNOT_ADD_FOREIGN 150 /* Cannot add a foreign key constr. */
363
#define HA_ERR_NO_REFERENCED_ROW 151 /* Cannot add a child row */
364
#define HA_ERR_ROW_IS_REFERENCED 152 /* Cannot delete a parent row */
365
#define HA_ERR_NO_SAVEPOINT 153 /* No savepoint with that name */
366
#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */
367
#define HA_ERR_NO_SUCH_TABLE 155 /* The table does not exist in engine */
368
#define HA_ERR_TABLE_EXIST 156 /* The table existed in storage engine */
369
#define HA_ERR_NO_CONNECTION 157 /* Could not connect to storage engine */
370
/* NULLs are not supported in spatial index */
371
#define HA_ERR_NULL_IN_SPATIAL 158
372
#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */
373
/* There's no partition in table for given value */
374
#define HA_ERR_NO_PARTITION_FOUND 160
375
#define HA_ERR_RBR_LOGGING_FAILED 161 /* Row-based binlogging of row failed */
376
#define HA_ERR_DROP_INDEX_FK 162 /* Index needed in foreign key constr */
378
Upholding foreign key constraints would lead to a duplicate key error
381
#define HA_ERR_FOREIGN_DUPLICATE_KEY 163
382
/* The table changed in storage engine */
383
#define HA_ERR_TABLE_NEEDS_UPGRADE 164
384
#define HA_ERR_TABLE_READONLY 165 /* The table is not writable */
386
#define HA_ERR_AUTOINC_READ_FAILED 166 /* Failed to get next autoinc value */
387
#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set row autoinc value */
388
#define HA_ERR_GENERIC 168 /* Generic error */
389
/* row not actually updated: new values same as the old values */
390
#define HA_ERR_RECORD_IS_THE_SAME 169
391
/* It is not possible to log this statement */
392
#define HA_ERR_LOGGING_IMPOSSIBLE 170 /* It is not possible to log this
394
#define HA_ERR_TABLESPACE_EXIST 171
395
#define HA_ERR_CORRUPT_EVENT 172 /* The event was corrupt, leading to
396
illegal data being read */
397
#define HA_ERR_NEW_FILE 173 /* New file format */
398
#define HA_ERR_ROWS_EVENT_APPLY 174 /* The event could not be processed
399
no other hanlder error happened */
400
#define HA_ERR_INITIALIZATION 175 /* Error during initialization */
401
#define HA_ERR_FILE_TOO_SHORT 176 /* File too short */
402
#define HA_ERR_WRONG_CRC 177 /* Wrong CRC on page */
403
#define HA_ERR_LOCK_OR_ACTIVE_TRANSACTION 178
404
#define HA_ERR_NO_SUCH_TABLESPACE 179
405
#define HA_ERR_TABLESPACE_NOT_EMPTY 180
406
#define HA_ERR_LAST 180 /* Copy of last error nr */
408
/* Number of different errors */
409
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
411
/* Other constants */
413
#define HA_NAMELEN 64 /* Max length of saved filename */
414
#define NO_SUCH_KEY (~(uint32_t)0) /* used as a key no. */
416
typedef ulong key_part_map;
314
417
#define HA_WHOLE_KEY (~(key_part_map)0)
316
419
/* Intern constants in databases */
399
506
#define NULL_RANGE 64
508
typedef struct st_key_range
404
510
const unsigned char *key;
406
512
enum ha_rkey_function flag;
407
513
key_part_map keypart_map;
410
class KEY_MULTI_RANGE
516
typedef struct st_key_multi_range
413
518
key_range start_key;
414
519
key_range end_key;
415
520
char *ptr; /* Free to use by caller (ptr to row etc) */
416
521
uint32_t range_flag; /* key range flags see above */
420
525
/* For number of records */
421
526
typedef uint64_t ha_rows;
422
inline static double rows2double(ha_rows rows)
424
return uint64_t2double(rows);
527
#define rows2double(A) uint64_t2double(A)
427
#define HA_POS_ERROR (~ (::drizzled::ha_rows) 0)
428
#define HA_OFFSET_ERROR (~ (::drizzled::internal::my_off_t) 0)
529
#define HA_POS_ERROR (~ (ha_rows) 0)
530
#define HA_OFFSET_ERROR (~ (my_off_t) 0)
430
532
#if SIZEOF_OFF_T == 4
431
533
#define MAX_FILE_SIZE INT32_MAX