You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MDEV-25080 Some fixes:
1. In TupleUnion::writeNull(), add the missing switch case for wide decimal with 16bytes column width. 2. MCOL-5432 Disable complete/partial pushdown of UNION operation if the query involves an ORDER BY or a LIMIT clause, until MCOL-5222 is fixed. Also add MTR test cases for this.
This commit is contained in:
@ -779,6 +779,15 @@ select_handler* create_columnstore_select_handler_(THD* thd, SELECT_LEX* sel_lex
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// MCOL-5432 Disable partial pushdown of the UNION operation if the query
|
||||
// involves an order by or a limit clause.
|
||||
if (sel_lex && sel_unit &&
|
||||
(sel_unit->global_parameters()->limit_params.explicit_limit == true ||
|
||||
sel_unit->global_parameters()->order_list.elements != 0))
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::vector<SELECT_LEX*> select_lex_vec;
|
||||
|
||||
if (sel_unit && !sel_lex)
|
||||
@ -1036,13 +1045,23 @@ select_handler* create_columnstore_select_handler(THD* thd, SELECT_LEX* select_l
|
||||
select_handler* create_columnstore_unit_handler(THD* thd, SELECT_LEX_UNIT* sel_unit)
|
||||
{
|
||||
if (thd->lex->sql_command == SQLCOM_CREATE_VIEW)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (thd->stmt_arena && thd->stmt_arena->is_stmt_prepare())
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// MCOL-5432 Disable UNION pushdown if the query involves an order by
|
||||
// or a limit clause.
|
||||
if (sel_unit->global_parameters()->limit_params.explicit_limit == true ||
|
||||
sel_unit->global_parameters()->order_list.elements != 0)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return create_columnstore_select_handler_(thd, 0, sel_unit);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user