Loading mysql-test/r/select.result +17 −0 Original line number Diff line number Diff line Loading @@ -2682,3 +2682,20 @@ AND FK_firma_id = 2; COUNT(*) 0 drop table t1; CREATE TABLE t1 (a int); CREATE TABLE t2 (a int); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); INSERT INTO t2 VALUES (2), (4), (6); SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; a 2 4 EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where DROP TABLE t1,t2; mysql-test/t/select.test +16 −0 Original line number Diff line number Diff line Loading @@ -2255,3 +2255,19 @@ AND FK_firma_id = 2; drop table t1; # # Test for bug #10084: STRAIGHT_JOIN with ON expression # CREATE TABLE t1 (a int); CREATE TABLE t2 (a int); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); INSERT INTO t2 VALUES (2), (4), (6); SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a; DROP TABLE t1,t2; sql/sql_yacc.yy +4 −2 Original line number Diff line number Diff line Loading @@ -5108,10 +5108,12 @@ derived_table_list: join_table: table_ref normal_join table_ref { TEST_ASSERT($1 && ($$=$3)); } | table_ref STRAIGHT_JOIN table_factor | table_ref STRAIGHT_JOIN table_ref { TEST_ASSERT($1 && ($$=$3)); $3->straight=1; } | table_ref normal_join table_ref ON expr { TEST_ASSERT($1 && ($$=$3)); add_join_on($3,$5); } | table_ref STRAIGHT_JOIN table_ref ON expr { TEST_ASSERT($1 && ($$=$3)); $3->straight=1; add_join_on($3,$5); } | table_ref normal_join table_ref USING { Loading Loading
mysql-test/r/select.result +17 −0 Original line number Diff line number Diff line Loading @@ -2682,3 +2682,20 @@ AND FK_firma_id = 2; COUNT(*) 0 drop table t1; CREATE TABLE t1 (a int); CREATE TABLE t2 (a int); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); INSERT INTO t2 VALUES (2), (4), (6); SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; a 2 4 EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where DROP TABLE t1,t2;
mysql-test/t/select.test +16 −0 Original line number Diff line number Diff line Loading @@ -2255,3 +2255,19 @@ AND FK_firma_id = 2; drop table t1; # # Test for bug #10084: STRAIGHT_JOIN with ON expression # CREATE TABLE t1 (a int); CREATE TABLE t2 (a int); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); INSERT INTO t2 VALUES (2), (4), (6); SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a; EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a; DROP TABLE t1,t2;
sql/sql_yacc.yy +4 −2 Original line number Diff line number Diff line Loading @@ -5108,10 +5108,12 @@ derived_table_list: join_table: table_ref normal_join table_ref { TEST_ASSERT($1 && ($$=$3)); } | table_ref STRAIGHT_JOIN table_factor | table_ref STRAIGHT_JOIN table_ref { TEST_ASSERT($1 && ($$=$3)); $3->straight=1; } | table_ref normal_join table_ref ON expr { TEST_ASSERT($1 && ($$=$3)); add_join_on($3,$5); } | table_ref STRAIGHT_JOIN table_ref ON expr { TEST_ASSERT($1 && ($$=$3)); $3->straight=1; add_join_on($3,$5); } | table_ref normal_join table_ref USING { Loading