diff options
Diffstat (limited to 'sql/sql_explain.h')
-rw-r--r-- | sql/sql_explain.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sql/sql_explain.h b/sql/sql_explain.h index 852dc2df604..73b9eb19435 100644 --- a/sql/sql_explain.h +++ b/sql/sql_explain.h @@ -212,6 +212,8 @@ public: #ifndef DBUG_OFF select_lex(NULL), #endif + linkage(UNSPECIFIED_TYPE), + is_lateral(false), message(NULL), having(NULL), having_value(Item::COND_UNDEF), using_temporary(false), using_filesort(false), @@ -219,11 +221,15 @@ public: aggr_tree(NULL) {} + void add_linkage(Json_writer *writer); + public: #ifndef DBUG_OFF SELECT_LEX *select_lex; #endif const char *select_type; + enum sub_select_type linkage; + bool is_lateral; /* If message != NULL, this is a degenerate join plan, and all subsequent @@ -326,7 +332,9 @@ public: ///////////////////////////////////////////////////////////////////////////// -/* +extern const char *unit_operation_text[4]; + +/* Explain structure for a UNION. A UNION may or may not have "Using filesort". @@ -342,6 +350,7 @@ public: {} enum explain_node_type get_type() { return EXPLAIN_UNION; } + unit_common_op operation; int get_select_id() { @@ -592,8 +601,8 @@ public: key_name= NULL; key_len= (uint)-1; } - void set(MEM_ROOT *root, KEY *key_name, uint key_len_arg); - void set_pseudo_key(MEM_ROOT *root, const char *key_name); + bool set(MEM_ROOT *root, KEY *key_name, uint key_len_arg); + bool set_pseudo_key(MEM_ROOT *root, const char *key_name); inline const char *get_key_name() const { return key_name; } inline uint get_key_len() const { return key_len; } |