summaryrefslogtreecommitdiff
path: root/sql/sql_tvc.h
diff options
context:
space:
mode:
authorGalina Shalygina <galashalygina@gmail.com>2017-08-29 02:32:39 +0200
committerGalina Shalygina <galashalygina@gmail.com>2017-08-29 02:32:39 +0200
commit570d2e7d0f2c48f9662804eb69e47ce12f983696 (patch)
tree76eecad3e08adf57567ee66f61414bf4551d722d /sql/sql_tvc.h
parent3310076dbe781e0554519fba5c4a2585a463250f (diff)
downloadmariadb-git-570d2e7d0f2c48f9662804eb69e47ce12f983696.tar.gz
Summarized results of two previous commits (26 July, 25 August)
Diffstat (limited to 'sql/sql_tvc.h')
-rw-r--r--sql/sql_tvc.h35
1 files changed, 27 insertions, 8 deletions
diff --git a/sql/sql_tvc.h b/sql/sql_tvc.h
index 007b50d81df..5524744a03c 100644
--- a/sql/sql_tvc.h
+++ b/sql/sql_tvc.h
@@ -6,26 +6,45 @@
typedef List<Item> List_item;
class select_result;
+class Explain_select;
+class Explain_query;
+class Item_func_in;
+
/**
@class table_value_constr
@brief Definition of a Table Value Construction(TVC)
- It contains a list of lists of values that this TVC contains.
+ It contains a list of lists of values which this TVC is defined by and
+ reference on SELECT where this TVC is defined.
*/
-
class table_value_constr : public Sql_alloc
{
public:
List<List_item> lists_of_values;
select_result *result;
+ SELECT_LEX *select_lex;
+
+ enum { QEP_NOT_PRESENT_YET, QEP_AVAILABLE} have_query_plan;
+
+ Explain_select *explain;
+ ulonglong select_options;
- table_value_constr(List<List_item> tvc_values) :
- lists_of_values(tvc_values), result(0)
- { }
+ table_value_constr(List<List_item> tvc_values, SELECT_LEX *sl,
+ ulonglong select_options_arg) :
+ lists_of_values(tvc_values), result(0), select_lex(sl),
+ have_query_plan(QEP_NOT_PRESENT_YET), explain(0),
+ select_options(select_options_arg)
+ { };
bool prepare(THD *thd_arg, SELECT_LEX *sl,
- select_result *tmp_result);
- bool exec();
-};
+ select_result *tmp_result,
+ st_select_lex_unit *unit_arg);
+
+ int save_explain_data_intern(THD *thd_arg,
+ Explain_query *output);
+ void optimize(THD *thd_arg);
+ bool exec(SELECT_LEX *sl);
+ void print(THD *thd_arg, String *str, enum_query_type query_type);
+};
#endif /* SQL_TVC_INCLUDED */ \ No newline at end of file