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:
@@ -657,7 +657,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
||||
int error, keyno;
|
||||
uint num_rows;
|
||||
uchar *UNINIT_VAR(key);
|
||||
uint UNINIT_VAR(key_len);
|
||||
bool need_reopen;
|
||||
List_iterator<Item> it;
|
||||
DBUG_ENTER("mysql_ha_read");
|
||||
@@ -784,7 +783,8 @@ retry:
|
||||
case RNEXT_SAME:
|
||||
/* Continue scan on "(keypart1,keypart2,...)=(c1, c2, ...) */
|
||||
DBUG_ASSERT(keyname != 0);
|
||||
error= table->file->ha_index_next_same(table->record[0], key, key_len);
|
||||
error= table->file->ha_index_next_same(table->record[0], key,
|
||||
handler->key_len);
|
||||
break;
|
||||
case RKEY:
|
||||
{
|
||||
|
Reference in New Issue
Block a user