Commit 098d02eb authored by unknown's avatar unknown

join_outer.result, join_outer.test:

  Added a test case for bug #11285.
sql_select.cc:
  Fixed bug #11285.
  The problem occurred with Item_equal in an 'on expression'
  that was evaluated to false.


sql/sql_select.cc:
  Fixed bug #11285.
  The problem occurred with Item_equal in an 'on expression'
  that was evaluated to false.
mysql-test/t/join_outer.test:
  Added a test case for bug #11285.
mysql-test/r/join_outer.result:
  Added a test case for bug #11285.
parent d5600efd
......@@ -975,3 +975,11 @@ EMPNUM NAME GRP
0 KERI 10
9 BARRY NULL
DROP TABLE t1,t2;
CREATE TABLE t1 (c11 int);
CREATE TABLE t2 (c21 int);
INSERT INTO t1 VALUES (30), (40), (50);
INSERT INTO t2 VALUES (300), (400), (500);
SELECT * FROM t1 LEFT JOIN t2 ON (c11=c21 AND c21=30) WHERE c11=40;
c11 c21
40 NULL
DROP TABLE t1, t2;
......@@ -698,4 +698,16 @@ SELECT * FROM v1 WHERE EMPNUM < 10;
DROP TABLE t1,t2;
#
# Test for bug #11285: false Item_equal on expression in outer join
#
CREATE TABLE t1 (c11 int);
CREATE TABLE t2 (c21 int);
INSERT INTO t1 VALUES (30), (40), (50);
INSERT INTO t2 VALUES (300), (400), (500);
SELECT * FROM t1 LEFT JOIN t2 ON (c11=c21 AND c21=30) WHERE c11=40;
DROP TABLE t1, t2;
......@@ -7064,7 +7064,7 @@ static COND* substitute_for_best_equal_field(COND *cond,
List_iterator_fast<Item_equal> it(cond_equal->current_level);
while ((item_equal= it++))
{
eliminate_item_equal(cond, cond_equal->upper_levels, item_equal);
cond= eliminate_item_equal(cond, cond_equal->upper_levels, item_equal);
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment