| My Project
   
    | 
 
  
 | Public Types | |
| enum | enum_exec_method { EXEC_UNSPECIFIED, EXEC_SEMI_JOIN, EXEC_EXISTS, EXEC_EXISTS_OR_MAT, EXEC_MATERIALIZATION } | 
| Public Member Functions | |
| Item_exists_subselect (st_select_lex *select_lex) | |
| virtual trans_res | select_transformer (JOIN *join) | 
| subs_type | substype () | 
| virtual void | reset () | 
| enum Item_result | result_type () const | 
| longlong | val_int () | 
| double | val_real () | 
| String * | val_str (String *) | 
| my_decimal * | val_decimal (my_decimal *) | 
| bool | val_bool () | 
| bool | get_date (MYSQL_TIME *ltime, uint fuzzydate) | 
| bool | get_time (MYSQL_TIME *ltime) | 
| void | fix_length_and_dec () | 
| virtual void | print (String *str, enum_query_type query_type) | 
| Public Attributes | |
| enum_exec_method | exec_method | 
| int | sj_convert_priority | 
| Priority of this predicate in the convert-to-semi-join-nest process. | |
| bool | sj_chosen | 
| True if this predicate is chosen for semi-join transformation. | |
| TABLE_LIST * | embedding_join_nest | 
| Protected Attributes | |
| bool | value | 
| Friends | |
| class | select_exists_subselect | 
| class | subselect_indexsubquery_engine | 
The method chosen to execute the predicate, currently used for IN, =ANY and EXISTS predicates.
| EXEC_UNSPECIFIED | No execution method specified yet. | 
| EXEC_SEMI_JOIN | Predicate is converted to semi-join nest. | 
| EXEC_EXISTS | IN was converted to correlated EXISTS, and this is a final decision. | 
| EXEC_EXISTS_OR_MAT | Decision between EXEC_EXISTS and EXEC_MATERIALIZATION is not yet taken. IN was temporarily converted to correlated EXISTS. All descendants of Item_in_subselect must go through this method before they can reach EXEC_EXISTS. | 
| EXEC_MATERIALIZATION | Predicate executed via materialization, and this is a final decision. | 
| void Item_exists_subselect::print | ( | String * | str, | 
| enum_query_type | query_type | ||
| ) |  [virtual] | 
This method is used for to:
For more information about view definition query, INFORMATION_SCHEMA query and why they should be generated from the Item-tree,
Reimplemented from Item_subselect.
Reimplemented in Item_allany_subselect, and Item_in_subselect.
| bool Item_exists_subselect::val_bool | ( | ) |  [virtual] | 
Reimplemented from Item.
Reimplemented in Item_in_subselect.
| my_decimal * Item_exists_subselect::val_decimal | ( | my_decimal * | decimal_value | ) |  [virtual] | 
Return the result of EXISTS as a decimal value
Converts the true/false result into a decimal value. Note that currently this cannot be NULL, so if the query exection fails it will return 0.
| decimal_value[out] | Buffer to hold the resulting decimal value | 
| Pointer | to the converted decimal. Can't be a NULL pointer, as currently EXISTS cannot return NULL. | 
Implements Item.
Reimplemented in Item_in_subselect.
| String * Item_exists_subselect::val_str | ( | String * | str | ) |  [virtual] | 
Return the result of EXISTS as a string value
Converts the true/false result into a string value. Note that currently this cannot be NULL, so if the query exection fails it will return 0.
| decimal_value[out] | buffer to hold the resulting string value | 
| Pointer | to the converted string. Can't be a NULL pointer, as currently EXISTS cannot return NULL. | 
Implements Item.
Reimplemented in Item_in_subselect.
Used by subquery optimizations to keep track about where this subquery predicate is located, and whether it is a candidate for transformation. (TABLE_LIST*) 1 - the predicate is an AND-part of the WHERE join nest pointer - the predicate is an AND-part of ON expression of a join nest NULL - for all other locations. It also means that the predicate is not a candidate for transformation. See also THD::emb_on_expr_nest.
 1.7.6.1
 1.7.6.1