You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-11-02 06:13:16 +03:00
Fix queries like (SELECT * FROM t ORDER BY 1) UNION (SELECT ...)
This commit is contained in:
committed by
Leonid Fedorov
parent
3d26e4d6fd
commit
378f964cca
@@ -6208,9 +6208,9 @@ int processLimitAndOffset(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep
|
||||
We therefore do not allow limit set to 1 here for such queries.
|
||||
*/
|
||||
if (gwi.subSelectType != CalpontSelectExecutionPlan::IN_SUBS &&
|
||||
gwi.subSelectType != CalpontSelectExecutionPlan::EXISTS_SUBS &&
|
||||
select_lex.master_unit()->global_parameters()->limit_params.explicit_limit)
|
||||
gwi.subSelectType != CalpontSelectExecutionPlan::EXISTS_SUBS)
|
||||
{
|
||||
if (select_lex.master_unit()->global_parameters()->limit_params.explicit_limit) {
|
||||
if (select_lex.master_unit()->global_parameters()->limit_params.offset_limit)
|
||||
{
|
||||
Item_int* offset =
|
||||
@@ -6228,6 +6228,7 @@ int processLimitAndOffset(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// union with explicit select at the top level
|
||||
else if (isUnion && select_lex.limit_params.explicit_limit)
|
||||
{
|
||||
@@ -6878,6 +6879,8 @@ int processOrderBy(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep,
|
||||
}
|
||||
}
|
||||
|
||||
if (!unionSel)
|
||||
{
|
||||
// re-visit the first of ordercol list
|
||||
ordercol = static_cast<ORDER*>(order_list.first);
|
||||
|
||||
@@ -6955,6 +6958,7 @@ int processOrderBy(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep,
|
||||
|
||||
gwi.orderByCols.push_back(SRCP(rc));
|
||||
}
|
||||
}
|
||||
|
||||
// make sure columnmap, returnedcols and count(*) arg_list are not empty
|
||||
TableMap::iterator tb_iter = gwi.tableMap.begin();
|
||||
|
||||
Reference in New Issue
Block a user