diff options
-rw-r--r-- | sql/ha_heap.cc | 10 | ||||
-rw-r--r-- | sql/ha_heap.h | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/sql/ha_heap.cc b/sql/ha_heap.cc index 4a3b9495f6f..fb4061b31e0 100644 --- a/sql/ha_heap.cc +++ b/sql/ha_heap.cc @@ -81,6 +81,15 @@ int ha_heap::index_read(byte * buf, const byte * key, uint key_len, return error; } +int ha_heap::index_read_last(byte *buf, const byte *key, uint key_len) +{ + statistic_increment(ha_read_key_count, &LOCK_status); + int error= heap_rkey(file, buf, active_index, key, key_len, + HA_READ_PREFIX_LAST); + table->status= error ? STATUS_NOT_FOUND : 0; + return error; +} + int ha_heap::index_read_idx(byte * buf, uint index, const byte * key, uint key_len, enum ha_rkey_function find_flag) { @@ -90,7 +99,6 @@ int ha_heap::index_read_idx(byte * buf, uint index, const byte * key, return error; } - int ha_heap::index_next(byte * buf) { statistic_increment(ha_read_next_count,&LOCK_status); diff --git a/sql/ha_heap.h b/sql/ha_heap.h index f82a1a460d8..fe874dab3f2 100644 --- a/sql/ha_heap.h +++ b/sql/ha_heap.h @@ -67,6 +67,7 @@ class ha_heap: public handler uint key_len, enum ha_rkey_function find_flag); int index_read_idx(byte * buf, uint idx, const byte * key, uint key_len, enum ha_rkey_function find_flag); + int index_read_last(byte * buf, const byte * key, uint key_len); int index_next(byte * buf); int index_prev(byte * buf); int index_first(byte * buf); |