summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKentoku SHIBA <kentokushiba@gmail.com>2020-05-05 22:41:10 +0900
committerKentoku SHIBA <kentokushiba@gmail.com>2020-05-05 22:41:10 +0900
commit5151d7cea24329ec82097c8ca170b21db82c8c4f (patch)
treee2ce75ea62a3790ffbefab439789c4de8e84133a
parent4d47d737ed7511cdc08119376d2462e844830e06 (diff)
downloadmariadb-git-bb-10.4-MDEV-20502.tar.gz
MDEV-20502 Queries against spider tables return wrong values for columns following constant declarations.bb-10.4-MDEV-20502
Add test cases.
-rw-r--r--storage/spider/mysql-test/spider/bugfix/r/mdev_20502.result24
-rw-r--r--storage/spider/mysql-test/spider/bugfix/t/mdev_20502.test7
2 files changed, 31 insertions, 0 deletions
diff --git a/storage/spider/mysql-test/spider/bugfix/r/mdev_20502.result b/storage/spider/mysql-test/spider/bugfix/r/mdev_20502.result
index 284f62e522e..e5f16b81329 100644
--- a/storage/spider/mysql-test/spider/bugfix/r/mdev_20502.result
+++ b/storage/spider/mysql-test/spider/bugfix/r/mdev_20502.result
@@ -36,14 +36,38 @@ connection master_1;
SELECT id, 0 AS const, val FROM tbl_a;
id const val
1 0 1
+SELECT 1+2, id, 0 AS const, val, val+10, (SELECT tbl_a.val+1 FROM tbl_a) AS sq
+FROM tbl_a;
+1+2 id const val val+10 sq
+3 1 0 1 11 2
+INSERT INTO tbl_a (val) VALUES (2), (1);
+SELECT val+10, 0 AS const, val, (SELECT tbl_a.val+1 FROM tbl_a LIMIT 1) AS sq
+FROM tbl_a GROUP BY val;
+val+10 const val sq
+11 0 1 2
+12 0 2 2
+SELECT MAX(id) AS m, 0 AS const, val, (SELECT tbl_a.val+1 FROM tbl_a LIMIT 1) AS sq
+FROM tbl_a GROUP BY val;
+m const val sq
+3 0 1 2
+2 0 2 2
connection child2_1;
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %';
argument
select t0.`id` `id`,t0.`val` `val` from `auto_test_remote`.`tbl_a` t0
+select t0.`id` `id`,t0.`val` `val`,(t0.`val` + 10) `val+10` from `auto_test_remote`.`tbl_a` t0
+select (t0.`val` + 1) `tbl_a.val+1` from `auto_test_remote`.`tbl_a` t0
+select `id`,`val` from `auto_test_remote`.`tbl_a` order by `id` desc limit 1 for update
+select (t0.`val` + 10) `val+10`,t0.`val` `val` from `auto_test_remote`.`tbl_a` t0 group by t0.`val` order by t0.`val`
+select (t0.`val` + 1) `tbl_a.val+1` from `auto_test_remote`.`tbl_a` t0 limit 1
+select max(t0.`id`) `m`,t0.`val` `val` from `auto_test_remote`.`tbl_a` t0 group by t0.`val` order by t0.`val`
+select (t0.`val` + 1) `tbl_a.val+1` from `auto_test_remote`.`tbl_a` t0 limit 1
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'
SELECT id, val FROM tbl_a ORDER BY id;
id val
1 1
+2 2
+3 1
deinit
connection master_1;
diff --git a/storage/spider/mysql-test/spider/bugfix/t/mdev_20502.test b/storage/spider/mysql-test/spider/bugfix/t/mdev_20502.test
index 4693f2f7409..2d6ff5b4663 100644
--- a/storage/spider/mysql-test/spider/bugfix/t/mdev_20502.test
+++ b/storage/spider/mysql-test/spider/bugfix/t/mdev_20502.test
@@ -49,6 +49,13 @@ TRUNCATE TABLE mysql.general_log;
--connection master_1
SELECT id, 0 AS const, val FROM tbl_a;
+SELECT 1+2, id, 0 AS const, val, val+10, (SELECT tbl_a.val+1 FROM tbl_a) AS sq
+FROM tbl_a;
+INSERT INTO tbl_a (val) VALUES (2), (1);
+SELECT val+10, 0 AS const, val, (SELECT tbl_a.val+1 FROM tbl_a LIMIT 1) AS sq
+FROM tbl_a GROUP BY val;
+SELECT MAX(id) AS m, 0 AS const, val, (SELECT tbl_a.val+1 FROM tbl_a LIMIT 1) AS sq
+FROM tbl_a GROUP BY val;
--connection child2_1
eval $CHILD2_1_SELECT_ARGUMENT1;