MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
opt_explain_json_namespace::subquery_ctx Class Reference
Inheritance diagram for opt_explain_json_namespace::subquery_ctx:
Collaboration diagram for opt_explain_json_namespace::subquery_ctx:

Public Member Functions

 subquery_ctx (Explain_context_enum type_arg, const char *name_arg, context *parent_arg)
virtual qep_rowentry ()
virtual bool cacheable ()
virtual bool dependent ()
virtual bool format (Opt_trace_context *json)
virtual void set_child (context *child)
virtual size_t id (bool hide)
- Public Member Functions inherited from opt_explain_json_namespace::context
 context (Explain_context_enum type_arg, const char *name_arg, context *parent_arg)
bool is_query_block () const
virtual void set_union_result (union_result_ctx *ctx)
 associate CTX_UNION_RESULT node with CTX_UNION node
virtual bool add_subquery (subquery_list_enum subquery_type, subquery_ctx *ctx)
virtual bool format_nested_loop (Opt_trace_context *json)
virtual bool add_join_tab (joinable_ctx *ctx)
virtual void set_sort (sort_ctx *ctx)
virtual bool add_query_spec (context *ctx)
virtual bool find_and_set_derived (context *subquery)
virtual bool add_where_subquery (subquery_ctx *ctx, SELECT_LEX_UNIT *subquery)
virtual bool format_derived (Opt_trace_context *json)
 Helper function to format output for derived subquery if any.
virtual bool format_where (Opt_trace_context *json)
 Helper function to format output for associated WHERE subqueries if any.
virtual bool format_unit (Opt_trace_context *json)
 Helper function to format output for HAVING, ORDER/GROUP BY subqueries.
- Public Member Functions inherited from Explain_context
 Explain_context (Explain_context_enum type_arg)
- Public Member Functions inherited from qep_row
void cleanup ()
virtual void register_where_subquery (SELECT_LEX_UNIT *subquery)

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)
- Public Attributes inherited from opt_explain_json_namespace::context
contextparent
 link to parent node or NULL
- Public Attributes inherited from qep_row
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
- Protected Attributes inherited from opt_explain_json_namespace::context
const char * name

Detailed Description

Node class to wrap a subquery node tree

Implements CTX_WHERE, CTX_HAVING, CTX_ORDER_BY_SQ, CTX_GROUP_BY_SQ and CTX_OPTIMIZED_AWAY_SUBQUERY context nodes. This class hosts underlying join_ctx or uion_ctx.

Definition at line 319 of file opt_explain_json.cc.

Member Function Documentation

virtual bool opt_explain_json_namespace::subquery_ctx::format ( Opt_trace_context json)
inlinevirtual

Pass the node with its child nodes to a JSON formatter

Parameters
jsonFormatter
Return values
falseOk
trueError
Note
The join_ctx class overloads this function.

Reimplemented from opt_explain_json_namespace::context.

Definition at line 352 of file opt_explain_json.cc.

virtual size_t opt_explain_json_namespace::subquery_ctx::id ( bool  hide)
inlinevirtual

Analogue of the "id" column in the traditional EXPLAIN output

Parameters
hideif true, ban the output of K_SELECT_ID JSON property in the underlying table_with_where_and_derived_ctx objects
Returns
"Select number" that is associated with this node

Implements opt_explain_json_namespace::context.

Definition at line 437 of file opt_explain_json.cc.

Here is the call graph for this function:

virtual void opt_explain_json_namespace::subquery_ctx::set_child ( context child)
inlinevirtual

Associate a child node with this node

This function is to be overloaded by subquery_ctx.

Reimplemented from opt_explain_json_namespace::context.

Definition at line 430 of file opt_explain_json.cc.


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