summaryrefslogtreecommitdiff
path: root/sql/ha_berkeley.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/ha_berkeley.h')
-rw-r--r--sql/ha_berkeley.h27
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; }