mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
This commit is contained in:
@ -1321,3 +1321,25 @@ NULL NULL NULL
|
|||||||
18 NULL NULL
|
18 NULL NULL
|
||||||
19 NULL NULL
|
19 NULL NULL
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
CREATE TABLE t1 (c11 int);
|
||||||
|
CREATE TABLE t2 (c21 int);
|
||||||
|
CREATE TABLE t3 (c31 int);
|
||||||
|
INSERT INTO t1 VALUES (4), (5);
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
|
||||||
|
c11 c21
|
||||||
|
4 NULL
|
||||||
|
5 NULL
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 system NULL NULL NULL NULL 0 const row not found
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
|
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
|
||||||
|
c11 c21 c31
|
||||||
|
4 NULL NULL
|
||||||
|
5 NULL NULL
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 0
|
||||||
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 0
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
@ -752,3 +752,21 @@ EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
|||||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||||
|
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test for bug #11284: empty table in a nested left join
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c11 int);
|
||||||
|
CREATE TABLE t2 (c21 int);
|
||||||
|
CREATE TABLE t3 (c31 int);
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (4), (5);
|
||||||
|
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
|
||||||
|
|
||||||
|
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
@ -2158,7 +2158,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds,
|
|||||||
if (*s->on_expr_ref)
|
if (*s->on_expr_ref)
|
||||||
{
|
{
|
||||||
/* s is the only inner table of an outer join */
|
/* s is the only inner table of an outer join */
|
||||||
if (!table->file->records)
|
if (!table->file->records && !embedding)
|
||||||
{ // Empty table
|
{ // Empty table
|
||||||
s->dependent= 0; // Ignore LEFT JOIN depend.
|
s->dependent= 0; // Ignore LEFT JOIN depend.
|
||||||
set_position(join,const_count++,s,(KEYUSE*) 0);
|
set_position(join,const_count++,s,(KEYUSE*) 0);
|
||||||
|
Reference in New Issue
Block a user