MySQL 9.0.0
Source Code Documentation
anonymous_namespace{opt_explain.cc}::Explain_setop_result Class Reference

Explain_union_result class outputs EXPLAIN row for UNION. More...

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

Public Member Functions

 Explain_setop_result (THD *explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg, Query_term *qt, enum_parsing_context ctx)
 
- 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_id () override
 
bool explain_table_name () override
 
bool explain_join_type () override
 
bool explain_extra () override
 
bool can_walk_clauses () override
 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...
 
- 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_select_type ()
 
virtual bool explain_partitions ()
 
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 enum_parsing_context get_subquery_context (Query_expression *unit) const
 

Protected Attributes

Query_term_set_opm_query_term
 
- 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

Explain_union_result class outputs EXPLAIN row for UNION.

Constructor & Destructor Documentation

◆ Explain_setop_result()

anonymous_namespace{opt_explain.cc}::Explain_setop_result::Explain_setop_result ( THD explain_thd_arg,
const THD query_thd_arg,
Query_block query_block_arg,
Query_term qt,
enum_parsing_context  ctx 
)
inline

Member Function Documentation

◆ can_walk_clauses()

bool anonymous_namespace{opt_explain.cc}::Explain_setop_result::can_walk_clauses ( )
inlineoverrideprotectedvirtual

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).

By default, if we are explaining another connection, this is not safe.

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

◆ explain_extra()

bool Explain_setop_result::explain_extra ( )
overrideprotectedvirtual

◆ explain_id()

bool Explain_setop_result::explain_id ( )
overrideprotectedvirtual

◆ explain_join_type()

bool Explain_setop_result::explain_join_type ( )
overrideprotectedvirtual

◆ explain_table_name()

bool Explain_setop_result::explain_table_name ( )
overrideprotectedvirtual

Member Data Documentation

◆ m_query_term

Query_term_set_op* anonymous_namespace{opt_explain.cc}::Explain_setop_result::m_query_term
protected

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