mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
SHOW EXPLAIN: merge to 10.0-base.
This commit is contained in:
@@ -194,6 +194,7 @@ enum enum_sql_command {
|
||||
SQLCOM_SHOW_RELAYLOG_EVENTS,
|
||||
SQLCOM_SHOW_USER_STATS, SQLCOM_SHOW_TABLE_STATS, SQLCOM_SHOW_INDEX_STATS,
|
||||
SQLCOM_SHOW_CLIENT_STATS,
|
||||
SQLCOM_SHOW_EXPLAIN,
|
||||
|
||||
/*
|
||||
When a command is added here, be sure it's also added in mysqld.cc
|
||||
@@ -357,6 +358,8 @@ typedef uchar index_clause_map;
|
||||
#define INDEX_HINT_MASK_ALL (INDEX_HINT_MASK_JOIN | INDEX_HINT_MASK_GROUP | \
|
||||
INDEX_HINT_MASK_ORDER)
|
||||
|
||||
class select_result_sink;
|
||||
|
||||
/* Single element of an USE/FORCE/IGNORE INDEX list specified as a SQL hint */
|
||||
class Index_hint : public Sql_alloc
|
||||
{
|
||||
@@ -717,6 +720,8 @@ public:
|
||||
friend int subselect_union_engine::exec();
|
||||
|
||||
List<Item> *get_unit_column_types();
|
||||
int print_explain(select_result_sink *output, uint8 explain_flags,
|
||||
bool *printed_anything);
|
||||
};
|
||||
|
||||
typedef class st_select_lex_unit SELECT_LEX_UNIT;
|
||||
@@ -777,6 +782,12 @@ public:
|
||||
those converted to jtbm nests. The list is emptied when conversion is done.
|
||||
*/
|
||||
List<Item_in_subselect> sj_subselects;
|
||||
|
||||
/*
|
||||
Needed to correctly generate 'PRIMARY' or 'SIMPLE' for select_type column
|
||||
of EXPLAIN
|
||||
*/
|
||||
bool have_merged_subqueries;
|
||||
|
||||
List<TABLE_LIST> leaf_tables;
|
||||
List<TABLE_LIST> leaf_tables_exec;
|
||||
@@ -1001,7 +1012,7 @@ public:
|
||||
bool is_part_of_union() { return master_unit()->is_union(); }
|
||||
bool optimize_unflattened_subqueries(bool const_only);
|
||||
/* Set the EXPLAIN type for this subquery. */
|
||||
void set_explain_type();
|
||||
void set_explain_type(bool on_the_fly);
|
||||
bool handle_derived(LEX *lex, uint phases);
|
||||
void append_table_to_list(TABLE_LIST *TABLE_LIST::*link, TABLE_LIST *table);
|
||||
bool get_free_table_map(table_map *map, uint *tablenr);
|
||||
@@ -1025,8 +1036,10 @@ public:
|
||||
|
||||
bool save_leaf_tables(THD *thd);
|
||||
bool save_prep_leaf_tables(THD *thd);
|
||||
bool is_merged_child_of(st_select_lex *ancestor);
|
||||
|
||||
bool is_merged_child_of(st_select_lex *ancestor);
|
||||
int print_explain(select_result_sink *output, uint8 explain_flags,
|
||||
bool *printed_anything);
|
||||
/*
|
||||
For MODE_ONLY_FULL_GROUP_BY we need to maintain two flags:
|
||||
- Non-aggregated fields are used in this select.
|
||||
@@ -2348,7 +2361,7 @@ struct LEX: public Query_tables_list
|
||||
char *backup_dir; /* For RESTORE/BACKUP */
|
||||
char* to_log; /* For PURGE MASTER LOGS TO */
|
||||
char* x509_subject,*x509_issuer,*ssl_cipher;
|
||||
String *wild;
|
||||
String *wild; /* Wildcard in SHOW {something} LIKE 'wild'*/
|
||||
sql_exchange *exchange;
|
||||
select_result *result;
|
||||
Item *default_value, *on_update_value;
|
||||
|
Reference in New Issue
Block a user