summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2018-08-03 23:27:24 -0700
committerIgor Babaev <igor@askmonty.org>2018-08-03 23:27:24 -0700
commit0f9efd54ceb0e2b42841f5eb15d30072d210bac2 (patch)
tree6d6fd9d1dd2d1b12ce8ef0dc59c1c2866760e848 /mysql-test
parent980aa3e71dfe0284ae8acb3e22852f29aaebd0bd (diff)
downloadmariadb-git-0f9efd54ceb0e2b42841f5eb15d30072d210bac2.tar.gz
MDEV-16359 wrong result (extra rows) on the query with UNION and brackets
Due to an obvious bug in st_select_lex_unit::reset_distinct() a union without duplicates of more than 2 selects could return a result set containing duplicate rows if this union was enclosed in ().
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/main/brackets.result12
-rw-r--r--mysql-test/main/brackets.test8
2 files changed, 20 insertions, 0 deletions
diff --git a/mysql-test/main/brackets.result b/mysql-test/main/brackets.result
index 194807290a0..479b74b69e4 100644
--- a/mysql-test/main/brackets.result
+++ b/mysql-test/main/brackets.result
@@ -207,4 +207,16 @@ a b
1 100
3 30
drop table t1;
+#
+# MDEV-16359: union with 3 selects in brackets
+#
+select 1 union select 1 union select 1;
+1
+1
+(select 1 union select 1 union select 1);
+1
+1
+((select 1) union (select 1) union (select 1));
+1
+1
# End of 10.4 tests
diff --git a/mysql-test/main/brackets.test b/mysql-test/main/brackets.test
index ac22770ffc2..699c70a900f 100644
--- a/mysql-test/main/brackets.test
+++ b/mysql-test/main/brackets.test
@@ -80,5 +80,13 @@ select a,b from t1 order by 1 limit 3;
drop table t1;
+--echo #
+--echo # MDEV-16359: union with 3 selects in brackets
+--echo #
+
+select 1 union select 1 union select 1;
+(select 1 union select 1 union select 1);
+((select 1) union (select 1) union (select 1));
+
--echo # End of 10.4 tests