Commit Graph

286 Commits

Author SHA1 Message Date
Nikolai Kochetov
b327a93cf7 Add comments. 2023-04-03 18:18:39 +00:00
Nikolai Kochetov
61a484f0bd Batch fix for projections analysis with analyzer. 2023-04-03 16:44:31 +00:00
Nikolai Kochetov
d4b91b7f8c
Merge pull request #47319 from ClickHouse/query-plan-update-sort-description
Query plan: update sort description
2023-04-03 15:42:49 +02:00
Nikolai Kochetov
1693e46640 Do not remove inputs from maybe compiled DAG. 2023-03-31 19:03:20 +00:00
Nikolai Kochetov
73e98de46d Merge branch 'master' into aggregate-projections-analysis-query-plan 2023-03-23 21:28:36 +01:00
Maksim Kita
f45dac99c2 Revert "Revert "Analyzer planner fixes before enable by default"" 2023-03-22 17:19:32 +01:00
Igor Nikonov
d72c0def6e Improve search of original node name in ActionsDAG 2023-03-21 16:30:13 +00:00
Alexey Milovidov
ef5e8462da
Revert "Analyzer planner fixes before enable by default" 2023-03-19 19:25:37 +03:00
Salvatore Mesoraca
d7f4bc4c72
ActionsDAG: remove wrong optimization
Replacing AND with a casto to UInt8 can change the condition.
e.g.
0x100 cast to UInt8 is 0, but it should be 1.
0.1 cast to UInt8 is 0, but it should be 1.

Basically we can't cast anything to UInt8 so we completely remove
this optimization.

