Commit 01da03e0 authored by unknown's avatar unknown

Merge sanja.is.com.ua:/home/bell/mysql/mysql-4.1

into sanja.is.com.ua:/home/bell/mysql/work-subselect-4.1
parents e801f5ca 07c1f3db
select (select 2);
(select 2)
2
drop table if exists t1,t2,t3,t4;
drop table if exists t1,t2,t3,t4,attend,clinic;
create table t1 (a int);
create table t2 (a int, b int);
create table t3 (a int);
......@@ -82,4 +82,13 @@ select b,max(a) as ma from t4 group by b having b >= (select max(t2.a)
from t2 where t2.b=t4.b);
b ma
7 12
drop table t1,t2,t3,t4;
create table attend (patient_uq int, clinic_uq int, index i1 (clinic_uq));
create table clinic( uq int primary key, name char(25));
insert into clinic values(1,"Oblastnaia bolnitsa"),(2,"Bolnitsa Krasnogo Kresta");
insert into attend values (1,1),(1,2),(2,2),(1,3);
select * from attend where exists (select * from clinic where uq = clinic_uq);
patient_uq clinic_uq
1 1
1 2
2 2
drop table t1,t2,t3,t4,attend,clinic;
select (select 2);
drop table if exists t1,t2,t3,t4;
drop table if exists t1,t2,t3,t4,attend,clinic;
create table t1 (a int);
create table t2 (a int, b int);
create table t3 (a int);
......@@ -33,4 +33,11 @@ select b,max(a) as ma from t4 group by b having b < (select max(t2.a)
from t2 where t2.b=t4.b);
select b,max(a) as ma from t4 group by b having b >= (select max(t2.a)
from t2 where t2.b=t4.b);
drop table t1,t2,t3,t4;
create table attend (patient_uq int, clinic_uq int, index i1 (clinic_uq));
create table clinic( uq int primary key, name char(25));
insert into clinic values(1,"Oblastnaia bolnitsa"),(2,"Bolnitsa Krasnogo Kresta");
insert into attend values (1,1),(1,2),(2,2),(1,3);
select * from attend where exists (select * from clinic where uq = clinic_uq);
drop table t1,t2,t3,t4,attend,clinic;
......@@ -51,6 +51,12 @@ Item_subselect::Item_subselect(THD *thd, st_select_lex *select_lex,
if (unit->select_limit_cnt == HA_POS_ERROR)
select_lex->options&= ~OPTION_FOUND_ROWS;
join= new JOIN(thd, select_lex->item_list, select_lex->options, result);
if (!join || !result)
{
//out of memory
thd->fatal_error= 1;
my_printf_error(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
}
this->select_lex= select_lex;
assign_null();
/*
......@@ -172,7 +178,7 @@ String *Item_singleval_subselect::val_str (String *str)
Item_exists_subselect::Item_exists_subselect(THD *thd,
st_select_lex *select_lex):
Item_subselect(thd, select_lex, new select_singleval_subselect(this))
Item_subselect(thd, select_lex, new select_exists_subselect(this))
{
max_columns= UINT_MAX;
null_value= 0; //can't be NULL
......
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