MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
qep_row Class Reference

#include <opt_explain_format.h>

Inheritance diagram for qep_row:
Collaboration diagram for qep_row:

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

Additional Inherited Members

- Static Public Member Functions inherited from Sql_alloc
static void * operator new (size_t size) throw ()
static void * operator new[] (size_t size) throw ()
static void * operator new[] (size_t size, MEM_ROOT *mem_root) throw ()
static void * operator new (size_t size, MEM_ROOT *mem_root) throw ()
static void operator delete (void *ptr, size_t size)
static void operator delete (void *ptr, MEM_ROOT *mem_root)
static void operator delete[] (void *ptr, MEM_ROOT *mem_root)
static void operator delete[] (void *ptr, size_t size)

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.

Definition at line 155 of file opt_explain_format.h.

Member Function Documentation

virtual void qep_row::register_where_subquery ( SELECT_LEX_UNIT *  subquery)
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.

Parameters
subqueryWHERE clause subquery's unit

Reimplemented in opt_explain_json_namespace::join_tab_ctx.

Definition at line 417 of file opt_explain_format.h.

Here is the caller graph for this function:

Member Data Documentation

List<opt_explain_json_namespace::context> qep_row::derived_from

List of "derived" subquery trees

Definition at line 348 of file opt_explain_format.h.


The documentation for this class was generated from the following file: