|
My Project
|
#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 |
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.
| void subselect_hash_sj_engine::cleanup | ( | ) | [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.
| bool subselect_hash_sj_engine::exec | ( | ) | [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.
| void subselect_hash_sj_engine::print | ( | String * | str, |
| enum_query_type | query_type | ||
| ) | [virtual] |
Print the state of this engine into a string for debugging and views.
Reimplemented from subselect_indexsubquery_engine.
| bool subselect_hash_sj_engine::setup | ( | List< Item > * | tmp_columns | ) |
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 |
1.7.6.1