Fixed LP bug #784848 that caused failures of func_str.test and
derived_view.test. Do not register Item_ref objects of the type VIEW_REF as outer references.
This commit is contained in:
parent
1018c90107
commit
6d2da32461
@ -354,6 +354,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` where ((`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7))
|
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` where ((`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7))
|
||||||
|
select * from (select * from
|
||||||
|
(select * from t1 where f1 < 7) tt where f1 > 2) zz;
|
||||||
|
f1 f11
|
||||||
|
3 3
|
||||||
|
5 5
|
||||||
materialized derived in merged derived
|
materialized derived in merged derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
(select * from t1 where f1 < 7 group by f1) tt where f1 > 2) zz;
|
(select * from t1 where f1 < 7 group by f1) tt where f1 > 2) zz;
|
||||||
@ -375,6 +380,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DERIVED t1 ALL NULL NULL NULL NULL 11 100.00 Using where; Using temporary; Using filesort
|
2 DERIVED t1 ALL NULL NULL NULL NULL 11 100.00 Using where; Using temporary; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `zz`.`f1` AS `f1`,`zz`.`f11` AS `f11` from (select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` where ((`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7)) group by `test`.`t1`.`f1`) `zz`
|
Note 1003 select `zz`.`f1` AS `f1`,`zz`.`f11` AS `f11` from (select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` where ((`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7)) group by `test`.`t1`.`f1`) `zz`
|
||||||
|
select * from (select * from
|
||||||
|
(select * from t1 where f1 < 7) tt where f1 > 2 group by f1) zz;
|
||||||
|
f1 f11
|
||||||
|
3 3
|
||||||
|
5 5
|
||||||
materialized derived in materialized derived
|
materialized derived in materialized derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
(select * from t1 where f1 < 7 group by f1) tt where f1 > 2 group by f1) zz;
|
(select * from t1 where f1 < 7 group by f1) tt where f1 > 2 group by f1) zz;
|
||||||
@ -433,6 +443,16 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11`,`test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` join `test`.`t1` where ((`test`.`t1`.`f1` = `test`.`t1`.`f1`) and (`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7) and (`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7))
|
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11`,`test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f11` AS `f11` from `test`.`t1` join `test`.`t1` where ((`test`.`t1`.`f1` = `test`.`t1`.`f1`) and (`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7) and (`test`.`t1`.`f1` > 2) and (`test`.`t1`.`f1` < 7))
|
||||||
|
select * from
|
||||||
|
(select * from
|
||||||
|
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) x
|
||||||
|
join
|
||||||
|
(select * from
|
||||||
|
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) z
|
||||||
|
on x.f1 = z.f1;
|
||||||
|
f1 f11 f1 f11
|
||||||
|
3 3 3 3
|
||||||
|
5 5 5 5
|
||||||
materialized in materialized derived join
|
materialized in materialized derived join
|
||||||
materialized in materialized derived
|
materialized in materialized derived
|
||||||
explain extended select * from
|
explain extended select * from
|
||||||
@ -469,6 +489,10 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DERIVED t2 ALL NULL NULL NULL NULL 11 100.00 Using where; Using temporary; Using filesort
|
2 DERIVED t2 ALL NULL NULL NULL NULL 11 100.00 Using where; Using temporary; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `tt`.`f2` AS `f2`,`tt`.`f22` AS `f22` from (select `test`.`t2`.`f2` AS `f2`,`test`.`t2`.`f22` AS `f22` from `test`.`t2` where (`test`.`t2`.`f2` in (2,3)) group by 1) `tt`
|
Note 1003 select `tt`.`f2` AS `f2`,`tt`.`f22` AS `f22` from (select `test`.`t2`.`f2` AS `f2`,`test`.`t2`.`f22` AS `f22` from `test`.`t2` where (`test`.`t2`.`f2` in (2,3)) group by 1) `tt`
|
||||||
|
select * from (select * from v4 group by 1) tt;
|
||||||
|
f2 f22
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
materialized view in merged derived
|
materialized view in merged derived
|
||||||
explain extended
|
explain extended
|
||||||
select * from ( select * from v1 where f1 < 7) tt;
|
select * from ( select * from v1 where f1 < 7) tt;
|
||||||
@ -490,6 +514,10 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`f2` AS `f2`,`test`.`t2`.`f22` AS `f22` from `test`.`t2` where ((`test`.`t2`.`f2` < 7) and (`test`.`t2`.`f2` in (2,3)))
|
Note 1003 select `test`.`t2`.`f2` AS `f2`,`test`.`t2`.`f22` AS `f22` from `test`.`t2` where ((`test`.`t2`.`f2` < 7) and (`test`.`t2`.`f2` in (2,3)))
|
||||||
|
select * from (select * from v6) tt;
|
||||||
|
f2 f22
|
||||||
|
3 3
|
||||||
|
2 2
|
||||||
materialized view in a merged view in a materialized derived
|
materialized view in a merged view in a materialized derived
|
||||||
create view v7 as select * from v1;
|
create view v7 as select * from v1;
|
||||||
explain extended select * from (select * from v7 group by 1) tt;
|
explain extended select * from (select * from v7 group by 1) tt;
|
||||||
@ -499,6 +527,19 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
4 DERIVED t1 ALL NULL NULL NULL NULL 11 100.00 Using temporary; Using filesort
|
4 DERIVED t1 ALL NULL NULL NULL NULL 11 100.00 Using temporary; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `tt`.`f1` AS `f1`,`tt`.`f11` AS `f11` from (select `v1`.`f1` AS `f1`,`v1`.`f11` AS `f11` from `test`.`v1` group by 1) `tt`
|
Note 1003 select `tt`.`f1` AS `f1`,`tt`.`f11` AS `f11` from (select `v1`.`f1` AS `f1`,`v1`.`f11` AS `f11` from `test`.`v1` group by 1) `tt`
|
||||||
|
select * from (select * from v7 group by 1) tt;
|
||||||
|
f1 f11
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
5 5
|
||||||
|
7 7
|
||||||
|
9 9
|
||||||
|
11 11
|
||||||
|
13 13
|
||||||
|
15 15
|
||||||
|
17 17
|
||||||
|
19 19
|
||||||
join of above two
|
join of above two
|
||||||
explain extended select * from v6 join v7 on f2=f1;
|
explain extended select * from v6 join v7 on f2=f1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
@ -2395,6 +2395,18 @@ C
|
|||||||
4194326291
|
4194326291
|
||||||
2366072709
|
2366072709
|
||||||
2707236321
|
2707236321
|
||||||
|
SELECT * FROM (SELECT * FROM v1) x;
|
||||||
|
C
|
||||||
|
2212294583
|
||||||
|
450215437
|
||||||
|
1842515611
|
||||||
|
4088798008
|
||||||
|
2226203566
|
||||||
|
498629140
|
||||||
|
1790921346
|
||||||
|
4194326291
|
||||||
|
2366072709
|
||||||
|
2707236321
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
SELECT LOCATE('foo', NULL) FROM DUAL;
|
SELECT LOCATE('foo', NULL) FROM DUAL;
|
||||||
|
@ -110,10 +110,8 @@ select * from v1 join v4 on f1=f2;
|
|||||||
--echo merged derived in merged derived
|
--echo merged derived in merged derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
(select * from t1 where f1 < 7) tt where f1 > 2) zz;
|
(select * from t1 where f1 < 7) tt where f1 > 2) zz;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from (select * from
|
||||||
# !!! Uncomment it when the bug is fixed
|
(select * from t1 where f1 < 7) tt where f1 > 2) zz;
|
||||||
# select * from (select * from
|
|
||||||
# (select * from t1 where f1 < 7) tt where f1 > 2) zz;
|
|
||||||
|
|
||||||
--echo materialized derived in merged derived
|
--echo materialized derived in merged derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
@ -124,10 +122,8 @@ select * from (select * from
|
|||||||
--echo merged derived in materialized derived
|
--echo merged derived in materialized derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
(select * from t1 where f1 < 7) tt where f1 > 2 group by f1) zz;
|
(select * from t1 where f1 < 7) tt where f1 > 2 group by f1) zz;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from (select * from
|
||||||
# !!! Uncomment it when the bug is fixed
|
(select * from t1 where f1 < 7) tt where f1 > 2 group by f1) zz;
|
||||||
# select * from (select * from
|
|
||||||
# (select * from t1 where f1 < 7) tt where f1 > 2 group by f1) zz;
|
|
||||||
|
|
||||||
--echo materialized derived in materialized derived
|
--echo materialized derived in materialized derived
|
||||||
explain extended select * from (select * from
|
explain extended select * from (select * from
|
||||||
@ -160,15 +156,13 @@ join
|
|||||||
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) z
|
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) z
|
||||||
on x.f1 = z.f1;
|
on x.f1 = z.f1;
|
||||||
|
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from
|
||||||
# !!! Uncomment it when the bug is fixed
|
(select * from
|
||||||
# select * from
|
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) x
|
||||||
# (select * from
|
join
|
||||||
# (select * from t1 where f1 < 7 ) tt where f1 > 2 ) x
|
(select * from
|
||||||
# join
|
(select * from t1 where f1 < 7 ) tt where f1 > 2 ) z
|
||||||
# (select * from
|
on x.f1 = z.f1;
|
||||||
# (select * from t1 where f1 < 7 ) tt where f1 > 2 ) z
|
|
||||||
# on x.f1 = z.f1;
|
|
||||||
|
|
||||||
--echo materialized in materialized derived join
|
--echo materialized in materialized derived join
|
||||||
--echo materialized in materialized derived
|
--echo materialized in materialized derived
|
||||||
@ -191,9 +185,7 @@ join
|
|||||||
--echo merged view in materialized derived
|
--echo merged view in materialized derived
|
||||||
explain extended
|
explain extended
|
||||||
select * from (select * from v4 group by 1) tt;
|
select * from (select * from v4 group by 1) tt;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from (select * from v4 group by 1) tt;
|
||||||
# !!! Uncomment it when the bug is fixed
|
|
||||||
# select * from (select * from v4 group by 1) tt;
|
|
||||||
|
|
||||||
--echo materialized view in merged derived
|
--echo materialized view in merged derived
|
||||||
explain extended
|
explain extended
|
||||||
@ -203,16 +195,12 @@ select * from ( select * from v1 where f1 < 7) tt;
|
|||||||
--echo merged view in a merged view in a merged derived
|
--echo merged view in a merged view in a merged derived
|
||||||
create view v6 as select * from v4 where f2 < 7;
|
create view v6 as select * from v4 where f2 < 7;
|
||||||
explain extended select * from (select * from v6) tt;
|
explain extended select * from (select * from v6) tt;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from (select * from v6) tt;
|
||||||
# !!! Uncomment it when the bug is fixed
|
|
||||||
# select * from (select * from v6) tt;
|
|
||||||
|
|
||||||
--echo materialized view in a merged view in a materialized derived
|
--echo materialized view in a merged view in a materialized derived
|
||||||
create view v7 as select * from v1;
|
create view v7 as select * from v1;
|
||||||
explain extended select * from (select * from v7 group by 1) tt;
|
explain extended select * from (select * from v7 group by 1) tt;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
select * from (select * from v7 group by 1) tt;
|
||||||
# !!! Uncomment it when the bug is fixed
|
|
||||||
# select * from (select * from v7 group by 1) tt;
|
|
||||||
|
|
||||||
--echo join of above two
|
--echo join of above two
|
||||||
explain extended select * from v6 join v7 on f2=f1;
|
explain extended select * from v6 join v7 on f2=f1;
|
||||||
|
@ -1198,9 +1198,7 @@ SELECT * FROM (SELECT CRC32(a) FROM t1) t2;
|
|||||||
CREATE TABLE t2 SELECT CRC32(a) FROM t1;
|
CREATE TABLE t2 SELECT CRC32(a) FROM t1;
|
||||||
desc t2;
|
desc t2;
|
||||||
SELECT * FROM v1;
|
SELECT * FROM v1;
|
||||||
# !!! This query crashes the server in ps-protocol due to a bug in the code of mwl106
|
SELECT * FROM (SELECT * FROM v1) x;
|
||||||
# !!! Uncomment it when the bug is fixed
|
|
||||||
# SELECT * FROM (SELECT * FROM v1) x;
|
|
||||||
|
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
@ -223,7 +223,7 @@ use mysqltest;
|
|||||||
# update with rights on VIEW column
|
# update with rights on VIEW column
|
||||||
update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.c;
|
update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.c;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
# !!! This query failsin ps-protocol due to a bug in the code of mwl106
|
# !!! This query fails in ps-protocol due to a bug in the code of mwl106
|
||||||
# !!! Uncomment it when the bug is fixed
|
# !!! Uncomment it when the bug is fixed
|
||||||
# update v1 set a=a+c;
|
# update v1 set a=a+c;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@ -6295,7 +6295,7 @@ bool Item_ref::fix_fields(THD *thd, Item **reference)
|
|||||||
last_checked_context->select_lex->nest_level);
|
last_checked_context->select_lex->nest_level);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (ref_type() != VIEW_REF)
|
||||||
{
|
{
|
||||||
if (depended_from && reference)
|
if (depended_from && reference)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user