1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-18865 Assertion `t->first->versioned_by_id()' failed in innodb_prepare_commit_versioned

Cause:
* row_start != 0 treated as it exists. Probably, possible row permutations had not been taken in mind.

Solution:
* Checking both row_start and row_end is correct, so versioned() function is used
This commit is contained in:
Nikita Malyavin
2019-03-24 19:01:54 +10:00
committed by Marko Mäkelä
parent 720e9bd5be
commit 4923604ee2
4 changed files with 35 additions and 1 deletions

View File

@ -488,4 +488,13 @@ add column row_end bigint unsigned as row end,
add period for system_time(row_start,row_end),
with system versioning;
set autocommit= 1;
# MDEV-18865 Assertion `t->first->versioned_by_id()'
# failed in innodb_prepare_commit_versioned
create or replace table t (x int) engine=innodb;
insert into t values (0);
alter table t add `row_start` bigint unsigned as row start,
add `row_end` bigint unsigned as row end,
add period for system_time(`row_start`,`row_end`),
modify x int after row_start,
with system versioning;
create or replace database test;

View File

@ -512,4 +512,16 @@ alter table t
with system versioning;
set autocommit= 1;
--echo # MDEV-18865 Assertion `t->first->versioned_by_id()'
--echo # failed in innodb_prepare_commit_versioned
create or replace table t (x int) engine=innodb;
insert into t values (0);
alter table t add `row_start` bigint unsigned as row start,
add `row_end` bigint unsigned as row end,
add period for system_time(`row_start`,`row_end`),
modify x int after row_start,
with system versioning;
create or replace database test;