mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Added HANDLER support for MEMORY tables
Added key and file version numbers to MEMORY tables so that we can detect if someone has changed them between HANDLER calls. mysql-test/suite/handler/aria.result: Fixed result after test changes mysql-test/suite/handler/handler.inc: Changed test to use combined key to ensure rows are returned in a pre-determinated order. mysql-test/suite/handler/heap.result: New result mysql-test/suite/handler/heap.test: Added test for HANDLER + HEAP mysql-test/suite/handler/innodb.result: Fixed result after test changes mysql-test/suite/handler/myisam.result: Fixed result after test changes sql/sql_handler.cc: Fixed wrong parameter to ha_index_next_same() storage/heap/ha_heap.cc: Abort key scan if table has changed. Abort table scan if table has been recreated. storage/heap/ha_heap.h: Added support for HANDLER storage/heap/hp_clear.c: Increase version number so that we can notice changes if using HANDLER storage/heap/hp_delete.c: Increase key data version number on key changes. storage/heap/hp_rfirst.c: Remember version of key data Give error if using read-first on hash key. storage/heap/hp_rkey.c: Remember version of key data storage/heap/hp_rlast.c: Remember version of key data Give error if using read-last on hash key. storage/heap/hp_rnext.c: Fixed that we get next key from last search. storage/heap/hp_rprev.c: Fixed that we get previous key from last search. storage/heap/hp_scan.c: Remember version of key and file data storage/heap/hp_update.c: Increase key data version number on key changes. storage/heap/hp_write.c: Increase key data version number on key changes.
This commit is contained in:
@@ -136,6 +136,8 @@ typedef struct st_heap_share
|
||||
ulong min_records,max_records; /* Params to open */
|
||||
ulonglong data_length,index_length,max_table_size;
|
||||
uint key_stat_version; /* version to indicate insert/delete */
|
||||
uint key_version; /* Updated on key change */
|
||||
uint file_version; /* Update on clear */
|
||||
uint records; /* records */
|
||||
uint blength; /* records rounded up to 2^n */
|
||||
uint deleted; /* Deleted records in database */
|
||||
@@ -173,6 +175,8 @@ typedef struct st_heap_info
|
||||
enum ha_rkey_function last_find_flag;
|
||||
TREE_ELEMENT *parents[MAX_TREE_HEIGHT+1];
|
||||
TREE_ELEMENT **last_pos;
|
||||
uint key_version; /* Version at last read */
|
||||
uint file_version; /* Version at scan */
|
||||
uint lastkey_len;
|
||||
my_bool implicit_emptied;
|
||||
#ifdef THREAD
|
||||
|
Reference in New Issue
Block a user