![]() |
MySQL 8.4.7
Source Code Documentation
|
Base class for structured and hierarchical EXPLAIN output formatters. More...
#include <opt_explain_format.h>
Public Member Functions | |
| virtual | ~Explain_format ()=default |
| virtual bool | is_hierarchical () const =0 |
| A hierarchical text or a plain table. More... | |
| virtual bool | is_iterator_based () const |
| Whether the format closely resembles the final plan to be executed by execution iterators (See RowIterator). More... | |
| bool | is_explain_into () const |
| Whether the output of an EXPLAIN statement should be stored in a user variable or sent to the client. More... | |
| bool | is_explain_for_schema () const |
| Whether the EXPLAIN statement should be run in another schema than the current active schema. More... | |
| std::string_view | explain_into_variable_name () const |
| Returns the name of the user variable the output of this EXPLAIN statement is to be stored in. More... | |
| virtual bool | send_headers (Query_result *result) |
| Send EXPLAIN header item(s) to output stream. More... | |
| virtual bool | begin_context (enum_parsing_context context, Query_expression *subquery=nullptr, const Explain_format_flags *flags=nullptr)=0 |
| Enter a specified context. More... | |
| virtual bool | end_context (enum_parsing_context context)=0 |
| Leave the current context. More... | |
| virtual bool | flush_entry ()=0 |
| Flush TABLE/JOIN_TAB property set. More... | |
| virtual qep_row * | entry ()=0 |
| Get a pointer to the current TABLE/JOIN_TAB property set. More... | |
| virtual std::string | ExplainJsonToString (Json_object *json) |
| Convert Json object to string. More... | |
Public Attributes | |
| LEX_CSTRING | m_schema_name_for_explain |
Protected Member Functions | |
| Explain_format () | |
| Explain_format (std::optional< std::string_view > explain_into_variable_name) | |
Protected Attributes | |
| Query_result * | output |
| output resulting data there More... | |
Private Member Functions | |
| Explain_format (Explain_format &) | |
| Explain_format & | operator= (Explain_format &) |
Private Attributes | |
| std::optional< std::string_view > | m_explain_into_variable_name |
Base class for structured and hierarchical EXPLAIN output formatters.
|
private |
|
inlineprotected |
|
inlineexplicitprotected |
|
virtualdefault |
|
pure virtual |
Enter a specified context.
| context | context type |
| subquery | for CTX_WHERE: unit of the subquery |
| flags | Format flags, see Explain_format_flags. |
Implemented in Explain_format_JSON, Explain_format_traditional, and Explain_format_tree.
|
pure virtual |
Leave the current context.
| context | current context type (for validation/debugging) |
Implemented in Explain_format_JSON, Explain_format_traditional, and Explain_format_tree.
|
pure virtual |
Get a pointer to the current TABLE/JOIN_TAB property set.
Implemented in Explain_format_JSON, Explain_format_traditional, and Explain_format_tree.
|
inline |
Returns the name of the user variable the output of this EXPLAIN statement is to be stored in.
Should only be called if this is an EXPLAIN INTO statement.
|
inlinevirtual |
Convert Json object to string.
Should only be called for iterator-based formats.
Reimplemented in Explain_format_JSON, and Explain_format_tree.
|
pure virtual |
Flush TABLE/JOIN_TAB property set.
For traditional EXPLAIN: output a single EXPLAIN row.
Implemented in Explain_format_JSON, Explain_format_traditional, and Explain_format_tree.
|
inline |
Whether the EXPLAIN statement should be run in another schema than the current active schema.
If this returns true, m_schema_name_for_explain contains the name of the schema to use for EXPLAIN.
|
inline |
Whether the output of an EXPLAIN statement should be stored in a user variable or sent to the client.
If this function returns true, explain_into_variable_name() returns the name of the variable.
| true | EXPLAIN output should be stored in a user variable. |
| false | EXPLAIN output should be sent to the client. |
|
pure virtual |
A hierarchical text or a plain table.
| true | Formatter produces hierarchical text |
| false | Traditional explain |
Implemented in Explain_format_JSON, Explain_format_traditional, and Explain_format_tree.
|
inlinevirtual |
Whether the format closely resembles the final plan to be executed by execution iterators (See RowIterator).
These formats share a common logic that uses AccessPath structure to generate the information, so they all display exactly the same information, even though the style of each format might be different.
| true | Format is Iterator-based. |
| false | Format is not Iterator-based. |
Reimplemented in Explain_format_JSON, and Explain_format_tree.
|
private |
|
inlinevirtual |
Send EXPLAIN header item(s) to output stream.
| result | output result set |
| false | OK |
| true | Error |
Reimplemented in Explain_format_tree, Explain_format_JSON, and Explain_format_traditional.
|
private |
| LEX_CSTRING Explain_format::m_schema_name_for_explain |
|
protected |
output resulting data there