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

Public Member Functions

 join_ctx (Explain_context_enum type_arg, const char *name_arg, context *parent_arg)
virtual bool add_join_tab (joinable_ctx *ctx)
virtual void set_sort (sort_ctx *ctx)
virtual bool find_and_set_derived (context *subquery)
virtual bool add_subquery (subquery_list_enum subquery_type, subquery_ctx *ctx)
virtual bool format_nested_loop (Opt_trace_context *json)
virtual size_t id (bool hide)
virtual bool cacheable ()
virtual bool dependent ()
virtual bool add_where_subquery (subquery_ctx *ctx, SELECT_LEX_UNIT *subquery)
- Public Member Functions inherited from opt_explain_json_namespace::unit_ctx
 unit_ctx (Explain_context_enum type_arg, const char *name_arg, context *parent_arg)
bool has_no_subqueries () const
virtual bool format_unit (Opt_trace_context *json)
 Helper function to format output for HAVING, ORDER/GROUP BY subqueries.
- Public Member Functions inherited from opt_explain_json_namespace::context
 context (Explain_context_enum type_arg, const char *name_arg, context *parent_arg)
virtual bool format (Opt_trace_context *json)
bool is_query_block () const
virtual class qep_rowentry ()
virtual void set_child (context *child)
virtual void set_union_result (union_result_ctx *ctx)
 associate CTX_UNION_RESULT node with CTX_UNION node
virtual bool add_query_spec (context *ctx)
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.
- Public Member Functions inherited from Explain_context
 Explain_context (Explain_context_enum type_arg)

Protected Member Functions

virtual bool format_body (Opt_trace_context *json, Opt_trace_object *obj)

Protected Attributes

List< joinable_ctxjoin_tabs
 hosted JOIN_TAB nodes
sort_ctxsort

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

Detailed Description

Node class for the CTX_JOIN context

Definition at line 1022 of file opt_explain_json.cc.

Member Function Documentation

virtual bool opt_explain_json_namespace::join_ctx::add_join_tab ( joinable_ctx ctx)
inlinevirtual

Add a CTX_JOIN_TAB node to a CTX_JOIN node

Parameters
ctxCTX_JOIN_TAB node
Return values
falseOk
trueError

Reimplemented from opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1036 of file opt_explain_json.cc.

bool opt_explain_json_namespace::join_ctx::add_subquery ( subquery_list_enum  subquery_type,
subquery_ctx ctx 
)
virtual

Append a subquery node to the specified list of the unit node

Parameters
subquery_typeDescribes the Item tree where the subquery exists
ctxSubquery node
Return values
falseOk
trueError

Reimplemented from opt_explain_json_namespace::unit_ctx.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, opt_explain_json_namespace::materialize_ctx, and opt_explain_json_namespace::sort_with_subqueries_ctx.

Definition at line 1189 of file opt_explain_json.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

bool opt_explain_json_namespace::join_ctx::add_where_subquery ( subquery_ctx ctx,
SELECT_LEX_UNIT *  subquery 
)
virtual

Associate WHERE subqueries of given context and unit with this object

Parameters
ctxContext of WHERE subquery
subqueryFor CTX_JOIN_TAB: match given unit with a previously collected by the register_where_subquery function.

Reimplemented from opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1305 of file opt_explain_json.cc.

Here is the call graph for this function:

bool opt_explain_json_namespace::join_ctx::find_and_set_derived ( context subquery)
virtual

Associate a CTX_DERIVED node with its CTX_JOIN_TAB node

Parameters
subqueryderived subquery tree

Reimplemented from opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1171 of file opt_explain_json.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

bool opt_explain_json_namespace::join_ctx::format_body ( Opt_trace_context json,
Opt_trace_object obj 
)
protectedvirtual

Format JSON object body

Parameters
jsonFormatter
objObject of this body
Return values
falseOk
trueError

Implements opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::sort_ctx.

Definition at line 1226 of file opt_explain_json.cc.

Here is the call graph for this function:

bool opt_explain_json_namespace::join_ctx::format_nested_loop ( Opt_trace_context json)
virtual

Format nested loop join subtree (if any) to JSON formatter

Parameters
jsonFormatter
Return values
falseOk
trueError

Reimplemented from opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1237 of file opt_explain_json.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

size_t opt_explain_json_namespace::join_ctx::id ( bool  hide)
virtual

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.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1287 of file opt_explain_json.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void opt_explain_json_namespace::join_ctx::set_sort ( sort_ctx ctx)
inlinevirtual

Set nested ORDER BY/GROUP BY/DISTINCT node to ctx

Parameters
jsonFormatter
Return values
falseOk
trueError

Reimplemented from opt_explain_json_namespace::context.

Reimplemented in opt_explain_json_namespace::duplication_weedout_ctx, and opt_explain_json_namespace::materialize_ctx.

Definition at line 1041 of file opt_explain_json.cc.


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