Commit aaf9fb0d authored by Igor Babaev's avatar Igor Babaev

Fixed LP bug #776274,

The bug was introduced by the patch that fixed bug 717577.
parent 8ac88c88
......@@ -5018,3 +5018,16 @@ WHERE t7.f71>0;
f23
DROP TABLE t1,t2,t3,t4,t5,t6,t7;
End of 5.1 tests
#
# BUG#776274: substitution of a single row table
#
CREATE TABLE t1 (a int NOT NULL , b int);
INSERT INTO t1 VALUES (2,2);
SELECT * FROM t1 WHERE a = b;
a b
2 2
EXPLAIN
SELECT * FROM t1 WHERE a = b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
DROP TABLE t1;
......@@ -5025,6 +5025,19 @@ WHERE t7.f71>0;
f23
DROP TABLE t1,t2,t3,t4,t5,t6,t7;
End of 5.1 tests
#
# BUG#776274: substitution of a single row table
#
CREATE TABLE t1 (a int NOT NULL , b int);
INSERT INTO t1 VALUES (2,2);
SELECT * FROM t1 WHERE a = b;
a b
2 2
EXPLAIN
SELECT * FROM t1 WHERE a = b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
DROP TABLE t1;
set join_cache_level=default;
show variables like 'join_cache_level';
Variable_name Value
......
......@@ -5018,3 +5018,16 @@ WHERE t7.f71>0;
f23
DROP TABLE t1,t2,t3,t4,t5,t6,t7;
End of 5.1 tests
#
# BUG#776274: substitution of a single row table
#
CREATE TABLE t1 (a int NOT NULL , b int);
INSERT INTO t1 VALUES (2,2);
SELECT * FROM t1 WHERE a = b;
a b
2 2
EXPLAIN
SELECT * FROM t1 WHERE a = b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
DROP TABLE t1;
......@@ -4211,3 +4211,17 @@ SELECT t2.f23 FROM
DROP TABLE t1,t2,t3,t4,t5,t6,t7;
--echo End of 5.1 tests
--echo #
--echo # BUG#776274: substitution of a single row table
--echo #
CREATE TABLE t1 (a int NOT NULL , b int);
INSERT INTO t1 VALUES (2,2);
SELECT * FROM t1 WHERE a = b;
EXPLAIN
SELECT * FROM t1 WHERE a = b;
DROP TABLE t1;
......@@ -5740,18 +5740,19 @@ void Item_equal::update_const()
List_iterator<Item> it(equal_items);
if (with_const)
it++;
Item *item= it++;
while (item)
Item *item;
while ((item= it++))
{
if (item->const_item())
{
it.remove();
Item *next_item= it++;
add_const(item);
item= next_item;
}
else
item= it++;
if (item == equal_items.head())
with_const= TRUE;
else
{
it.remove();
add_const(item);
}
}
}
}
......
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