mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into olga.mysql.com:/home/igor/mysql-5.0-opt sql/item_subselect.cc: Auto merged mysql-test/r/subselect.result: Manual merge mysql-test/t/subselect.test: Manual merge sql/item_subselect.h: Manual merge
This commit is contained in:
commit
22192d083a
4 changed files with 44 additions and 3 deletions
|
|
@ -349,6 +349,7 @@ Item_singlerow_subselect::select_transformer(JOIN *join)
|
|||
*/
|
||||
!(select_lex->item_list.head()->type() == FIELD_ITEM ||
|
||||
select_lex->item_list.head()->type() == REF_ITEM) &&
|
||||
!join->conds && !join->having &&
|
||||
/*
|
||||
switch off this optimization for prepare statement,
|
||||
because we do not rollback this changes
|
||||
|
|
@ -373,8 +374,6 @@ Item_singlerow_subselect::select_transformer(JOIN *join)
|
|||
*/
|
||||
substitution->walk(&Item::remove_dependence_processor,
|
||||
(byte *) select_lex->outer_select());
|
||||
/* SELECT without FROM clause can't have WHERE or HAVING clause */
|
||||
DBUG_ASSERT(join->conds == 0 && join->having == 0);
|
||||
return RES_REDUCE;
|
||||
}
|
||||
return RES_OK;
|
||||
|
|
@ -2277,6 +2276,22 @@ bool subselect_single_select_engine::no_tables()
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
Check statically whether the subquery can return NULL
|
||||
|
||||
SINOPSYS
|
||||
subselect_single_select_engine::may_be_null()
|
||||
|
||||
RETURN
|
||||
FALSE can guarantee that the subquery never return NULL
|
||||
TRUE otherwise
|
||||
*/
|
||||
bool subselect_single_select_engine::may_be_null()
|
||||
{
|
||||
return ((no_tables() && !join->conds && !join->having) ? maybe_null : 1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Report about presence of tables in subquery
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue