|
My Project
|
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_row * | entry () |
| 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) |
Node class for the CTX_JOIN_TAB context
| 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
| ctx | Context of WHERE subquery |
| subquery | For 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
| subquery | Derived subquery node |
| true | Success |
| false | Can'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
| json | Formatter |
| obj | Object of this body |
| false | Ok |
| true | Error |
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
| hide | if true, ban the output of K_SELECT_ID JSON property in the underlying table_with_where_and_derived_ctx objects |
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.
| subquery | WHERE clause subquery's unit |
Reimplemented from qep_row.
1.7.6.1