Explain_table class produce EXPLAIN output for queries without top-level JOIN.  
 More...
 | 
|   | Explain_table (THD *const explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg, TABLE *const table_arg, enum join_type type_arg, AccessPath *range_scan_arg, Item *condition_arg, uint key_arg, ha_rows limit_arg, bool need_tmp_table_arg, bool need_sort_arg, enum_mod_type mod_type_arg, bool used_key_is_modified_arg, const char *msg) | 
|   | 
| bool  | explain_modify_flags () override | 
|   | 
| 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...
  | 
|   | 
 | 
|   | Explain_table_base (enum_parsing_context context_type_arg, THD *const explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg=nullptr, TABLE *const table_arg=nullptr) | 
|   | 
| bool  | explain_partitions () override | 
|   | 
| bool  | explain_possible_keys () override | 
|   | 
| bool  | explain_key_parts (int key, uint key_parts) | 
|   | 
| bool  | explain_key_and_len_quick (AccessPath *range_scan) | 
|   | 
| bool  | explain_key_and_len_index (int key) | 
|   | 
| bool  | explain_key_and_len_index (int key, uint key_length, uint key_parts) | 
|   | 
| bool  | explain_extra_common (int range_scan_type, uint keyno) | 
|   | 
| bool  | explain_tmptable_and_filesort (bool need_tmp_table_arg, bool need_sort_arg) | 
|   | 
|   | Explain (enum_parsing_context context_type_arg, THD *explain_thd_arg, const THD *query_thd_arg, Query_block *query_block_arg) | 
|   | 
| 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_select_type () | 
|   | 
| virtual enum_parsing_context  | get_subquery_context (Query_expression *unit) const | 
|   | 
| QEP_TAB *  | tab {nullptr} | 
|   | The QEP_TAB which we are currently explaining.  More...
  | 
|   | 
| const TABLE *  | table {nullptr} | 
|   | 
| join_type  | type {JT_UNKNOWN} | 
|   | 
| AccessPath *  | range_scan_path {nullptr} | 
|   | 
| Item *  | condition {nullptr} | 
|   | 
| bool  | dynamic_range {false} | 
|   | 
| Table_ref *  | table_ref {nullptr} | 
|   | 
| bool  | skip_records_in_range {false} | 
|   | 
| bool  | reversed_access {false} | 
|   | 
| Key_map  | usable_keys | 
|   | 
| THD *const  | explain_thd | 
|   | cached THD which runs the EXPLAIN command  More...
  | 
|   | 
| const THD *  | query_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...
  | 
|   | 
Explain_table class produce EXPLAIN output for queries without top-level JOIN. 
This class is a simplified version of the Explain_join class. It works in the context of queries which implementation lacks top-level JOIN object (EXPLAIN single-table UPDATE and DELETE). 
 
  
  
      
        
          | bool anonymous_namespace{opt_explain.cc}::Explain_table::can_walk_clauses  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineoverrideprivatevirtual   | 
  
 
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.