55
55
HTON_BIT_FILE_BASED, // use for check_lowercase_names
56
56
HTON_BIT_HAS_DATA_DICTIONARY,
57
57
HTON_BIT_DOES_TRANSACTIONS,
58
HTON_BIT_STATS_RECORDS_IS_EXACT,
60
HTON_BIT_CAN_INDEX_BLOBS,
61
HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_POSITION,
62
HTON_BIT_PRIMARY_KEY_IN_READ_INDEX,
63
HTON_BIT_PARTIAL_COLUMN_READ,
64
HTON_BIT_TABLE_SCAN_ON_INDEX,
65
HTON_BIT_MRR_CANT_SORT,
66
HTON_BIT_FAST_KEY_READ,
69
HTON_BIT_NO_AUTO_INCREMENT,
70
HTON_BIT_DUPLICATE_POS,
71
HTON_BIT_AUTO_PART_KEY,
72
HTON_BIT_NEED_READ_RANGE_BUFFER,
73
HTON_BIT_REQUIRE_PRIMARY_KEY,
74
HTON_BIT_REQUIRES_KEY_COLUMNS_FOR_DELETE,
75
HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_DELETE,
76
HTON_BIT_NO_PREFIX_CHAR_KEYS,
77
HTON_BIT_HAS_CHECKSUM,
78
HTON_BIT_ANY_INDEX_MAY_BE_UNIQUE,
67
88
static const std::bitset<HTON_BIT_SIZE> HTON_FILE_BASED(1 << HTON_BIT_FILE_BASED);
68
89
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_DATA_DICTIONARY(1 << HTON_BIT_HAS_DATA_DICTIONARY);
69
90
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_DOES_TRANSACTIONS(1 << HTON_BIT_DOES_TRANSACTIONS);
91
static const std::bitset<HTON_BIT_SIZE> HTON_STATS_RECORDS_IS_EXACT(1 << HTON_BIT_STATS_RECORDS_IS_EXACT);
92
static const std::bitset<HTON_BIT_SIZE> HTON_NULL_IN_KEY(1 << HTON_BIT_NULL_IN_KEY);
93
static const std::bitset<HTON_BIT_SIZE> HTON_CAN_INDEX_BLOBS(1 << HTON_BIT_CAN_INDEX_BLOBS);
94
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_REQUIRED_FOR_POSITION(1 << HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_POSITION);
95
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_IN_READ_INDEX(1 << HTON_BIT_PRIMARY_KEY_IN_READ_INDEX);
96
static const std::bitset<HTON_BIT_SIZE> HTON_PARTIAL_COLUMN_READ(1 << HTON_BIT_PARTIAL_COLUMN_READ);
97
static const std::bitset<HTON_BIT_SIZE> HTON_TABLE_SCAN_ON_INDEX(1 << HTON_BIT_TABLE_SCAN_ON_INDEX);
98
static const std::bitset<HTON_BIT_SIZE> HTON_MRR_CANT_SORT(1 << HTON_BIT_MRR_CANT_SORT);
99
static const std::bitset<HTON_BIT_SIZE> HTON_FAST_KEY_READ(1 << HTON_BIT_FAST_KEY_READ);
100
static const std::bitset<HTON_BIT_SIZE> HTON_NO_BLOBS(1 << HTON_BIT_NO_BLOBS);
101
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_RECORDS(1 << HTON_BIT_HAS_RECORDS);
102
static const std::bitset<HTON_BIT_SIZE> HTON_NO_AUTO_INCREMENT(1 << HTON_BIT_NO_AUTO_INCREMENT);
103
static const std::bitset<HTON_BIT_SIZE> HTON_DUPLICATE_POS(1 << HTON_BIT_DUPLICATE_POS);
104
static const std::bitset<HTON_BIT_SIZE> HTON_AUTO_PART_KEY(1 << HTON_BIT_AUTO_PART_KEY);
105
static const std::bitset<HTON_BIT_SIZE> HTON_NEED_READ_RANGE_BUFFER(1 << HTON_BIT_NEED_READ_RANGE_BUFFER);
106
static const std::bitset<HTON_BIT_SIZE> HTON_REQUIRE_PRIMARY_KEY(1 << HTON_BIT_REQUIRE_PRIMARY_KEY);
107
static const std::bitset<HTON_BIT_SIZE> HTON_REQUIRES_KEY_COLUMNS_FOR_DELETE(1 << HTON_BIT_REQUIRES_KEY_COLUMNS_FOR_DELETE);
108
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_REQUIRED_FOR_DELETE(1 << HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_DELETE);
109
static const std::bitset<HTON_BIT_SIZE> HTON_NO_PREFIX_CHAR_KEYS(1 << HTON_BIT_NO_PREFIX_CHAR_KEYS);
110
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_CHECKSUM(1 << HTON_BIT_HAS_CHECKSUM);
111
static const std::bitset<HTON_BIT_SIZE> HTON_ANY_INDEX_MAY_BE_UNIQUE(1 << HTON_BIT_ANY_INDEX_MAY_BE_UNIQUE);
376
417
static void removeLostTemporaryTables(Session &session, const char *directory);
378
419
Cursor *getCursor(TableShare &share, MEM_ROOT *alloc);
421
uint32_t max_record_length() const
422
{ return std::min((unsigned int)HA_MAX_REC_LENGTH, max_supported_record_length()); }
423
uint32_t max_keys() const
424
{ return std::min((unsigned int)MAX_KEY, max_supported_keys()); }
425
uint32_t max_key_parts() const
426
{ return std::min((unsigned int)MAX_REF_PARTS, max_supported_key_parts()); }
427
uint32_t max_key_length() const
428
{ return std::min((unsigned int)MAX_KEY_LENGTH, max_supported_key_length()); }
429
uint32_t max_key_part_length(void) const
430
{ return std::min((unsigned int)MAX_KEY_LENGTH, max_supported_key_part_length()); }
432
virtual uint32_t max_supported_record_length(void) const
433
{ return HA_MAX_REC_LENGTH; }
434
virtual uint32_t max_supported_keys(void) const { return 0; }
435
virtual uint32_t max_supported_key_parts(void) const { return MAX_REF_PARTS; }
436
virtual uint32_t max_supported_key_length(void) const { return MAX_KEY_LENGTH; }
437
virtual uint32_t max_supported_key_part_length(void) const { return 255; }
381
441
} /* namespace plugin */