![]() |
MySQL 8.0.43
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 |