ClickHouse

Форк
0
/
QueryPlanOptimizationSettings.cpp 
58 строк · 2.7 Кб
1
#include <Processors/QueryPlan/Optimizations/QueryPlanOptimizationSettings.h>
2
#include <Core/Settings.h>
3
#include <Interpreters/Context.h>
4

5
namespace DB
6
{
7

8
QueryPlanOptimizationSettings QueryPlanOptimizationSettings::fromSettings(const Settings & from)
9
{
10
    QueryPlanOptimizationSettings settings;
11

12
    settings.optimize_plan = from.query_plan_enable_optimizations;
13
    settings.max_optimizations_to_apply = from.query_plan_max_optimizations_to_apply;
14

15
    settings.lift_up_array_join = from.query_plan_enable_optimizations && from.query_plan_lift_up_array_join;
16

17
    settings.push_down_limit = from.query_plan_enable_optimizations && from.query_plan_push_down_limit;
18

19
    settings.split_filter = from.query_plan_enable_optimizations && from.query_plan_split_filter;
20

21
    settings.merge_expressions = from.query_plan_enable_optimizations && from.query_plan_merge_expressions;
22

23
    settings.filter_push_down = from.query_plan_enable_optimizations && from.query_plan_filter_push_down;
24

25
    settings.optimize_prewhere = from.query_plan_enable_optimizations && from.query_plan_optimize_prewhere;
26

27
    settings.execute_functions_after_sorting = from.query_plan_enable_optimizations && from.query_plan_execute_functions_after_sorting;
28

29
    settings.reuse_storage_ordering_for_window_functions = from.query_plan_enable_optimizations && from.query_plan_reuse_storage_ordering_for_window_functions;
30

31
    settings.lift_up_union = from.query_plan_enable_optimizations && from.query_plan_lift_up_union;
32

33
    settings.distinct_in_order = from.query_plan_enable_optimizations && from.optimize_distinct_in_order;
34

35
    settings.read_in_order = from.query_plan_enable_optimizations && from.optimize_read_in_order && from.query_plan_read_in_order;
36

37
    settings.aggregation_in_order = from.query_plan_enable_optimizations && from.optimize_aggregation_in_order && from.query_plan_aggregation_in_order;
38

39
    settings.remove_redundant_sorting = from.query_plan_enable_optimizations && from.query_plan_remove_redundant_sorting;
40

41
    settings.aggregate_partitions_independently = from.query_plan_enable_optimizations && from.allow_aggregate_partitions_independently;
42

43
    settings.remove_redundant_distinct = from.query_plan_enable_optimizations && from.query_plan_remove_redundant_distinct;
44

45
    settings.optimize_projection = from.optimize_use_projections;
46
    settings.force_use_projection = settings.optimize_projection && from.force_optimize_projection;
47
    settings.force_projection_name = from.force_optimize_projection_name;
48
    settings.optimize_use_implicit_projections = settings.optimize_projection && from.optimize_use_implicit_projections;
49

50
    return settings;
51
}
52

53
QueryPlanOptimizationSettings QueryPlanOptimizationSettings::fromContext(ContextPtr from)
54
{
55
    return fromSettings(from->getSettingsRef());
56
}
57

58
}
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.