| 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
 1.7.6.1