My Project
Classes | Public Member Functions | Public Attributes
qep_row Class Reference

#include <opt_explain_format.h>

Inheritance diagram for qep_row:
Sql_alloc opt_explain_json_namespace::subquery_ctx opt_explain_json_namespace::table_base_ctx opt_explain_json_namespace::materialize_ctx opt_explain_json_namespace::table_with_where_and_derived opt_explain_json_namespace::union_result_ctx opt_explain_json_namespace::join_tab_ctx opt_explain_json_namespace::message_ctx

List of all members.

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< extracol_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

Detailed Description

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.


Member Function Documentation

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.

Parameters:
subqueryWHERE clause subquery's unit

Reimplemented in opt_explain_json_namespace::join_tab_ctx.


Member Data Documentation

List of "derived" subquery trees


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines