diff options
Diffstat (limited to 'mysql-test/main/multi_update.test')
-rw-r--r-- | mysql-test/main/multi_update.test | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mysql-test/main/multi_update.test b/mysql-test/main/multi_update.test index 3ee36f97fc5..5f4b5fc8ec3 100644 --- a/mysql-test/main/multi_update.test +++ b/mysql-test/main/multi_update.test @@ -1098,3 +1098,34 @@ select a from t1 where a= (select 2 from t1 having (a = 3)); --error ER_SUBQUERY_NO_1_ROW update t1 set a= (select 2 from t1 having (a = 3)); drop tables t1; + +--echo # +--echo # MDEV-28246 Optimizer uses all partitions during an update in MariaDB 10.6.x but not in 10.2.x +--echo # +--source include/have_partition.inc +CREATE TABLE t1 ( + part INT(1), + a INT(1), + b INT(1), + PRIMARY KEY (a,part), + INDEX b (b,part) +) PARTITION BY LIST (part) ( + PARTITION Current VALUES IN (0), + PARTITION Relevant VALUES IN (1), + PARTITION Archive VALUES IN (2) +); + +CREATE TABLE t2 LIKE t1; +INSERT INTO t1 (part,a,b) VALUES (0,0,0),(1,1,1),(2,2,2); +INSERT INTO t2 (part,a,b) VALUES (0,0,0),(1,1,1),(2,2,2); + +--echo # Expecting partition "Current" +EXPLAIN FORMAT=JSON UPDATE t2 JOIN t1 USING(a) SET t2.part=3 WHERE t2.part=0 AND t1.part=0; + +--echo # Expecting partition "Relevant" +EXPLAIN FORMAT=JSON UPDATE t2 JOIN t1 USING(a) SET t2.part=2 WHERE t2.part=1 AND t1.part=1; + +--echo # Expecting partition "Archive" +EXPLAIN FORMAT=JSON UPDATE t2 JOIN t1 USING(a) SET t2.part=3 WHERE t2.part=2 AND t1.part=2; + +DROP TABLES t1, t2; |