https://dev.mysql.com/doc/internals/en/algorithms.html
https://dev.mysql.com/doc/internals/en/select-structure.html
/**
MySQL standard memory allocator class. You have to inherit the class
in order to use it.
*/
class Sql_alloc
/// Owner of a QEP_shared; parent of JOIN_TAB and QEP_TAB.
class QEP_shared_owner
/**
Query optimization plan node.
Specifies:
-
a table access operation on the table specified by this node, and
-
a join between the result of the set of previous plan nodes and
this plan node.
*/
class JOIN_TAB : public Sql_alloc, public QEP_shared_owner
/**
Base class for parse tree nodes
*/
class Parse_tree_node
class Item : public Parse_tree_node
class QEP_TAB : public Sql_alloc, public QEP_shared_owner
/**
@class THD
For each client connection we create a separate thread with THD serving as
a thread/connection descriptor
*/
class THD :public MDL_context_owner,
public Query_arena,
public Open_tables_state
/**
Class that holds information about tables which were opened and locked
by the thread. It is also used to save/restore this information in
push_open_tables_state()/pop_open_tables_state().
*/
class Open_tables_state