My Project
|
#include <opt_explain_format.h>
Classes | |
struct | column |
struct | extra |
struct | mem_root_str |
Public Member Functions | |
void | cleanup () |
virtual void | register_where_subquery (SELECT_LEX_UNIT *subquery) |
Public Attributes | |
column< uint > | col_id |
"id" column: seq. number of SELECT withing the query | |
column< SELECT_LEX::type_enum > | col_select_type |
"select_type" column | |
mem_root_str | col_table_name |
"table" to which the row of output refers | |
List< const char > | col_partitions |
"partitions" column | |
mem_root_str | col_join_type |
"type" column, see join_type_str array | |
List< const char > | col_possible_keys |
"possible_keys": comma-separated list | |
mem_root_str | col_key |
"key" column: index that is actually decided to use | |
mem_root_str | col_key_len |
"key_length" column: length of the "key" above | |
List< const char > | col_ref |
"ref":columns/constants which are compared to "key" | |
column< longlong > | col_rows |
"rows": estimated number of examined table rows | |
column< float > | col_filtered |
"filtered": % of rows filtered by condition | |
List< extra > | col_extra |
"extra" column (traditional) or property list | |
mem_root_str | col_message |
replaces "Extra" column if not empty | |
mem_root_str | col_attached_condition |
former "Using where" | |
uint | query_block_id |
query block id for materialized subqueries | |
List < opt_explain_json_namespace::context > | derived_from |
List< const char > | col_key_parts |
used parts of the key | |
bool | is_dependent |
bool | is_cacheable |
bool | using_temporary |
bool | is_materialized_from_subquery |
bool | is_update |
bool | is_delete |
Helper class for table property buffering
For traditional EXPLAIN this structure contains cached data for a single output row.
For hierarchical EXPLAIN this structure contains property values for a single CTX_TABLE/CTX_JOIN_TAB context node of the intermediate tree.
virtual void qep_row::register_where_subquery | ( | SELECT_LEX_UNIT * | subquery | ) | [inline, virtual] |
Remember a subquery's unit
JOIN_TAB inside a JOIN, a table in a join-less query (single-table UPDATE/DELETE) or a table that's optimized out may have a WHERE condition. We create the Explain_context of such a JOIN_TAB or table when the Explain_context objects of its in-WHERE subqueries don't exist. This function collects unit pointers of WHERE subqueries that are associated with the current JOIN_TAB or table. Then we can match these units with units of newly-created Explain_context objects of WHERE subqueries.
subquery | WHERE clause subquery's unit |
Reimplemented in opt_explain_json_namespace::join_tab_ctx.
List of "derived" subquery trees