mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-20441 ER_CRASHED_ON_USAGE upon update on versioned Aria table
Turn read cache off for update and multi-update for versioned table. no_cache is reinited on each TABLE open because it is applicable for specific algorithms. As a side fix vers_insert_history_row() honors vers_write setting. Aria with row_format=fixed uses IO_CACHE of type READ_CACHE for sequential read in update loop. When history row is inserted inside this loop the cache misses it and fails with error. TODO: Currently maria_extra() does not support SEQ_READ_APPEND. Probably it might be possible to use this type of cache.
This commit is contained in:
@ -1646,6 +1646,8 @@ static int last_uniq_key(TABLE *table,uint keynr)
|
||||
int vers_insert_history_row(TABLE *table)
|
||||
{
|
||||
DBUG_ASSERT(table->versioned(VERS_TIMESTAMP));
|
||||
if (!table->vers_write)
|
||||
return 0;
|
||||
restore_record(table,record[1]);
|
||||
|
||||
// Set Sys_end to now()
|
||||
|
Reference in New Issue
Block a user