diff options
author | serg@serg.mylan <> | 2004-06-23 12:29:05 +0200 |
---|---|---|
committer | serg@serg.mylan <> | 2004-06-23 12:29:05 +0200 |
commit | 3f1c4ba745573eefb8739a9d16199ec552f190de (patch) | |
tree | ed41d441646213c959f138d9a933c09f994d81d9 /sql/ha_berkeley.h | |
parent | e70b330f6956041d5e57d77961e0de92682971eb (diff) | |
download | mariadb-git-3f1c4ba745573eefb8739a9d16199ec552f190de.tar.gz |
handler interface cleanups:
more logical table/index_flags
return HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
max_keys and other limits renamed to max_supported_keys/etc
max_keys/etc are now wrappers to max_supported_keys/etc
ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing
Diffstat (limited to 'sql/ha_berkeley.h')
-rw-r--r-- | sql/ha_berkeley.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/sql/ha_berkeley.h b/sql/ha_berkeley.h index 4bc8e3a5777..07923f8daf0 100644 --- a/sql/ha_berkeley.h +++ b/sql/ha_berkeley.h @@ -87,24 +87,25 @@ class ha_berkeley: public handler public: ha_berkeley(TABLE *table): handler(table), alloc_ptr(0),rec_buff(0), file(0), - int_table_flags(HA_REC_NOT_IN_SEQ | - HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER | HA_FAST_KEY_READ | - HA_NULL_KEY | HA_BLOB_KEY | HA_NOT_EXACT_COUNT | - HA_PRIMARY_KEY_IN_READ_INDEX | HA_DROP_BEFORE_CREATE | - HA_AUTO_PART_KEY | HA_TABLE_SCAN_ON_INDEX | - HA_KEY_READ_WRONG_STR | HA_FILE_BASED), - changed_rows(0),last_dup_key((uint) -1),version(0),using_ignore(0) - { - } + int_table_flags(HA_REC_NOT_IN_SEQ | HA_FAST_KEY_READ | + HA_NULL_IN_KEY | HA_BLOB_KEY | HA_NOT_EXACT_COUNT | + HA_PRIMARY_KEY_IN_READ_INDEX | HA_FILE_BASED | + HA_AUTO_PART_KEY | HA_TABLE_SCAN_ON_INDEX), + changed_rows(0),last_dup_key((uint) -1),version(0),using_ignore(0) {} ~ha_berkeley() {} const char *table_type() const { return "BerkeleyDB"; } + ulong ha_berkeley::index_flags(uint idx, uint part) const + { + ulong flags=HA_READ_NEXT | HA_READ_PREV; + if (part == (uint)~0 || + table->key_info[idx].key_part[part].field->key_type() != HA_KEYTYPE_TEXT) + flags|= HA_READ_ORDER | HA_KEYREAD_ONLY | HA_READ_RANGE; + return flags; + } const char *index_type(uint key_number) { return "BTREE"; } const char **bas_ext() const; ulong table_flags(void) const { return int_table_flags; } - uint max_record_length() const { return HA_MAX_REC_LENGTH; } - uint max_keys() const { return MAX_KEY-1; } - uint max_key_parts() const { return MAX_REF_PARTS; } - uint max_key_length() const { return MAX_KEY_LENGTH; } + uint max_supported_keys() const { return MAX_KEY-1; } uint extra_rec_buf_length() { return BDB_HIDDEN_PRIMARY_KEY_LENGTH; } ha_rows estimate_number_of_rows(); const key_map *keys_to_use_for_scanning() { return &key_map_full; } |