|
enum | enum_engine_type {
ABSTRACT_ENGINE,
SINGLE_SELECT_ENGINE,
UNION_ENGINE,
UNIQUESUBQUERY_ENGINE,
INDEXSUBQUERY_ENGINE,
HASH_SJ_ENGINE
} |
|
|
| subselect_single_select_engine (Select_Lex *select, select_result_interceptor *result, Item_subselect *item) |
|
void | cleanup () |
|
int | prepare () |
|
void | fix_length_and_dec (Item_cache **row) |
|
int | exec () |
|
uint32_t | cols () |
|
bool | uncacheable () |
|
bool | uncacheable (uint32_t bit_pos) |
|
void | exclude () |
|
table_map | upper_select_const_tables () |
|
virtual void | print (String *str) |
|
bool | change_result (Item_subselect *si, select_result_interceptor *result) |
|
bool | no_tables () |
|
bool | may_be_null () |
|
bool | is_executed () const |
|
bool | no_rows () |
|
virtual enum_engine_type | engine_type () |
|
void | save_join_if_explain () |
|
void | set_session (Session *session_arg) |
|
Session * | get_session () |
|
enum Item_result | type () |
|
enum_field_types | field_type () |
|
|
static table_map | calc_const_tables (TableList *) |
|
static void * | operator new (size_t size) |
|
static void * | operator new (size_t size, Root &root) |
|
static void * | operator new (size_t size, Root *root) |
|
static void * | operator new[] (size_t size) |
|
static void * | operator new[] (size_t size, Root &root) |
|
static void * | operator new[] (size_t size, Root *root) |
|
static void | operator delete (void *) |
|
static void | operator delete (void *, Root &) |
|
static void | operator delete (void *, Root *) |
|
static void | operator delete[] (void *) |
|
static void | operator delete[] (void *, Root &) |
|
static void | operator delete[] (void *, Root *) |
|
|
bool | prepared |
|
bool | optimized |
|
bool | executed |
|
Select_Lex * | select_lex |
|
Join * | join |
|
|
class | subselect_hash_sj_engine |
|
class | Item_in_subselect |
|
Definition at line 466 of file subselect.h.
bool drizzled::subselect_single_select_engine::no_tables |
( |
) | |
|
|
virtual |
Report about presence of tables in subquery.
- Return values
-
true | there are not tables used in subquery |
false | there are some tables in subquery |
Implements drizzled::subselect_engine.
Definition at line 2876 of file subselect.cc.
int drizzled::subselect_single_select_engine::prepare |
( |
) | |
|
|
virtual |
Create and prepare the JOIN object that represents the query execution plan for the subquery.
This method is called from Item_subselect::fix_fields. For prepared statements it is called both during the PREPARE and EXECUTE phases in the following ways:
- During PREPARE the optimizer needs some properties (join->fields_list.elements) of the JOIN to proceed with preparation of the remaining query (namely to complete ::fix_fields for the subselect related classes. In the end of PREPARE the JOIN is deleted.
- When we EXECUTE the query, Item_subselect::fix_fields is called again, and the JOIN object is re-created again, prepared and executed. In the end of execution it is deleted. In all cases the JOIN is created in runtime memory (not in the permanent memory root).
- Todo:
- Re-check what properties of 'join' are needed during prepare, and see if we can avoid creating a JOIN during JOIN::prepare of the outer join.
- Return values
-
Implements drizzled::subselect_engine.
Definition at line 1987 of file subselect.cc.
References drizzled::Session::options.
Referenced by drizzled::subselect_hash_sj_engine::init_runtime().
The documentation for this class was generated from the following files: