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:
@ -276,3 +276,12 @@ update t1 set a= '2012-12-12';
|
||||
update v set a= '2000-01-01' order by b limit 1;
|
||||
drop view v;
|
||||
drop table t1, t2;
|
||||
#
|
||||
# MDEV-20441 ER_CRASHED_ON_USAGE upon update on versioned Aria table
|
||||
#
|
||||
create or replace table t1 (a varchar(8))
|
||||
engine=aria row_format=fixed
|
||||
with system versioning;
|
||||
insert into t1 (a) values ('foo');
|
||||
update t1 set a = 'bar';
|
||||
drop table t1;
|
||||
|
@ -157,7 +157,6 @@ replace t1 values (1,2),(1,3),(2,4);
|
||||
--echo #
|
||||
--echo # MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE
|
||||
--echo #
|
||||
|
||||
create or replace table t1 (pk int, a char(3), b char(3), primary key(pk))
|
||||
engine=innodb with system versioning;
|
||||
|
||||
@ -192,4 +191,15 @@ drop view v;
|
||||
drop table t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20441 ER_CRASHED_ON_USAGE upon update on versioned Aria table
|
||||
--echo #
|
||||
create or replace table t1 (a varchar(8))
|
||||
engine=aria row_format=fixed
|
||||
with system versioning;
|
||||
|
||||
insert into t1 (a) values ('foo');
|
||||
update t1 set a = 'bar';
|
||||
drop table t1;
|
||||
|
||||
source suite/versioning/common_finish.inc;
|
||||
|
Reference in New Issue
Block a user