My Project
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
opt_explain_json_namespace::join_tab_ctx Class Reference
Inheritance diagram for opt_explain_json_namespace::join_tab_ctx:
opt_explain_json_namespace::joinable_ctx opt_explain_json_namespace::table_with_where_and_derived opt_explain_json_namespace::context opt_explain_json_namespace::table_base_ctx Explain_context opt_explain_json_namespace::context qep_row Sql_alloc Explain_context Sql_alloc Sql_alloc

List of all members.

Public Member Functions

 join_tab_ctx (Explain_context_enum type_arg, context *parent_arg)
virtual bool format_body (Opt_trace_context *json, Opt_trace_object *obj)
virtual size_t id (bool hide)
virtual bool cacheable ()
virtual bool dependent ()
virtual qep_rowentry ()
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 void register_where_subquery (SELECT_LEX_UNIT *subquery)
virtual bool add_where_subquery (subquery_ctx *ctx, SELECT_LEX_UNIT *subquery)
virtual bool find_and_set_derived (context *subquery)

Detailed Description

Node class for the CTX_JOIN_TAB context


Member Function Documentation

virtual bool opt_explain_json_namespace::join_tab_ctx::add_where_subquery ( subquery_ctx ctx,
SELECT_LEX_UNIT *  subquery 
) [inline, 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.

virtual bool opt_explain_json_namespace::join_tab_ctx::find_and_set_derived ( context subquery) [inline, virtual]

Try to associate a derived subquery node with this or underlying node

Parameters:
subqueryDerived subquery node
Return values:
trueSuccess
falseCan't associate: this node or its child nodes are not derived from the subquery

Reimplemented from opt_explain_json_namespace::context.

virtual bool opt_explain_json_namespace::join_tab_ctx::format_body ( Opt_trace_context json,
Opt_trace_object obj 
) [inline, virtual]

Format JSON object body

Parameters:
jsonFormatter
objObject of this body
Return values:
falseOk
trueError

Implements opt_explain_json_namespace::context.

virtual size_t opt_explain_json_namespace::join_tab_ctx::id ( bool  hide) [inline, 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

Reimplemented from opt_explain_json_namespace::table_with_where_and_derived.

virtual void opt_explain_json_namespace::join_tab_ctx::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 from qep_row.


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