1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Merge 10.3 into 10.4

In main.index_merge_myisam we remove the test that was added in
commit a2d24def8c because
it duplicates the test case that was added in
commit 5af12e4635.
This commit is contained in:
Marko Mäkelä
2020-04-16 12:12:26 +03:00
140 changed files with 2531 additions and 1372 deletions

View File

@ -54,7 +54,7 @@ add column trx_end timestamp(6) not null as row end invisible,
add period for system_time(trx_start, trx_end),
add system versioning;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'as row start invisible,
add column trx_end timestamp(6) not null as row end invi' at line 2
add column trx_end timestamp(6) not null as row end i...' at line 2
alter table t
add column trx_start timestamp(6) as row start invisible,
add column trx_end timestamp(6) as row end invisible,
@ -687,3 +687,12 @@ add column c int without system versioning,
change column c c int,
change column b b int without system versioning;
drop table t;
#
# MDEV-21688 Assertion or ER_WARN_DATA_OUT_OF_RANGE upon ALTER on previously versioned table
#
create or replace table t1 (a int) with system versioning;
insert into t1 values (128);
delete from t1;
set statement system_versioning_alter_history=keep for
alter table t1 drop system versioning, modify column a tinyint;
drop table t1;

View File

@ -622,3 +622,42 @@ create table t2 (b int);
insert into t2 values (1),(2);
update t1, t2 set a = 1;
drop table t1, t2;
#
# MDEV-20515 multi-update tries to position updated table by null reference
#
create or replace table t1 (a int);
insert into t1 values (0), (1);
create or replace table t2 (b int) with system versioning
partition by system_time
(partition p1 history, partition pn current);
insert into t2 values (0), (2);
update t1 left join t2 on a > b set b= 2 order by b;
drop table t1, t2;
#
# MDEV-17091 Assertion `old_part_id == m_last_part' failed in
# ha_partition::update_row or `part_id == m_last_part' in
# ha_partition::delete_row upon UPDATE/DELETE after dropping versioning
#
create or replace table t1 (pk int primary key, f int) engine=innodb
with system versioning
partition by key() partitions 2;
insert into t1 values (1,10),(2,20);
# expected to hit same partition
select * from t1 partition (p0);
pk f
1 10
2 20
alter table t1 drop system versioning;
# 1 and 2 are expected to be in different partitions
select * from t1 partition(p0);
pk f
1 10
select * from t1 partition(p1);
pk f
2 20
update t1 set f=pk;
delete from t1;
drop table t1;
# Test cleanup
drop database test;
create database test;

View File

@ -312,3 +312,10 @@ ERROR 42S22: Unknown column 'xx' in 'field list'
drop procedure sp;
drop view v1;
drop table t1;
#
# MDEV-21342 Assertion in set_ok_status() upon spatial field error on system-versioned table
#
create or replace table t1 (f point, key(f)) with system versioning engine=myisam;
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;

View File

@ -581,3 +581,15 @@ alter table t
change column b b int without system versioning;
drop table t;
--echo #
--echo # MDEV-21688 Assertion or ER_WARN_DATA_OUT_OF_RANGE upon ALTER on previously versioned table
--echo #
create or replace table t1 (a int) with system versioning;
insert into t1 values (128);
delete from t1;
set statement system_versioning_alter_history=keep for
alter table t1 drop system versioning, modify column a tinyint;
# cleanup
drop table t1;

View File

@ -558,4 +558,44 @@ update t1, t2 set a = 1;
# cleanup
drop table t1, t2;
--echo #
--echo # MDEV-20515 multi-update tries to position updated table by null reference
--echo #
create or replace table t1 (a int);
insert into t1 values (0), (1);
create or replace table t2 (b int) with system versioning
partition by system_time
(partition p1 history, partition pn current);
insert into t2 values (0), (2);
update t1 left join t2 on a > b set b= 2 order by b;
# cleanup
drop table t1, t2;
--source suite/versioning/common_finish.inc
--echo #
--echo # MDEV-17091 Assertion `old_part_id == m_last_part' failed in
--echo # ha_partition::update_row or `part_id == m_last_part' in
--echo # ha_partition::delete_row upon UPDATE/DELETE after dropping versioning
--echo #
create or replace table t1 (pk int primary key, f int) engine=innodb
with system versioning
partition by key() partitions 2;
insert into t1 values (1,10),(2,20);
--echo # expected to hit same partition
select * from t1 partition (p0);
alter table t1 drop system versioning;
--echo # 1 and 2 are expected to be in different partitions
select * from t1 partition(p0);
select * from t1 partition(p1);
update t1 set f=pk;
delete from t1;
drop table t1;
--echo # Test cleanup
drop database test;
create database test;

View File

@ -235,4 +235,14 @@ drop procedure sp;
drop view v1;
drop table t1;
--echo #
--echo # MDEV-21342 Assertion in set_ok_status() upon spatial field error on system-versioned table
--echo #
create or replace table t1 (f point, key(f)) with system versioning engine=myisam;
--error ER_CANT_CREATE_GEOMETRY_OBJECT
update t1 set f = null where f = 'foo';
# cleanup
drop table t1;
source suite/versioning/common_finish.inc;