summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/join.test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--mysql-test/main/join.test46
1 files changed, 46 insertions, 0 deletions
diff --git a/mysql-test/main/join.test b/mysql-test/main/join.test
index a59e53d8..a4d34f41 100644
--- a/mysql-test/main/join.test
+++ b/mysql-test/main/join.test
@@ -1838,6 +1838,52 @@ SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.b = t3.c) ON t1.a = t2.b;
SELECT COUNT(*) FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.b = t3.c) ON t1.a = t2.b;
DROP TABLE t1, t2, t3;
+--echo #
+--echo # MDEV-30975: Wrong result with cross Join given join order
+--echo #
+
+CREATE TABLE `t1` (
+ `t1_seq` INT NOT NULL,
+ `c1` VARCHAR(10) NOT NULL ,
+ PRIMARY KEY (`t1_seq`) USING BTREE
+);
+
+CREATE TABLE `t2` (
+ `t2_seq` INT NOT NULL,
+ `t1_seq` INT NOT NULL,
+ `c2` VARCHAR(10) NOT NULL ,
+ PRIMARY KEY (`t2_seq`, `t1_seq`) USING BTREE
+);
+
+INSERT INTO t1 VALUES(1, 'A');
+INSERT INTO t2 VALUES(1, 1, 'T2-1-1');
+INSERT INTO t2 VALUES(2, 1, 'T2-1-2');
+INSERT INTO t2 VALUES(3, 1, 'T2-1-3');
+
+SELECT LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+ , t1.t1_seq
+ , t2.t2_seq
+ , t1.c1
+ , t2.c2
+ FROM t1
+ INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+ CROSS JOIN ( SELECT @rownum := 0 ) X;
+
+SELECT STRAIGHT_JOIN LPAD(@rownum := @rownum + 1, 8, 0) AS str_num
+ , t1.t1_seq
+ , t2.t2_seq
+ , t1.c1
+ , t2.c2
+ FROM t1
+ INNER JOIN t2 ON (t1.t1_seq = t2.t1_seq)
+ CROSS JOIN ( SELECT @rownum := 0 ) X;
+
+SELECT STRAIGHT_JOIN * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+SELECT * FROM t1 JOIN t2 ON (t1.t1_seq = t2.t1_seq) JOIN (SELECT @a := 0) x;
+SELECT STRAIGHT_JOIN c1 FROM t1 JOIN (SELECT @a := 0) x;
+
+DROP TABLE t1, t2;
+
--echo # End of 10.5 tests
--echo #