mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 18:12:02 +00:00
Merge pull request #57144 from rschu1ze/disable-reorder-functions-after-sorting
Allow to disable reorder-functions-after-sorting optimization
This commit is contained in:
commit
674159857e
@ -685,6 +685,7 @@ class IColumn;
|
|||||||
M(Bool, query_plan_enable_optimizations, true, "Apply optimizations to query plan", 0) \
|
M(Bool, query_plan_enable_optimizations, true, "Apply optimizations to query plan", 0) \
|
||||||
M(UInt64, query_plan_max_optimizations_to_apply, 10000, "Limit the total number of optimizations applied to query plan. If zero, ignored. If limit reached, throw exception", 0) \
|
M(UInt64, query_plan_max_optimizations_to_apply, 10000, "Limit the total number of optimizations applied to query plan. If zero, ignored. If limit reached, throw exception", 0) \
|
||||||
M(Bool, query_plan_filter_push_down, true, "Allow to push down filter by predicate query plan step", 0) \
|
M(Bool, query_plan_filter_push_down, true, "Allow to push down filter by predicate query plan step", 0) \
|
||||||
|
M(Bool, query_plan_execute_functions_after_sorting, true, "Allow to re-order functions after sorting", 0) \
|
||||||
M(Bool, query_plan_optimize_primary_key, true, "Analyze primary key using query plan (instead of AST)", 0) \
|
M(Bool, query_plan_optimize_primary_key, true, "Analyze primary key using query plan (instead of AST)", 0) \
|
||||||
M(Bool, query_plan_read_in_order, true, "Use query plan for read-in-order optimisation", 0) \
|
M(Bool, query_plan_read_in_order, true, "Use query plan for read-in-order optimisation", 0) \
|
||||||
M(Bool, query_plan_aggregation_in_order, true, "Use query plan for aggregation-in-order optimisation", 0) \
|
M(Bool, query_plan_aggregation_in_order, true, "Use query plan for aggregation-in-order optimisation", 0) \
|
||||||
|
@ -84,7 +84,7 @@ inline const auto & getOptimizations()
|
|||||||
{trySplitFilter, "splitFilter", &QueryPlanOptimizationSettings::optimize_plan},
|
{trySplitFilter, "splitFilter", &QueryPlanOptimizationSettings::optimize_plan},
|
||||||
{tryMergeExpressions, "mergeExpressions", &QueryPlanOptimizationSettings::optimize_plan},
|
{tryMergeExpressions, "mergeExpressions", &QueryPlanOptimizationSettings::optimize_plan},
|
||||||
{tryPushDownFilter, "pushDownFilter", &QueryPlanOptimizationSettings::filter_push_down},
|
{tryPushDownFilter, "pushDownFilter", &QueryPlanOptimizationSettings::filter_push_down},
|
||||||
{tryExecuteFunctionsAfterSorting, "liftUpFunctions", &QueryPlanOptimizationSettings::optimize_plan},
|
{tryExecuteFunctionsAfterSorting, "liftUpFunctions", &QueryPlanOptimizationSettings::execute_functions_after_sorting},
|
||||||
{tryReuseStorageOrderingForWindowFunctions,
|
{tryReuseStorageOrderingForWindowFunctions,
|
||||||
"reuseStorageOrderingForWindowFunctions",
|
"reuseStorageOrderingForWindowFunctions",
|
||||||
&QueryPlanOptimizationSettings::optimize_plan},
|
&QueryPlanOptimizationSettings::optimize_plan},
|
||||||
|
@ -11,6 +11,7 @@ QueryPlanOptimizationSettings QueryPlanOptimizationSettings::fromSettings(const
|
|||||||
settings.optimize_plan = from.query_plan_enable_optimizations;
|
settings.optimize_plan = from.query_plan_enable_optimizations;
|
||||||
settings.max_optimizations_to_apply = from.query_plan_max_optimizations_to_apply;
|
settings.max_optimizations_to_apply = from.query_plan_max_optimizations_to_apply;
|
||||||
settings.filter_push_down = from.query_plan_filter_push_down;
|
settings.filter_push_down = from.query_plan_filter_push_down;
|
||||||
|
settings.execute_functions_after_sorting = from.query_plan_execute_functions_after_sorting;
|
||||||
settings.distinct_in_order = from.optimize_distinct_in_order;
|
settings.distinct_in_order = from.optimize_distinct_in_order;
|
||||||
settings.read_in_order = from.optimize_read_in_order && from.query_plan_read_in_order;
|
settings.read_in_order = from.optimize_read_in_order && from.query_plan_read_in_order;
|
||||||
settings.aggregation_in_order = from.optimize_aggregation_in_order && from.query_plan_aggregation_in_order;
|
settings.aggregation_in_order = from.optimize_aggregation_in_order && from.query_plan_aggregation_in_order;
|
||||||
|
@ -21,6 +21,9 @@ struct QueryPlanOptimizationSettings
|
|||||||
/// If filter push down optimization is enabled.
|
/// If filter push down optimization is enabled.
|
||||||
bool filter_push_down = true;
|
bool filter_push_down = true;
|
||||||
|
|
||||||
|
/// If reorder-functions-after-sorting optimization is enabled.
|
||||||
|
bool execute_functions_after_sorting;
|
||||||
|
|
||||||
/// if distinct in order optimization is enabled
|
/// if distinct in order optimization is enabled
|
||||||
bool distinct_in_order = false;
|
bool distinct_in_order = false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user