MySQL 5.6.14 Source Code Document
|
#include <item_subselect.h>
Public Member Functions | |
subselect_hash_sj_engine (THD *thd, Item_subselect *in_predicate, subselect_single_select_engine *old_engine) | |
bool | setup (List< Item > *tmp_columns) |
virtual void | cleanup () |
virtual bool | prepare () |
virtual bool | exec () |
virtual void | print (String *str, enum_query_type query_type) |
virtual uint | cols () const |
virtual enum_engine_type | engine_type () const |
const st_join_table * | get_join_tab () const |
Item * | get_cond_for_explain () const |
Public Member Functions inherited from subselect_indexsubquery_engine | |
subselect_indexsubquery_engine (THD *thd_arg, st_join_table *tab_arg, Item_subselect *subs, Item *where, Item *having_arg, bool chk_null, bool unique_arg) | |
virtual void | fix_length_and_dec (Item_cache **row) |
virtual uint8 | uncacheable () const |
virtual void | exclude () |
virtual table_map | upper_select_const_tables () const |
virtual bool | change_result (Item_subselect *si, select_result_interceptor *result) |
virtual bool | no_tables () const |
bool | scan_table () |
void | copy_ref_key (bool *require_scan, bool *convert_error) |
Public Member Functions inherited from subselect_engine | |
subselect_engine (Item_subselect *si, select_result_interceptor *res) | |
void | set_thd_for_result () |
Sets "thd" for 'result'. Should be called before prepare() | |
virtual enum Item_result | type () const |
virtual enum_field_types | field_type () const |
virtual bool | may_be_null () const |
virtual bool | is_executed () const |
const Item_subselect * | get_item () const |
Additional Inherited Members | |
Public Types inherited from subselect_engine | |
enum | enum_engine_type { ABSTRACT_ENGINE, SINGLE_SELECT_ENGINE, UNION_ENGINE, UNIQUESUBQUERY_ENGINE, INDEXSUBQUERY_ENGINE, HASH_SJ_ENGINE } |
Static Public Member Functions inherited from subselect_engine | |
static table_map | calc_const_tables (TABLE_LIST *) |
Protected Member Functions inherited from subselect_engine | |
void | set_row (List< Item > &item_list, Item_cache **row) |
Protected Attributes inherited from subselect_indexsubquery_engine | |
st_join_table * | tab |
Item * | cond |
Compute an IN predicate via a hash semi-join. The subquery is materialized during the first evaluation of the IN predicate. The IN predicate is executed via the functionality inherited from subselect_indexsubquery_engine.
Definition at line 744 of file item_subselect.h.
|
virtual |
Cleanup performed after each PS execution.
Called in the end of JOIN::prepare for PS from Item_subselect::cleanup.
Reimplemented from subselect_indexsubquery_engine.
Definition at line 3700 of file item_subselect.cc.
|
virtual |
Execute a subquery IN predicate via materialization.
If needed materialize the subquery into a temporary table, then copmpute the predicate via a lookup into this table.
TRUE | if error |
FALSE | otherwise |
Reimplemented from subselect_indexsubquery_engine.
Definition at line 3727 of file item_subselect.cc.
|
virtual |
Print the state of this engine into a string for debugging and views.
Reimplemented from subselect_indexsubquery_engine.
Definition at line 3847 of file item_subselect.cc.
Create all structures needed for subquery execution using hash semijoin.
tmp_columns | columns of temporary table |
: Currently Item_subselect::init() already chooses and creates at parse time an engine with a corresponding JOIN to execute the subquery.
TRUE | if error |
FALSE | otherwise |
Definition at line 3492 of file item_subselect.cc.