Commit e63c83bd authored by unknown's avatar unknown

Merge mysql.com:/dbdata/psergey/mysql-4.1-bug7885

into mysql.com:/dbdata/psergey/mysql-5.0-bug7885


mysql-test/r/subselect.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
sql/item_subselect.cc:
  Auto merged
parents 34234663 9a8db185
...@@ -2160,3 +2160,11 @@ WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000); ...@@ -2160,3 +2160,11 @@ WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000);
f1 f1
NULL NULL
1 1
drop table t1,t2;
create table t1 (a1 int);
create table t2 (b1 int);
select * from t1 where a2 > any(select b1 from t2);
ERROR 42S22: Unknown column 'a2' in 'scalar IN/ALL/ANY subquery'
select * from t1 where a1 > any(select b1 from t2);
a1
drop table t1,t2;
...@@ -1417,3 +1417,14 @@ SELECT f1 FROM t1 ...@@ -1417,3 +1417,14 @@ SELECT f1 FROM t1
SELECT f1 FROM t1 SELECT f1 FROM t1
WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000); WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000);
drop table t1,t2;
# Test for BUG#7885: Server crash when 'any' subselect compared to
# non-existant field.
create table t1 (a1 int);
create table t2 (b1 int);
--error 1054
select * from t1 where a2 > any(select b1 from t2);
select * from t1 where a1 > any(select b1 from t2);
drop table t1,t2;
...@@ -177,6 +177,8 @@ bool Item_subselect::fix_fields(THD *thd_param, TABLE_LIST *tables, Item **ref) ...@@ -177,6 +177,8 @@ bool Item_subselect::fix_fields(THD *thd_param, TABLE_LIST *tables, Item **ref)
} }
fix_length_and_dec(); fix_length_and_dec();
} }
else
return 1;
uint8 uncacheable= engine->uncacheable(); uint8 uncacheable= engine->uncacheable();
if (uncacheable) if (uncacheable)
{ {
...@@ -264,7 +266,6 @@ Item_singlerow_subselect::Item_singlerow_subselect(st_select_lex *select_lex) ...@@ -264,7 +266,6 @@ Item_singlerow_subselect::Item_singlerow_subselect(st_select_lex *select_lex)
{ {
DBUG_ENTER("Item_singlerow_subselect::Item_singlerow_subselect"); DBUG_ENTER("Item_singlerow_subselect::Item_singlerow_subselect");
init(select_lex, new select_singlerow_subselect(this)); init(select_lex, new select_singlerow_subselect(this));
max_columns= 1;
maybe_null= 1; maybe_null= 1;
max_columns= UINT_MAX; max_columns= UINT_MAX;
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
......
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