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

Merge pull request #1367 from dhall-MariaDB/MCOL-3827

MCOL-3827 Optimize out sort on SubQuery in Select
This commit is contained in:
Gagan Goel
2020-08-18 14:54:36 -04:00
committed by GitHub
2 changed files with 19 additions and 11 deletions

View File

@ -823,7 +823,7 @@ void addOrderByAndLimit(CalpontSelectExecutionPlan* csep, JobInfo& jobInfo)
if (sc == NULL)
{
const ReturnedColumn* rc = dynamic_cast<const ReturnedColumn*>(orderByCols[i].get());
uint64_t eid = rc->expressionId();
uint32_t eid = rc->expressionId();
CalpontSystemCatalog::ColType ct = rc->resultType();
tupleKey = getExpTupleKey(jobInfo, eid);
jobInfo.orderByColVec.push_back(make_pair(tupleKey, orderByCols[i]->asc()));

View File

@ -7791,6 +7791,9 @@ int getSelectPlan(gp_walk_info& gwi, SELECT_LEX& select_lex,
}
}
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(rc);
if (!sc || sc->oid())
{
if (ordercol->direction == ORDER::ORDER_ASC)
rc->asc(true);
else
@ -7799,6 +7802,7 @@ int getSelectPlan(gp_walk_info& gwi, SELECT_LEX& select_lex,
gwi.orderByCols.push_back(SRCP(rc));
}
}
}
// make sure columnmap, returnedcols and count(*) arg_list are not empty
TableMap::iterator tb_iter = gwi.tableMap.begin();
@ -9583,6 +9587,9 @@ int getGroupPlan(gp_walk_info& gwi, SELECT_LEX& select_lex, SCSEP& csep, cal_gro
}
}
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(rc);
if (!sc || sc->oid())
{
if (ordercol->direction == ORDER::ORDER_ASC)
rc->asc(true);
else
@ -9590,6 +9597,7 @@ int getGroupPlan(gp_walk_info& gwi, SELECT_LEX& select_lex, SCSEP& csep, cal_gro
gwi.orderByCols.push_back(SRCP(rc));
}
}
// make sure columnmap, returnedcols and count(*) arg_list are not empty