You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-10-31 18:30:33 +03:00
fix tests
This commit is contained in:
committed by
Leonid Fedorov
parent
3a316181e7
commit
3d26e4d6fd
@@ -1,10 +1,6 @@
|
|||||||
#
|
#
|
||||||
# MDEV-25080: Allow pushdown of queries involving UNIONs
|
# MDEV-25080: Allow pushdown of queries involving UNIONs
|
||||||
# in outer select to foreign engines
|
# in outer select to foreign engines
|
||||||
#
|
|
||||||
# Remove the sorted_result MTR qualifier and add ORDER BY
|
|
||||||
# clause after MCOL-5222 is fixed
|
|
||||||
#
|
|
||||||
CREATE USER IF NOT EXISTS'cejuser'@'localhost' IDENTIFIED BY 'Vagrant1|0000001';
|
CREATE USER IF NOT EXISTS'cejuser'@'localhost' IDENTIFIED BY 'Vagrant1|0000001';
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'cejuser'@'localhost';
|
GRANT ALL PRIVILEGES ON *.* TO 'cejuser'@'localhost';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
@@ -20,17 +16,17 @@ INSERT INTO t2 VALUES ('bcd'), ('cde'), ('def'), ('efg');
|
|||||||
INSERT INTO t3 VALUES ('t3_myisam1'), ('t3_myisam2'), ('t3_myisam3');
|
INSERT INTO t3 VALUES ('t3_myisam1'), ('t3_myisam2'), ('t3_myisam3');
|
||||||
INSERT INTO t4 VALUES ('t4_myisam1'), ('t4_myisam2'), ('t4_myisam3');
|
INSERT INTO t4 VALUES ('t4_myisam1'), ('t4_myisam2'), ('t4_myisam3');
|
||||||
# Pushdown of the whole UNION
|
# Pushdown of the whole UNION
|
||||||
SELECT * FROM t1 UNION SELECT * FROM t2;
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
cde
|
cde
|
||||||
def
|
def
|
||||||
efg
|
efg
|
||||||
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2;
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
@@ -39,11 +35,11 @@ cde
|
|||||||
cde
|
cde
|
||||||
def
|
def
|
||||||
efg
|
efg
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
# UNION with a foreign engine
|
# UNION with a foreign engine
|
||||||
SELECT * FROM t1 UNION SELECT * FROM t3;
|
SELECT * FROM t1 UNION SELECT * FROM t3 ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
@@ -51,13 +47,14 @@ cde
|
|||||||
t3_myisam1
|
t3_myisam1
|
||||||
t3_myisam2
|
t3_myisam2
|
||||||
t3_myisam3
|
t3_myisam3
|
||||||
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t3;
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t3 ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
# More than two SELECTs in a UNIT:
|
# More than two SELECTs in a UNIT:
|
||||||
SELECT * FROM t1 UNION
|
SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
abc
|
abc
|
||||||
@@ -69,12 +66,14 @@ def
|
|||||||
efg
|
efg
|
||||||
EXPLAIN SELECT * FROM t1 UNION
|
EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
abc
|
abc
|
||||||
@@ -86,13 +85,15 @@ def
|
|||||||
efg
|
efg
|
||||||
EXPLAIN (SELECT * FROM t1 UNION
|
EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
SELECT * FROM t1 UNION
|
SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t3 UNION
|
SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4
|
||||||
|
ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
@@ -108,13 +109,15 @@ t4_myisam3
|
|||||||
EXPLAIN SELECT * FROM t1 UNION
|
EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t3 UNION
|
SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4
|
||||||
|
ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t3 UNION
|
(SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4);
|
SELECT * FROM t4)
|
||||||
|
ORDER BY 1;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
@@ -130,23 +133,26 @@ t4_myisam3
|
|||||||
EXPLAIN (SELECT * FROM t1 UNION
|
EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t3 UNION
|
(SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4);
|
SELECT * FROM t4)
|
||||||
|
ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
SELECT count(*) FROM t1 UNION
|
SELECT count(*) FROM t1 UNION
|
||||||
SELECT count(*) FROM t2 UNION ALL
|
SELECT count(*) FROM t2 UNION ALL
|
||||||
SELECT count(*)+20 FROM t2 UNION
|
SELECT count(*)+20 FROM t2 UNION
|
||||||
SELECT count(*)+5 FROM t1;
|
SELECT count(*)+5 FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
count(*)
|
count(*)
|
||||||
24
|
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
8
|
8
|
||||||
|
24
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT count(*) FROM t1 UNION
|
SELECT count(*) FROM t1 UNION
|
||||||
SELECT count(*) FROM t2 UNION ALL
|
SELECT count(*) FROM t2 UNION ALL
|
||||||
SELECT count(*)+20 FROM t2 UNION
|
SELECT count(*)+20 FROM t2 UNION
|
||||||
SELECT count(*)+5 FROM t1;
|
SELECT count(*)+5 FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
# UNION inside a derived table: the whole derived table must be pushed
|
# UNION inside a derived table: the whole derived table must be pushed
|
||||||
@@ -181,7 +187,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 PUSHED SELECT NULL NULL NULL NULL NULL NULL NULL NULL
|
1 PUSHED SELECT NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
# Prepared statements
|
# Prepared statements
|
||||||
PREPARE stmt FROM "SELECT * FROM t1 UNION
|
PREPARE stmt FROM "SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2";
|
SELECT * FROM t2 ORDER BY 1";
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
@@ -204,7 +210,7 @@ cde
|
|||||||
def
|
def
|
||||||
efg
|
efg
|
||||||
PREPARE stmt FROM "EXPLAIN SELECT * FROM t1 UNION
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2";
|
SELECT * FROM t2 ORDER BY 1";
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
@@ -214,7 +220,7 @@ NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
|||||||
PREPARE stmt FROM "(SELECT * FROM t1 UNION
|
PREPARE stmt FROM "(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2)";
|
SELECT * FROM t2) ORDER BY 1";
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
@@ -254,7 +260,7 @@ efg
|
|||||||
PREPARE stmt FROM "EXPLAIN (SELECT * FROM t1 UNION
|
PREPARE stmt FROM "EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2)";
|
SELECT * FROM t2) ORDER BY 1";
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
@@ -274,18 +280,15 @@ def
|
|||||||
efg
|
efg
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2000
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
2 UNION t2 ALL NULL NULL NULL NULL 2000
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3;
|
||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 3;
|
|
||||||
a
|
a
|
||||||
abc
|
abc
|
||||||
bcd
|
bcd
|
||||||
cde
|
bcd
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 3;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2000
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
2 UNION t2 ALL NULL NULL NULL NULL 2000
|
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
||||||
a
|
a
|
||||||
efg
|
efg
|
||||||
@@ -295,9 +298,7 @@ cde
|
|||||||
bcd
|
bcd
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2000
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
2 UNION t2 ALL NULL NULL NULL NULL 2000
|
|
||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
||||||
a
|
a
|
||||||
bcd
|
bcd
|
||||||
@@ -305,9 +306,7 @@ cde
|
|||||||
cde
|
cde
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2000
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
2 UNION t2 ALL NULL NULL NULL NULL 2000
|
|
||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
|
||||||
DROP USER 'cejuser'@'localhost';
|
DROP USER 'cejuser'@'localhost';
|
||||||
DROP TABLE t1, t2, t3, t4;
|
DROP TABLE t1, t2, t3, t4;
|
||||||
DROP DATABASE mdev25080;
|
DROP DATABASE mdev25080;
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-25080: Allow pushdown of queries involving UNIONs
|
--echo # MDEV-25080: Allow pushdown of queries involving UNIONs
|
||||||
--echo # in outer select to foreign engines
|
--echo # in outer select to foreign engines
|
||||||
--echo #
|
|
||||||
--echo # Remove the sorted_result MTR qualifier and add ORDER BY
|
|
||||||
--echo # clause after MCOL-5222 is fixed
|
|
||||||
--echo #
|
|
||||||
|
|
||||||
--source ../include/have_columnstore.inc
|
--source ../include/have_columnstore.inc
|
||||||
|
|
||||||
@@ -51,71 +47,73 @@ INSERT INTO t3 VALUES ('t3_myisam1'), ('t3_myisam2'), ('t3_myisam3');
|
|||||||
INSERT INTO t4 VALUES ('t4_myisam1'), ('t4_myisam2'), ('t4_myisam3');
|
INSERT INTO t4 VALUES ('t4_myisam1'), ('t4_myisam2'), ('t4_myisam3');
|
||||||
|
|
||||||
--echo # Pushdown of the whole UNION
|
--echo # Pushdown of the whole UNION
|
||||||
--sorted_result
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY 1;
|
||||||
SELECT * FROM t1 UNION SELECT * FROM t2;
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY 1;
|
||||||
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2;
|
|
||||||
|
|
||||||
--sorted_result
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY 1;
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY 1;
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2;
|
|
||||||
|
|
||||||
--echo # UNION with a foreign engine
|
--echo # UNION with a foreign engine
|
||||||
--sorted_result
|
SELECT * FROM t1 UNION SELECT * FROM t3 ORDER BY 1;
|
||||||
SELECT * FROM t1 UNION SELECT * FROM t3;
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t3 ORDER BY 1;
|
||||||
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t3;
|
|
||||||
|
|
||||||
--echo # More than two SELECTs in a UNIT:
|
--echo # More than two SELECTs in a UNIT:
|
||||||
--sorted_result
|
|
||||||
SELECT * FROM t1 UNION
|
SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 UNION
|
EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
EXPLAIN (SELECT * FROM t1 UNION
|
EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
SELECT * FROM t1 UNION
|
SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t3 UNION
|
SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 UNION
|
EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2 UNION ALL
|
SELECT * FROM t2 UNION ALL
|
||||||
SELECT * FROM t3 UNION
|
SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t3 UNION
|
(SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4);
|
SELECT * FROM t4)
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
EXPLAIN (SELECT * FROM t1 UNION
|
EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t3 UNION
|
(SELECT * FROM t3 UNION
|
||||||
SELECT * FROM t4);
|
SELECT * FROM t4)
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
SELECT count(*) FROM t1 UNION
|
SELECT count(*) FROM t1 UNION
|
||||||
SELECT count(*) FROM t2 UNION ALL
|
SELECT count(*) FROM t2 UNION ALL
|
||||||
SELECT count(*)+20 FROM t2 UNION
|
SELECT count(*)+20 FROM t2 UNION
|
||||||
SELECT count(*)+5 FROM t1;
|
SELECT count(*)+5 FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT count(*) FROM t1 UNION
|
SELECT count(*) FROM t1 UNION
|
||||||
SELECT count(*) FROM t2 UNION ALL
|
SELECT count(*) FROM t2 UNION ALL
|
||||||
SELECT count(*)+20 FROM t2 UNION
|
SELECT count(*)+20 FROM t2 UNION
|
||||||
SELECT count(*)+5 FROM t1;
|
SELECT count(*)+5 FROM t1
|
||||||
|
ORDER BY 1;
|
||||||
|
|
||||||
--echo # UNION inside a derived table: the whole derived table must be pushed
|
--echo # UNION inside a derived table: the whole derived table must be pushed
|
||||||
SELECT a FROM
|
SELECT a FROM
|
||||||
@@ -134,17 +132,14 @@ EXPLAIN
|
|||||||
|
|
||||||
--echo # Prepared statements
|
--echo # Prepared statements
|
||||||
PREPARE stmt FROM "SELECT * FROM t1 UNION
|
PREPARE stmt FROM "SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2";
|
SELECT * FROM t2 ORDER BY 1";
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
PREPARE stmt FROM "EXPLAIN SELECT * FROM t1 UNION
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2";
|
SELECT * FROM t2 ORDER BY 1";
|
||||||
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
@@ -152,19 +147,16 @@ EXECUTE stmt;
|
|||||||
PREPARE stmt FROM "(SELECT * FROM t1 UNION
|
PREPARE stmt FROM "(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2)";
|
SELECT * FROM t2) ORDER BY 1";
|
||||||
|
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
--sorted_result
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
PREPARE stmt FROM "EXPLAIN (SELECT * FROM t1 UNION
|
PREPARE stmt FROM "EXPLAIN (SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2) UNION ALL
|
SELECT * FROM t2) UNION ALL
|
||||||
(SELECT * FROM t1 UNION
|
(SELECT * FROM t1 UNION
|
||||||
SELECT * FROM t2)";
|
SELECT * FROM t2) ORDER BY 1";
|
||||||
|
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
@@ -173,8 +165,8 @@ EXECUTE stmt;
|
|||||||
--echo # clause is involved, until MCOL-5222 is fixed.
|
--echo # clause is involved, until MCOL-5222 is fixed.
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a;
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 3;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3;
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 3;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3;
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
||||||
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
EXPLAIN SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a DESC LIMIT 5;
|
||||||
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
SELECT * FROM t1 UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 3 OFFSET 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user