Closes #47317
2023-03-15 17:16:57 +01:00
Maksim Kita
c102adb728 Analyzer added PREWHERE support 2023-03-15 15:21:49 +01:00
Nikolai Kochetov
e8f42e5fb3 Fix aliases in analyzeAggregateProjection. Remove setting from test. 2023-03-14 11:26:35 +00:00
Nikolai Kochetov
669a92bae0 Merge branch 'master' into aggregate-projections-analysis-query-plan 2023-03-13 19:55:49 +01:00
Igor Nikonov
c952886e66 Merge remote-tracking branch 'origin/master' into query-plan-update-sort-description 2023-03-08 18:09:37 +00:00
Igor Nikonov
6f2851ef70 Update FilterStep 2023-03-07 22:16:22 +00:00
Dmitry Novik
13f1e5b022 Merge remote-tracking branch 'origin/master' into analyzer-group-by-use-nulls 2023-03-07 16:16:48 +00:00
Salvatore Mesoraca
81b30021db
ActionsDAG: do not change result of and() during optimization - part 2 (#47028) 2023-03-02 20:48:13 +01:00
Dmitry Novik
54680b1a0a Merge remote-tracking branch 'origin/master' into analyzer-group-by-use-nulls 2023-03-01 01:08:17 +00:00
Nikolai Kochetov
3392b96cc3
Merge branch 'master' into aggregate-projections-analysis-query-plan 2023-02-27 14:07:04 +01:00
Alexey Milovidov
3a3a2f352c
Merge pull request #46653 from aiven-sal/aiven-sal/and_opt_pr
ActionsDAG: do not change result of and() during optimization
2023-02-26 02:56:35 +03:00
Salvatore Mesoraca
0e34a4fc4e
ActionsDAG: remove unnecessary condition 2023-02-23 18:35:29 +01:00
Salvatore Mesoraca
c83583e46b
ActionsDAG: do not change result of and() during optimization
Previously `and` results were inconsistent.
Some optimizations can try to simplify and completely remove a
single-argument `and`, replacing it with a cast to UInt8.
This works well for all numeric types except floats.
A float passed to `and` is normally interpreted as `bool` and
values between 0 and 1 are treated as 1.
The same value cast to an integer type will be truncated to 0.
2023-02-21 15:39:44 +01:00
Alexander Gololobov
5354b0d069
Merge pull request #46140 from ClickHouse/split_prewhere_dag
Split PREWHERE DAG into multiple read steps
2023-02-21 14:37:09 +01:00
Nikolai Kochetov
2a8460d962 Merge branch 'master' into aggregate-projections-analysis-query-plan 2023-02-20 13:54:05 +01:00
Alexey Milovidov
17992b178a
Merge pull request #45364 from nickitat/aggr_partitions_independently
Add option to aggregate partitions independently
2023-02-19 17:44:18 +03:00
Maksim Kita
70eb41c6a8 Analyzer add single_join_prefer_left_table setting 2023-02-16 12:17:03 +01:00
Alexander Gololobov
39e4ca9850 Cleanup 2023-02-13 14:40:54 +01:00
Alexander Gololobov
45ef2f6d60 Split prewhere actions into separate conjuctive steps 2023-02-12 21:54:23 +01:00
Nikolai Kochetov
a542626fa3 Make 01710_aggregate_projections work. 2023-02-06 18:42:58 +00:00
Dmitry Novik
eee7df8149 WIP on group_by_use_nulls 2023-02-01 13:33:32 +00:00
Nikita Taranov
3e3d1d15a8 properly handle case when there is nondeterministic functions 2023-01-30 17:11:56 +00:00
Nikolai Kochetov
286a58801e Aggregate Projections analysis using query plan [In progress] 2023-01-27 18:38:14 +00:00
Alexander Tokmakov
70d1adfe4b
Better formatting for exception messages (#45449)
* save format string for NetException

* format exceptions

* format exceptions 2

* format exceptions 3

* format exceptions 4

* format exceptions 5

* format exceptions 6

* fix

* format exceptions 7

* format exceptions 8

* Update MergeTreeIndexGin.cpp

* Update AggregateFunctionMap.cpp

* Update AggregateFunctionMap.cpp

* fix
2023-01-24 00:13:58 +03:00
Alexander Tokmakov
72e8615bec formatting of some exception messages 2023-01-17 20:03:56 +01:00
Maksim Kita
a140d6c5b1 Fixed code review issues 2023-01-12 12:07:58 +01:00
Dmitry Novik
9d44c7a737
Merge pull request #44541 from ClickHouse/cleanup-resolved-function
Followup #43761
2023-01-06 18:09:32 +01:00
Nikolai Kochetov
72eb74dd67 Fix check for not existing input in ActionsDAG 2023-01-06 14:50:28 +00:00
Dmitry Novik
8f21eb543c Fix argument evaluation order 2023-01-04 16:00:47 +00:00
Dmitry Novik
6386e83953 Fixes after review 2023-01-03 16:50:06 +00:00
Dmitry Novik
93cf734b57 Refactor ActionsDAG::addFunction 2022-12-29 15:49:51 +00:00
Dmitry Novik
cff882d506 Merge remote-tracking branch 'origin/master' into refector-function-node 2022-12-22 21:34:29 +00:00
Vladimir C
9a38911d5d
Merge pull request #43239 from bigo-sg/array_join_support_map 2022-12-22 12:18:34 +01:00
Dmitry Novik
4793412887
Merge branch 'master' into refector-function-node 2022-12-20 18:26:19 +01:00
avogar
b7b7579eea Merge branch 'master' of github.com:ClickHouse/ClickHouse into fix-fuzz 2022-12-15 20:33:13 +00:00
vdimir
4c17903010
update getArrayJoinDataType/getArrayJoinColumn 2022-12-14 13:02:03 +00:00
taiyang-li
5c87476d24
fix code style 2022-12-14 11:28:56 +00:00
taiyang-li
f3b72b979c
modify error msg 2022-12-14 11:28:56 +00:00
taiyang-li
26b5a74b0c
finish debug 2022-12-14 11:28:54 +00:00
taiyang-li
2f03146941
wip 2022-12-14 11:28:50 +00:00
Dmitry Novik
2e74a274f2 Fix build 2022-12-13 21:46:16 +00:00
Dmitry Novik
3d2fccab87
Merge branch 'master' into refector-function-node 2022-12-12 21:36:39 +01:00
Maksim Kita
4d39a7d103 Fixed code review issues 2022-12-08 17:30:32 +01:00
Maksim Kita
362a8e541a Fixed style check 2022-12-08 17:30:32 +01:00
Maksim Kita
99de697ea2 Analyzer added indexes support 2022-12-08 17:30:32 +01:00
Dmitry Novik
2c70dbc76a Refactor FunctionNode 2022-12-02 19:15:26 +00:00
avogar
de27f65b85 Fix possible use-of-unitialized value after executing expressions after sorting 2022-11-24 17:27:23 +00:00
Nikolai Kochetov
5106c24e88 Merge branch 'master' into read-in-order-from-query-plan 2022-10-27 18:12:20 +00:00
Nikolai Kochetov
dc03a83ad7 Reimplement read-in-order optimisation on top of query plan. 2022-08-19 17:56:02 +00:00
Alexander Tokmakov
8cbdd39c81
Update ActionsDAG.cpp 2022-08-19 11:34:15 +03:00
Igor Nikonov
51f4716b29 Fix review comments 2022-08-16 14:59:53 +00:00
Igor Nikonov
9566e2995d Fix of check if sorting order is preserved 2022-08-13 21:44:29 +00:00
Igor Nikonov
f33a0d8c85 More simple way to check if sorting order is preserved
- there is a case where it's done wrong
2022-08-12 23:42:37 +00:00
Igor Nikonov
bf037275a5 More robust check if sorting order is changed by expression
+ tests
2022-08-12 14:57:18 +00:00
Igor Nikonov
d9f5c56c41 Fix compilation errors after fixing merge conflicts 2022-08-11 12:51:45 +00:00
Igor Nikonov
75f6fcfa70 Merge remote-tracking branch 'origin/master' into skipping_sorting_step 2022-08-11 12:35:55 +00:00
Igor Nikonov
70b52f7cb9 Fix test, review comments 2022-08-09 16:29:56 +00:00
Igor Nikonov
366ead3828 Consider aliases when checking if sorting order is preserved by
expression
2022-08-09 11:27:17 +00:00
Maksim Kita
c030fd05e7 ActionsDAG rename index to outputs 2022-08-08 18:01:32 +02:00
Igor Nikonov
86c5280db3 Merge remote-tracking branch 'origin/master' into skipping_sorting_step 2022-08-08 12:43:06 +00:00
Igor Nikonov
6572a447fa Check if sorting order is preserved for FilterStep 2022-08-08 12:42:10 +00:00
Igor Nikonov
988ce29e9e Check if expression step violates sorting correctly 2022-08-06 22:37:14 +00:00
Igor Nikonov
f5f6ada69b ActionsDAG check is not dependent on sort description 2022-08-05 11:00:18 +00:00
Igor Nikonov
a70c47f780 EXPLAIN PLAN sortmode options
+ ActionsDAG fixes
2022-08-04 22:02:53 +00:00
Igor Nikonov
0a659f5ab8 Analyze ActionsDAG in ExpressionStep
+ check if sorting order can be kept from prevous step
+ EXPLAIN PLAN header=1 contains Sort Mode and Sort Description for each step
+ some tests
+ fix some review comments
2022-08-04 19:30:25 +00:00
Nikolai Kochetov
658a269d56
Merge branch 'master' into use-dag-in-key-condition 2022-08-04 16:18:40 +02:00
Nikolai Kochetov
77c143aa23 Fix extra column after ARRAY JOIN optimization. 2022-08-01 17:56:27 +00:00
Nikolai Kochetov
b70be40804
Merge branch 'master' into use-dag-in-key-condition 2022-07-25 14:30:22 +02:00
Alexander Tokmakov
a8da5d96fc remove some dead and commented code 2022-07-21 15:05:48 +02:00
Nikolai Kochetov
eaeb30a71a Merge branch 'master' into use-dag-in-key-condition 2022-07-19 18:39:52 +02:00
Nikita Taranov
2487ba7f00
Move updateInputStream to ITransformingStep (#37393) 2022-06-27 13:16:52 +02:00
zhanglistar
ca67e67a74 Fix a typo 2022-05-27 15:52:04 +08:00
Amos Bird
76ddb39d02
refactor format 2022-05-24 12:09:00 +08:00
Robert Schulze
b6d7367538
Merge remote-tracking branch 'origin/master' into erase_if3
Conflicts:
- Interpreters/ActionsDAG.cpp
2022-04-20 10:02:59 +02:00
Robert Schulze
118e94523c
Activate clang-tidy warning "readability-container-contains"
This check suggests replacing <Container>.count() by
<Container>.contains() which is more speaking and in case of
multimaps/multisets also faster.
2022-04-18 23:53:11 +02:00
Robert Schulze
1e1df8e101
Replace remove-erase idiom by C++20 erase()/erase_if()
- makes the code less verbose while being as efficient
2022-04-17 12:04:47 +02:00
Nickita Taranov
698a984c07 throw if sorting column not found 2022-04-04 14:33:58 +02:00
Nickita Taranov
b095838444 stash 2022-04-04 14:33:57 +02:00
Nickita Taranov
4c51329ad6 stash 2022-04-04 14:33:57 +02:00
Maksim Kita
b1a956c5f1 clang-tidy check performance-move-const-arg fix 2022-03-02 18:15:27 +00:00
vdimir
ee09ec4dd1
Apply join_use_nulls on types before join 2022-02-11 15:56:45 +00:00
Amos Bird
52aabf98fe
Revise and add more comments 2022-02-06 16:53:54 +08:00
Maksim Kita
5ef83deaa6 Update sort to pdqsort 2022-01-30 19:49:48 +00:00
Azat Khuzhin
dd7bffcaf9 ActionsDAG: add allow_constant_folding flag for removeUnusedActions() 2021-10-26 22:56:44 +03:00
Azat Khuzhin
248b689067 ActionsDag: add allow_remove_inputs for other variants of removeUnusedActions() 2021-10-26 22:56:44 +03:00
Nikolai Kochetov
122d39cbba
Fix missing condition in pushed down predicate. (#29625) 2021-10-04 17:50:03 +03:00
Mike Kot
8e9aacadd1 Initial: replacing hardcoded toString for enums with magic_enum 2021-09-06 16:24:03 +02:00
Nikolai Kochetov
98eb619b4b
Merge pull request #23367 from Avogar/short-circuit
Implement short circuit function evaluation
2021-08-17 12:36:07 +03:00
vdimir
db187c6b2d
Fix aliased_column_distributed_bug 2021-08-16 17:26:14 +03:00
mergify[bot]
319e5af6eb
Merge branch 'master' into short-circuit 2021-08-13 13:01:46 +00:00
kssenii
dcc6f597dc Move templates from FunctionsConvertion 2021-08-11 19:09:51 +00:00
kssenii
7555fc19fd Revert "Move some templates"
This reverts commit 7f247becca.
2021-08-11 18:49:25 +00:00