fixed uncachable union (bug #150)
mysql-test/r/union.result: sect of uncachable union mysql-test/t/union.test: sect of uncachable union sql/sql_lex.h: fixed uncachable union
This commit is contained in:
parent
13d28097e7
commit
6da897e04b
@ -269,3 +269,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
drop table t1,t2;
|
||||
(select 1) union (select 2) order by 0;
|
||||
Unknown column '0' in 'order clause'
|
||||
SELECT @a:=1 UNION SELECT @a:=@a+1;
|
||||
@a:=1
|
||||
1
|
||||
2
|
||||
|
@ -144,3 +144,5 @@ explain (select * from t1 where a=1) union (select * from t1 where b=1);
|
||||
drop table t1,t2;
|
||||
--error 1054
|
||||
(select 1) union (select 2) order by 0;
|
||||
|
||||
SELECT @a:=1 UNION SELECT @a:=@a+1;
|
||||
|
@ -501,11 +501,13 @@ typedef struct st_lex
|
||||
but we should merk all subselects as uncacheable from current till
|
||||
most upper
|
||||
*/
|
||||
for (SELECT_LEX_NODE *sl= current_select;
|
||||
sl != &select_lex;
|
||||
sl= sl->outer_select())
|
||||
SELECT_LEX_NODE *sl;
|
||||
SELECT_LEX_UNIT *un;
|
||||
for (sl= current_select, un= sl->master_unit();
|
||||
un != &unit;
|
||||
sl= sl->outer_select(), un= sl->master_unit())
|
||||
{
|
||||
sl->uncacheable = sl->master_unit()->uncacheable= 1;
|
||||
sl->uncacheable = un->uncacheable= 1;
|
||||
}
|
||||
}
|
||||
} LEX;
|
||||
|
Loading…
x
Reference in New Issue
Block a user