MySQL 8.0.39
Source Code Documentation
|
Helper class for table property buffering. More...
#include <opt_explain_format.h>
Classes | |
struct | column |
A wrapper for numeric table properties. More... | |
struct | extra |
Part of traditional "extra" column or related hierarchical property. More... | |
struct | mem_root_str |
Helper class to keep string data in MEM_ROOT before passing to Item_string. More... | |
Public Member Functions | |
qep_row () | |
virtual | ~qep_row ()=default |
void | cleanup () |
virtual void | register_where_subquery (Query_expression *subquery) |
Remember a subquery's unit. More... | |
void | format_extra (Opt_trace_object *obj) |
Public Attributes | |
column< uint > | col_id |
"id" column: seq. number of SELECT within the query More... | |
column< enum_explain_type > | col_select_type |
"select_type" column More... | |
mem_root_str | col_table_name |
"table" to which the row of output refers More... | |
List< const char > | col_partitions |
"partitions" column More... | |
mem_root_str | col_join_type |
"type" column, see join_type_str array More... | |
List< const char > | col_possible_keys |
"possible_keys": comma-separated list More... | |
mem_root_str | col_key |
"key" column: index that is actually decided to use More... | |
mem_root_str | col_key_len |
"key_length" column: length of the "key" above More... | |
List< const char > | col_ref |
"ref":columns/constants which are compared to "key" More... | |
column< float > | col_filtered |
"filtered": % of rows filtered by condition More... | |
List< extra > | col_extra |
"extra" column (traditional) or property list More... | |
mem_root_str | col_message |
replaces "Extra" column if not empty More... | |
mem_root_str | col_attached_condition |
former "Using where" More... | |
column< ulonglong > | col_rows |
"rows": estimated number of examined table rows per single scan More... | |
column< ulonglong > | col_prefix_rows |
"rows": estimated number of examined table rows per query More... | |
column< double > | col_read_cost |
Time to read the table. More... | |
column< double > | col_prefix_cost |
Cost of the partial join including this table. More... | |
column< double > | col_cond_cost |
Cost of evaluating conditions on this table per query. More... | |
mem_root_str | col_data_size_query |
Size of data expected to be read per query. More... | |
List< const char > | col_used_columns |
List of used columns. More... | |
List< const char > | col_partial_update_columns |
List of columns that can be updated using partial update. More... | |
uint | query_block_id |
query block id for materialized subqueries More... | |
List< opt_explain_json_namespace::context > | derived_from |
List of "derived" subquery trees. More... | |
List< const char > | col_key_parts |
used parts of the key More... | |
bool | is_dependent |
bool | is_cacheable |
bool | using_temporary |
enum_mod_type | mod_type |
bool | is_materialized_from_subquery |
uint | derived_clone_id |
If a clone of a materialized derived table, this is the ID of the first underlying query block of the first materialized derived table. More... | |
List< Window > * | m_windows |
Windows to describe in this node. More... | |
Private Member Functions | |
qep_row (const qep_row &x) | |
qep_row & | operator= (const qep_row &x) |
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_QEP_TAB context node of the intermediate tree.
|
explicitprivate |
|
inline |
|
virtualdefault |
|
inline |
void qep_row::format_extra | ( | Opt_trace_object * | obj | ) |
|
inlinevirtual |
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.
mem_root_str qep_row::col_attached_condition |
former "Using where"
column<double> qep_row::col_cond_cost |
Cost of evaluating conditions on this table per query.
mem_root_str qep_row::col_data_size_query |
Size of data expected to be read per query.
column<float> qep_row::col_filtered |
"filtered": % of rows filtered by condition
mem_root_str qep_row::col_join_type |
"type" column, see join_type_str array
mem_root_str qep_row::col_key |
"key" column: index that is actually decided to use
mem_root_str qep_row::col_key_len |
"key_length" column: length of the "key" above
List<const char> qep_row::col_key_parts |
used parts of the key
mem_root_str qep_row::col_message |
replaces "Extra" column if not empty
List<const char> qep_row::col_partial_update_columns |
List of columns that can be updated using partial update.
List<const char> qep_row::col_partitions |
"partitions" column
List<const char> qep_row::col_possible_keys |
"possible_keys": comma-separated list
column<double> qep_row::col_prefix_cost |
Cost of the partial join including this table.
"rows": estimated number of examined table rows per query
column<double> qep_row::col_read_cost |
Time to read the table.
List<const char> qep_row::col_ref |
"ref":columns/constants which are compared to "key"
column<enum_explain_type> qep_row::col_select_type |
"select_type" column
mem_root_str qep_row::col_table_name |
"table" to which the row of output refers
List<const char> qep_row::col_used_columns |
List of used columns.
uint qep_row::derived_clone_id |
If a clone of a materialized derived table, this is the ID of the first underlying query block of the first materialized derived table.
0 otherwise.
List<opt_explain_json_namespace::context> qep_row::derived_from |
List of "derived" subquery trees.
bool qep_row::is_cacheable |
bool qep_row::is_dependent |
bool qep_row::is_materialized_from_subquery |
enum_mod_type qep_row::mod_type |
uint qep_row::query_block_id |
query block id for materialized subqueries
bool qep_row::using_temporary |