diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-04-16 12:12:26 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-04-16 12:12:26 +0300 |
commit | af912664989e0c3ee9cdb6caf8ec439029e7405c (patch) | |
tree | 9ab694ec5d18e0ab998eb4f52ee86129e5fbd3ae /mysql-test/suite/versioning | |
parent | 5679a2b6b342abc9d80bcf784a1a35f240be9d87 (diff) | |
parent | 6577a7a8f20538df80b851698e21095311aae190 (diff) | |
download | mariadb-git-af912664989e0c3ee9cdb6caf8ec439029e7405c.tar.gz |
Merge 10.3 into 10.4
In main.index_merge_myisam we remove the test that was added in
commit a2d24def8cc42d27c72d833abfb39ef24a2b96ba because
it duplicates the test case that was added in
commit 5af12e463549e4bbc2ce6ab720d78937d5e5db4e.
Diffstat (limited to 'mysql-test/suite/versioning')
-rw-r--r-- | mysql-test/suite/versioning/r/alter.result | 11 | ||||
-rw-r--r-- | mysql-test/suite/versioning/r/partition.result | 39 | ||||
-rw-r--r-- | mysql-test/suite/versioning/r/update.result | 7 | ||||
-rw-r--r-- | mysql-test/suite/versioning/t/alter.test | 12 | ||||
-rw-r--r-- | mysql-test/suite/versioning/t/partition.test | 40 | ||||
-rw-r--r-- | mysql-test/suite/versioning/t/update.test | 10 |
6 files changed, 118 insertions, 1 deletions
diff --git a/mysql-test/suite/versioning/r/alter.result b/mysql-test/suite/versioning/r/alter.result index 6563638c195..33c1d499088 100644 --- a/mysql-test/suite/versioning/r/alter.result +++ b/mysql-test/suite/versioning/r/alter.result @@ -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; diff --git a/mysql-test/suite/versioning/r/partition.result b/mysql-test/suite/versioning/r/partition.result index 5c83731b88b..68512fbea6a 100644 --- a/mysql-test/suite/versioning/r/partition.result +++ b/mysql-test/suite/versioning/r/partition.result @@ -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; diff --git a/mysql-test/suite/versioning/r/update.result b/mysql-test/suite/versioning/r/update.result index a2ec02a7ec1..f7901d11d2a 100644 --- a/mysql-test/suite/versioning/r/update.result +++ b/mysql-test/suite/versioning/r/update.result @@ -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; diff --git a/mysql-test/suite/versioning/t/alter.test b/mysql-test/suite/versioning/t/alter.test index 03c821a2254..83c3e911fad 100644 --- a/mysql-test/suite/versioning/t/alter.test +++ b/mysql-test/suite/versioning/t/alter.test @@ -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; diff --git a/mysql-test/suite/versioning/t/partition.test b/mysql-test/suite/versioning/t/partition.test index 98af71277c8..a03fb33108d 100644 --- a/mysql-test/suite/versioning/t/partition.test +++ b/mysql-test/suite/versioning/t/partition.test @@ -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; diff --git a/mysql-test/suite/versioning/t/update.test b/mysql-test/suite/versioning/t/update.test index 71e946e6c2b..5b0a9eb5c42 100644 --- a/mysql-test/suite/versioning/t/update.test +++ b/mysql-test/suite/versioning/t/update.test @@ -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; |