mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-22061 InnoDB: Assertion of missing row in sec index row_start upon REPLACE on a system-versioned table
make_versioned_helper() appended new update field unconditionally while it should check if this field already exists in update vector. Misc renames to conform versioning prefix. vers_update_fields() name conforms with sql layer TABLE::vers_update_fields().
This commit is contained in:
@ -319,3 +319,19 @@ create or replace table t1 (f point, key(f)) with system versioning engine=myisa
|
||||
update t1 set f = null where f = 'foo';
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-22061 InnoDB: Assertion of missing row in sec index row_start upon REPLACE on a system-versioned table
|
||||
#
|
||||
create or replace table t1 (
|
||||
a int,
|
||||
b int,
|
||||
row_start bigint(20) unsigned generated always as row start,
|
||||
row_end bigint(20) unsigned generated always as row end,
|
||||
unique key (b,row_end),
|
||||
key (row_start),
|
||||
period for system_time (row_start,row_end)
|
||||
) engine=innodb with system versioning;
|
||||
insert into t1 (a, b) values (1, 2);
|
||||
replace into t1 (a, b) values (3, 2);
|
||||
replace into t1 (a, b) values (4, 2);
|
||||
drop table t1;
|
||||
|
@ -245,4 +245,24 @@ update t1 set f = null where f = 'foo';
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-22061 InnoDB: Assertion of missing row in sec index row_start upon REPLACE on a system-versioned table
|
||||
--echo #
|
||||
create or replace table t1 (
|
||||
a int,
|
||||
b int,
|
||||
row_start bigint(20) unsigned generated always as row start,
|
||||
row_end bigint(20) unsigned generated always as row end,
|
||||
unique key (b,row_end),
|
||||
key (row_start),
|
||||
period for system_time (row_start,row_end)
|
||||
) engine=innodb with system versioning;
|
||||
|
||||
insert into t1 (a, b) values (1, 2);
|
||||
replace into t1 (a, b) values (3, 2);
|
||||
replace into t1 (a, b) values (4, 2);
|
||||
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
source suite/versioning/common_finish.inc;
|
||||
|
Reference in New Issue
Block a user