1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-1052 Generate execution plan for a aggregated function query call.

This commit is contained in:
Roman Nozdrin
2018-03-27 18:37:00 +03:00
parent cff504c8bf
commit fa4067b6f0
6 changed files with 1159 additions and 23 deletions

View File

@ -178,7 +178,8 @@ struct cal_table_info
msTablePtr(0),
conn_hndl(0),
condInfo(0),
moreRows(false)
moreRows(false),
groupByFields(0)
{ }
~cal_table_info() {}
sm::cpsm_tplh_t* tpl_ctx;
@ -189,6 +190,7 @@ struct cal_table_info
gp_walk_info* condInfo;
execplan::SCSEP csep;
bool moreRows; //are there more rows to consume (b/c of limit)
List<Item> *groupByFields; // MCOL-1052 For CSEP generation
};
typedef std::tr1::unordered_map<TABLE*, cal_table_info> CalTableMap;
@ -297,6 +299,7 @@ const std::string infinidb_err_msg = "\nThe query includes syntax that is not su
int cp_get_plan(THD* thd, execplan::SCSEP& csep);
int cp_get_table_plan(THD* thd, execplan::SCSEP& csep, cal_impl_if::cal_table_info& ti);
int cp_get_group_plan(THD* thd, execplan::SCSEP& csep, cal_impl_if::cal_table_info& ti);
int getSelectPlan(gp_walk_info& gwi, SELECT_LEX& select_lex, execplan::SCSEP& csep, bool isUnion = false);
void setError(THD* thd, uint32_t errcode, const std::string errmsg, gp_walk_info* gwi);
void setError(THD* thd, uint32_t errcode, const std::string errmsg);