MySQL 8.3.0
Source Code Documentation
anonymous_namespace{opt_explain.cc}::Explain_secondary_engine Class Referencefinal

This class outputs an empty plan for queries that use a secondary engine. More...

Inheritance diagram for anonymous_namespace{opt_explain.cc}::Explain_secondary_engine:
[legend]

Public Member Functions

 Explain_secondary_engine (THD *explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg)
 
- Public Member Functions inherited from anonymous_namespace{opt_explain.cc}::Explain
virtual ~Explain ()=default
 
bool send ()
 Explain class main function. More...
 
bool can_print_clauses () const
 Tells if it is allowed to print the WHERE / GROUP BY / etc clauses. More...
 

Protected Member Functions

bool explain_select_type () override
 
bool explain_extra () override
 
- Protected Member Functions inherited from anonymous_namespace{opt_explain.cc}::Explain
 Explain (enum_parsing_context context_type_arg, THD *explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg)
 
virtual bool shallow_explain ()
 Explain everything but subqueries. More...
 
bool explain_subqueries ()
 Explain the rest of things after the shallow_explain() call. More...
 
bool mark_subqueries (Item *item, qep_row *destination)
 Qualify subqueries with WHERE/HAVING/ORDER BY/GROUP BY clause type marker. More...
 
bool prepare_columns ()
 Pre-calculate table property values for further EXPLAIN output. More...
 
bool push_extra (Extra_tag tag)
 Push a part of the "extra" column into formatter. More...
 
bool push_extra (Extra_tag tag, const String &arg)
 Push a part of the "extra" column into formatter. More...
 
bool push_extra (Extra_tag tag, const char *arg)
 Push a part of the "extra" column into formatter. More...
 
virtual bool explain_id ()
 
virtual bool explain_table_name ()
 
virtual bool explain_partitions ()
 
virtual bool explain_join_type ()
 
virtual bool explain_possible_keys ()
 
virtual bool explain_key_and_len ()
 fill col_key and and col_key_len fields together More...
 
virtual bool explain_ref ()
 
virtual bool explain_rows_and_filtered ()
 fill col_rows and col_filtered fields together More...
 
virtual bool explain_modify_flags ()
 
virtual bool can_walk_clauses ()
 Returns true if the WHERE, ORDER BY, GROUP BY, etc clauses can safely be traversed: it means that we can iterate through them (no element is added/removed/replaced); the internal details of an element can change though (in particular if that element is an Item_subselect). More...
 
virtual enum_parsing_context get_subquery_context (Query_expression *unit) const
 

Private Member Functions

bool skip_subqueries () const override
 Returns true if EXPLAIN should not produce any information about subqueries. More...
 

Additional Inherited Members

- Protected Attributes inherited from anonymous_namespace{opt_explain.cc}::Explain
THD *const explain_thd
 cached THD which runs the EXPLAIN command More...
 
const THDquery_thd
 THD which runs the query to be explained. More...
 
const CHARSET_INFO *const cs
 cached pointer to system_charset_info More...
 
Query_block *const query_block
 Cached Query_block of the explained query. More...
 
Explain_format *const fmt
 shortcut for thd->lex->explain_format More...
 
enum_parsing_context context_type
 associated value for struct. explain More...
 
bool order_list
 if query block has ORDER BY More...
 
const bool explain_other
 if we explain other thread than us More...
 

Detailed Description

This class outputs an empty plan for queries that use a secondary engine.

It is only used with the hypergraph optimizer, and only when the traditional format is specified. The traditional format is not supported by the hypergraph optimizer, so only an empty plan is shown, with extra information showing a secondary engine is used.

Constructor & Destructor Documentation

◆ Explain_secondary_engine()

anonymous_namespace{opt_explain.cc}::Explain_secondary_engine::Explain_secondary_engine ( THD explain_thd_arg,
const THD query_thd_arg,
Query_block query_block_arg 
)
inline

Member Function Documentation

◆ explain_extra()

bool anonymous_namespace{opt_explain.cc}::Explain_secondary_engine::explain_extra ( )
inlineoverrideprotectedvirtual

◆ explain_select_type()

bool anonymous_namespace{opt_explain.cc}::Explain_secondary_engine::explain_select_type ( )
inlineoverrideprotectedvirtual

◆ skip_subqueries()

bool anonymous_namespace{opt_explain.cc}::Explain_secondary_engine::skip_subqueries ( ) const
inlineoverrideprivatevirtual

Returns true if EXPLAIN should not produce any information about subqueries.

Reimplemented from anonymous_namespace{opt_explain.cc}::Explain.


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