diff options
author | unknown <monty@mysql.com> | 2004-07-08 15:45:25 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-07-08 15:45:25 +0300 |
commit | a23fbc060ebd0aca9b34e793ec25533cbdb7d4f9 (patch) | |
tree | 15b952a3b20bb1c0c60974e9f451385a4fa45208 /sql/ha_berkeley.cc | |
parent | 5ef15478cdbaa65c7d037ce5662117b8ed425dba (diff) | |
download | mariadb-git-a23fbc060ebd0aca9b34e793ec25533cbdb7d4f9.tar.gz |
New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
Added key part to optimize_range() to fix problems when using fields in key parts.
sql/examples/ha_archive.h:
New handler::index_flags() definition
sql/examples/ha_example.h:
New handler::index_flags() definition
sql/field.cc:
New optimize_range() definition
sql/field.h:
New optimize_range() definition
sql/ha_berkeley.cc:
New handler::index_flags() definition
sql/ha_berkeley.h:
New handler::index_flags() definition
sql/ha_heap.h:
New handler::index_flags() definition
sql/ha_innodb.h:
New handler::index_flags() definition
sql/ha_isam.h:
New handler::index_flags() definition
sql/ha_isammrg.h:
New handler::index_flags() definition
sql/ha_myisam.h:
New handler::index_flags() definition
sql/ha_myisammrg.h:
New handler::index_flags() definition
sql/ha_ndbcluster.cc:
New handler::index_flags() definition
sql/ha_ndbcluster.h:
New handler::index_flags() definition
sql/handler.h:
New handler::index_flags() definition
sql/log.cc:
Fixed compiler warnings
sql/log_event.cc:
Fixed compiler warnings (and renamed short variable name)
sql/opt_range.cc:
New handler::index_flags() definition
sql/opt_sum.cc:
New handler::index_flags() definition
sql/set_var.cc:
Removed compiler warnings
sql/sql_db.cc:
Removed compiler warnings
sql/sql_select.cc:
New handler::index_flags() definition
sql/sql_show.cc:
Removed compiler warnings
sql/sql_update.cc:
Removed compiler warnings
sql/table.cc:
New handler::index_flags() definition
Diffstat (limited to 'sql/ha_berkeley.cc')
-rw-r--r-- | sql/ha_berkeley.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index 4bed33af15b..bb07bd9dc4b 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -340,6 +340,23 @@ const char **ha_berkeley::bas_ext() const { static const char *ext[]= { ha_berkeley_ext, NullS }; return ext; } +ulong ha_berkeley::index_flags(uint idx, uint part, bool all_parts) const +{ + ulong flags= (HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER | HA_KEYREAD_ONLY + | HA_READ_RANGE); + for (uint idx= all_parts ? 0 : part ; idx <= part ; idx++) + { + if (table->key_info[idx].key_part[part].field->type() == FIELD_TYPE_BLOB) + { + /* We can't use BLOBS to shortcut sorts */ + flags&= ~ (HA_READ_ORDER | HA_KEYREAD_ONLY | HA_READ_RANGE); + break; + } + } + return flags; +} + + static int berkeley_cmp_hidden_key(DB* file, const DBT *new_key, const DBT *saved_key) { |