mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge sanja.is.com.ua:/home/bell/mysql/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/work-subselect-4.1
This commit is contained in:
commit
c0190125f7
3 changed files with 27 additions and 5 deletions
|
@ -1,7 +1,7 @@
|
|||
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;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue