mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge commit '10.4' into 10.5
This commit is contained in:
@@ -94,4 +94,19 @@ drop procedure pr;
|
||||
drop trigger tr;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21138 Assertion `col->ord_part' or `f.col->ord_part' failed in row_build_index_entry_low
|
||||
--echo #
|
||||
create table t1 (
|
||||
f1 int, f2 text, f3 int, fulltext (f2), key(f1), key(f3),
|
||||
foreign key r (f3) references t1 (f1) on delete set null)
|
||||
with system versioning engine innodb;
|
||||
insert into t1 values (1, repeat('a', 8193), 1), (1, repeat('b', 8193), 1);
|
||||
select f1, f3, check_row_ts(row_start, row_end) from t1;
|
||||
delete from t1;
|
||||
select f1, f3, check_row_ts(row_start, row_end) from t1 for system_time all;
|
||||
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
--source suite/versioning/common_finish.inc
|
||||
|
@@ -421,6 +421,8 @@ REPLACE INTO t2 SELECT * FROM t2;
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE t1, t2;
|
||||
set timestamp= default;
|
||||
set time_zone='+00:00';
|
||||
--let $datadir= `select @@datadir`
|
||||
--remove_file $datadir/test/t1.data
|
||||
--remove_file $datadir/test/t1.data.2
|
||||
@@ -458,6 +460,22 @@ insert into t2 values (1), (1);
|
||||
delete from t2;
|
||||
drop tables t2, t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-23644 Assertion on evaluating foreign referential action for self-reference in system versioned table
|
||||
--echo #
|
||||
create table t1 (pk int primary key, f1 int,f2 int, f3 text,
|
||||
key(f1), fulltext(f3), key(f3(10)),
|
||||
foreign key (f2) references t1 (f1) on delete set null
|
||||
) engine=innodb with system versioning;
|
||||
|
||||
insert into t1 values (1, 8, 8, 'SHORT'), (2, 8, 8, repeat('LONG', 8071));
|
||||
|
||||
delete from t1;
|
||||
select pk, f1, f2, left(f3, 4), check_row_ts(row_start, row_end) from t1 for system_time all order by pk;
|
||||
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20729 Fix REFERENCES constraint in column definition
|
||||
--echo #
|
||||
|
@@ -939,6 +939,15 @@ alter table t1 add partition (partition p2);
|
||||
# Cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-22178 Assertion `info->alias.str' failed in partition_info::check_partition_info instead of ER_VERS_WRONG_PARTS
|
||||
--echo #
|
||||
create or replace table t1 (a int) with system versioning;
|
||||
--error ER_VERS_WRONG_PARTS
|
||||
alter table t1 partition by system_time (partition pn current);
|
||||
# Cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
||||
--echo #
|
||||
|
@@ -14,7 +14,13 @@ create or replace table t1 (
|
||||
period for system_time (sys_trx_start, sys_trx_end)
|
||||
) with system versioning;
|
||||
|
||||
--echo # No history inside the transaction
|
||||
start transaction;
|
||||
insert into t1 (x) values (1);
|
||||
update t1 set x= x + 1;
|
||||
update t1 set x= x + 1;
|
||||
commit;
|
||||
select *, sys_trx_start > 1, sys_trx_end from t1 for system_time all;
|
||||
|
||||
--echo # ALTER ADD SYSTEM VERSIONING should write to mysql.transaction_registry
|
||||
set @@system_versioning_alter_history=keep;
|
||||
|
@@ -147,6 +147,21 @@ select @tmp2 = sys_trx_start as B2, salary from t2;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
--echo # Ensure FTS retains correct history
|
||||
replace_result $sys_datatype_expl SYS_DATATYPE;
|
||||
eval create table t1 (
|
||||
x int, y text, fulltext (y),
|
||||
row_start $sys_datatype_expl as row start invisible,
|
||||
row_end $sys_datatype_expl as row end invisible,
|
||||
period for system_time (row_start, row_end))
|
||||
with system versioning engine innodb;
|
||||
insert into t1 values (1, repeat('LONG', 2048));
|
||||
update t1 set x= x + 1;
|
||||
select x, left(y, 4), length(y), check_row(row_start, row_end) from t1 for system_time all order by x, y;
|
||||
update t1 set y= 'SHORT';
|
||||
select x, left(y, 4), length(y), check_row(row_start, row_end) from t1 for system_time all order by x, y;
|
||||
drop tables t1;
|
||||
|
||||
--echo ### Issue tempesta-tech/mariadb#365, bug 7 (duplicate of historical row)
|
||||
create or replace table t1 (a int primary key, b int)
|
||||
with system versioning engine myisam;
|
||||
@@ -286,4 +301,29 @@ delete history from t1;
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-23446 UPDATE does not insert history row if the row is not changed
|
||||
--echo #
|
||||
replace_result $sys_datatype_expl SYS_DATATYPE;
|
||||
eval create table t1 (
|
||||
a int,
|
||||
row_start $sys_datatype_expl as row start invisible,
|
||||
row_end $sys_datatype_expl as row end invisible,
|
||||
period for system_time (row_start, row_end)) with system versioning;
|
||||
insert into t1 values (1);
|
||||
update t1 set a= 1;
|
||||
select *, check_row(row_start, row_end) from t1 for system_time all order by row_end;
|
||||
|
||||
--echo # multi-update
|
||||
create or replace table t2 like t1;
|
||||
create or replace table t3 like t1;
|
||||
insert into t2 values (1);
|
||||
insert into t3 values (1);
|
||||
update t2, t3 set t2.a= 1, t3.a= 1 where t2.a = t3.a;
|
||||
select *, check_row(row_start, row_end) from t2 for system_time all order by row_end;
|
||||
select *, check_row(row_start, row_end) from t2 for system_time all order by row_end;
|
||||
|
||||
# cleanup
|
||||
drop tables t1, t2, t3;
|
||||
|
||||
source suite/versioning/common_finish.inc;
|
||||
|
Reference in New Issue
Block a user