Commit Graph

478 Commits

Author SHA1 Message Date
Antonio Andelic
41e8426f27 Small fixes 2022-12-07 11:59:55 +00:00
Antonio Andelic
23c040d359 Finish optimize_if_transform_strings_to_enum 2022-12-07 11:44:46 +00:00
Antonio Andelic
ec17e28a29 Add classes for new pass 2022-12-07 11:44:46 +00:00
Maksim Kita
13d74b4f2f Analyzer Context refactoring 2022-12-06 10:44:38 +01:00
Maksim Kita
cd4dc402dc
Merge pull request #43893 from kitaisreal/analyzer-cte-resolution-fix
Analyzer CTE resolution fix
2022-12-05 19:47:04 +03:00
Dmitry Novik
f2db5cda18 Fix style check 2022-12-05 14:41:37 +00:00
Maksim Kita
e805740710 Fixed code review issues 2022-12-05 10:51:28 +01:00
Dmitry Novik
c3207bfc0d Fix FunctionNode::cloneImpl and add function validation 2022-12-02 19:15:27 +00:00
Dmitry Novik
4b74337188 Avoid dynamic_cast 2022-12-02 19:15:26 +00:00
Dmitry Novik
15b8c48ca9 Cleanup code 2022-12-02 19:15:26 +00:00
Dmitry Novik
48e8aeac01 Clean up code 2022-12-02 19:15:26 +00:00
Dmitry Novik
2c70dbc76a Refactor FunctionNode 2022-12-02 19:15:26 +00:00
Maksim Kita
f1c44d593a Analyzer CTE resolution fix 2022-12-02 18:20:29 +01:00
Duc Canh Le
3b9c590a12 Merge branch 'master' into ch_canh_fix_normalize 2022-12-02 17:59:21 +08:00
Duc Canh Le
518058b92e fix some bad logics in ast level optimization 2022-12-02 17:56:23 +08:00
Kruglov Pavel
ef8781e5ff
Merge branch 'master' into fix-sum-if 2022-12-01 12:49:10 +01:00
Maksim Kita
ec15d52642 FuseFunctionsPass small fix 2022-11-30 20:40:12 +01:00
Maksim Kita
16359d42be
Merge pull request #43793 from kitaisreal/analyzer-constant-node-refactoring
Analyzer ConstantNode refactoring
2022-11-30 20:06:27 +03:00
Maksim Kita
0a30d3da1b
Merge pull request #43768 from kitaisreal/analyzer-compound-expression-crash-fix
Analyzer compound expression crash fix
2022-11-30 18:43:29 +03:00
Nikolay Degterinsky
1a090e9901 Better implementation 2022-11-30 02:23:26 +00:00
Nikolay Degterinsky
72acedfba6 Merge remote-tracking branch 'upstream/master' into better_asterisk_parser 2022-11-29 22:48:12 +00:00
avogar
c0c976b850 Better handling of NULL in aggregate combinators, fix possible segfault/logical error while using 2022-11-29 18:19:00 +00:00
Maksim Kita
a2060fae3f Fixed style check 2022-11-29 12:47:31 +01:00
Maksim Kita
074e5ceb67 Analyzer ConstantNode refactoring 2022-11-29 12:47:31 +01:00
Vladimir C
7b7cfb3a0c
Merge pull request #43217 from ClickHouse/vdimir/fuse-followup-fix 2022-11-29 10:50:10 +01:00
Maksim Kita
e3cab4fb07 Analyzer compound expression crash fix 2022-11-28 22:53:02 +01:00
Vladimir C
db2aad6f59
Apply suggestions from code review
Co-authored-by: Dmitry Novik <n0vik@clickhouse.com>
2022-11-28 15:47:32 +01:00
Maksim Kita
c46a659ad9
Merge pull request #43543 from kitaisreal/analyzer-sum-if-to-count-if-fix
Analyzer SumIfToCountIfPass fix
2022-11-25 21:02:20 +03:00
Nikolai Kochetov
8d3ccf1c52
Merge pull request #43636 from ClickHouse/fix-43478
Fix #43478
2022-11-25 14:49:41 +01:00
Maksim Kita
fbb404a4c6
Merge pull request #43547 from kitaisreal/analyzer-uniq-injective-functions-elimination-pass-fix
Analyzer UniqInjectiveFunctionsEliminationPass
2022-11-25 13:14:33 +03:00
Smita Kulkarni
60ec65eb21 Fixed style check issues - Support scalar subqueries cache 2022-11-25 07:35:10 +01:00
Smita Kulkarni
aa35df7098 Support scalar subqueries cache
Implementation:
* Added a map with hash of the node (without alias) and the evaluated value to Context.
Testing:
* Added a test-case with new analyser in 02174_cte_scalar_cache.sql
2022-11-24 21:44:26 +01:00
Nikolai Kochetov
bb98a7b433 Fix #43478 2022-11-24 17:28:01 +00:00
vdimir
6241ed65e5
Fixes for FuseFunctionsPass 2022-11-23 15:32:02 +00:00
vdimir
5791d8d0af
FuseFunctionsPass: do not add same node into mapping twice 2022-11-23 15:30:27 +00:00
Maksim Kita
ee9a18f0d9 Analyzer table functions untuple fix 2022-11-23 16:03:06 +01:00
Maksim Kita
0bc3ff1ba3 Analyzer UniqInjectiveFunctionsEliminationPass 2022-11-23 14:55:34 +01:00
Maksim Kita
d2d44c5e54 Analyzer SumIfToCountIfPass fix 2022-11-23 14:55:12 +01:00
Maksim Kita
43a451d55e
Merge pull request #43321 from kitaisreal/analyzer-small-fixes
Analyzer small fixes
2022-11-23 13:19:32 +03:00
Maksim Kita
1e1492e480 Fixed build 2022-11-22 14:35:44 +01:00
Maksim Kita
04f597c29c Fixed style check 2022-11-22 11:14:55 +01:00
Maksim Kita
0fe17c2c7b Fixed code review issues 2022-11-22 11:14:55 +01:00
Maksim Kita
cdc2fb0b59 Analyzer small fixes 2022-11-22 11:14:55 +01:00
taofengliu
a529943d9f Merge remote-tracking branch 'upstream/master' into group_by_all 2022-11-19 21:11:23 +08:00
Dmitry Novik
40adaeef92 Fix aggregate functions optimization 2022-11-18 16:15:37 +00:00
Vitaly Baranov
a348332eab
Merge pull request #43227 from vitlibar/improve-masking-sensitive-info
Improve masking sensitive info
2022-11-18 15:37:50 +01:00
Vladimir C
2d265523bb
Update src/Analyzer/Passes/QueryAnalysisPass.cpp 2022-11-16 12:45:54 +01:00
Vladimir C
981e6e2c24
Update src/Analyzer/Passes/QueryAnalysisPass.cpp 2022-11-16 12:44:54 +01:00
Alexey Milovidov
1ec21e5890
Merge branch 'master' into group_by_all 2022-11-16 06:14:04 +01:00
Vitaly Baranov
8d72f75556 Make the password wiping an option of IAST::format(). 2022-11-16 01:35:06 +01:00
Dmitry Novik
a7ea30179e Optimize keys of GROUPING SETS 2022-11-15 16:56:45 +00:00
Dmitry Novik
b2eca5c703 Support optimize_group_by_function_keys on top of QueryTree 2022-11-15 16:42:21 +00:00
vdimir
d7c882951f
Fix nullptr dereference in collectScopeValidIdentifiersForTypoCorrection 2022-11-15 12:36:28 +00:00
Maksim Kita
a7f0a2255f Analyzer aggregation crash fix 2022-11-11 10:51:49 +01:00
Maksim Kita
057cef469d Fixed comments 2022-11-10 19:21:51 +01:00
Maksim Kita
9398b96dde Fixed style check 2022-11-10 19:21:51 +01:00
Maksim Kita
8adc4c8163 Updated tests 2022-11-10 19:21:51 +01:00
Maksim Kita
7fb3f8f7c5 Updated tests 2022-11-10 19:21:51 +01:00
Maksim Kita
a6d2069c2b Added compound types typo corrections 2022-11-10 19:21:51 +01:00
Maksim Kita
66683dd175 Added function typo corrections 2022-11-10 19:21:51 +01:00
Maksim Kita
c627251f9e Added tests 2022-11-10 19:21:51 +01:00
Maksim Kita
e220906c9e Analyzer added identifier typo corrections 2022-11-10 19:21:51 +01:00
Maksim Kita
8c333817e8
Merge pull request #42689 from ClickHouse/vdimir/identifier-resolver-fuse-sum
Support optimize_syntax_fuse_functions for sum/count/avg via analyzer
2022-11-10 13:05:12 +03:00
Maksim Kita
ba8e7fde3f
Merge pull request #43048 from kitaisreal/analyzer-array-join-with-join-improvements
Analyzer improve ARRAY JOIN with JOIN
2022-11-10 12:42:16 +03:00
Maksim Kita
5a8c62ee01 Analyzer improve aliases support for table expressions 2022-11-09 18:09:24 +01:00
vdimir
6ec2074d8a
Fix check for count arguments number in FuseFunctionsPass 2022-11-09 14:25:43 +00:00
vdimir
5f5fbcee0c
Style fixes for FuseFunctionsPass 2022-11-09 11:48:02 +00:00
vdimir
d6da9f53f2
quantiles function in FuseFunctionsPass 2022-11-09 11:47:59 +00:00
vdimir
f732c97cf6
fixes for FuseFunctionsPass 2022-11-09 11:47:46 +00:00
vdimir
5de29257e6
Restore 02244_issue_35598_fuse 2022-11-09 11:47:46 +00:00
vdimir
14e8daf078
revert removing fuse_sum_count ast optimization 2022-11-09 11:47:43 +00:00
vdimir
7daf5200f0
better code in FuseFunctionsPass.cpp 2022-11-09 11:47:17 +00:00
vdimir
97e7c505ad
Support optimize_syntax_fuse_functions for sum/count/avg via analyzer 2022-11-09 11:47:15 +00:00
Maksim Kita
e0f1fd93f3 Updated tests 2022-11-08 18:25:13 +01:00
Maksim Kita
4defe90d89
Merge pull request #42879 from ClickHouse/query-validation
Validate Query Tree in debug
2022-11-08 16:31:09 +03:00
Maksim Kita
583c65d377 Analyzer subquery in JOIN TREE with aggregation 2022-11-08 14:29:17 +01:00
Maksim Kita
3b3e27f22a Analyzer improve ARRAY JOIN with JOIN 2022-11-08 14:25:23 +01:00
Dmitry Novik
8fa5cae01a Fix style check 2022-11-07 14:11:02 +00:00
taofengliu
ac385ff29a remove unneeded code 2022-11-05 22:20:53 +08:00
Nikolay Degterinsky
c6ea55403e Merge remote-tracking branch 'upstream/master' into better_asterisk_parser 2022-11-04 22:37:59 +00:00
Dmitry Novik
a860b25249 Improve ValidationChecker readability 2022-11-02 15:24:09 +00:00
taofengliu
7a38115e81 fix fuzzer bug 2022-11-02 21:09:35 +08:00
Nikolay Degterinsky
88d815c63e Improve Asterisk and ColumnMatcher parser 2022-11-02 06:21:02 +00:00
Dmitry Novik
e06572cc27 Validate Query Tree in debug 2022-11-01 23:03:07 +00:00
taofengliu
c43dd96f14 Merge remote-tracking branch 'upstream/master' into group_by_all
# Conflicts:
#	src/Analyzer/QueryNode.h
2022-11-01 22:53:44 +08:00
Maksim Kita
27a72f096c
Merge pull request #42705 from kitaisreal/analyzer-small-improvements
Analyzer improve subqueries representation
2022-11-01 13:54:12 +03:00
taofengliu
d0767cab1d GROUP BY ALL in Analyzer 2022-11-01 16:18:56 +08:00
Maksim Kita
d760c78754 Fixed code review issues 2022-10-31 11:45:12 +01:00
Maksim Kita
275d076cb7 Fixed style check 2022-10-27 11:26:53 +02:00
Maksim Kita
5fcbc26800 OrderByLimitByDuplicateEliminationPass improve performance 2022-10-27 11:23:30 +02:00
Maksim Kita
6a0e3fc31d Subqueries remove unnecessary table expression modifiers 2022-10-26 17:19:29 +02:00
Maksim Kita
2b44a00fbc UNION node remove unnecessary union modes 2022-10-26 16:47:40 +02:00
Maksim Kita
a28d1f01fd Analyzer IQueryTreeNode remove getName method 2022-10-25 12:54:17 +02:00
Maksim Kita
d0e64eb15b Fixed tests 2022-10-24 16:14:05 +02:00
Maksim Kita
9a02d25c0b Fixed tests 2022-10-24 10:22:38 +02:00
Maksim Kita
3862dd96fe Fixed tests 2022-10-24 10:22:38 +02:00
Maksim Kita
d083200d65 Fixed code review issues 2022-10-24 10:22:38 +02:00
Maksim Kita
561d585100 Fixed tests 2022-10-24 10:22:38 +02:00
Maksim Kita
39b2d25a43 Added tests 2022-10-24 10:22:38 +02:00
Maksim Kita
90048ce75d Fixed code review issues 2022-10-24 10:22:38 +02:00
Maksim Kita
dbc0870eb5 Fixed tests 2022-10-24 10:22:38 +02:00
Maksim Kita
1410befbe1 Added AggregateFunctionsArithmeticOperationsPass 2022-10-24 10:22:38 +02:00
Maksim Kita
144b33c75d Fixed tests 2022-10-24 10:22:38 +02:00
Maksim Kita
852dd8c2bb Updated UnionNode documentation 2022-10-24 10:22:37 +02:00
Maksim Kita
8610feb06d Added UniqInjectiveFunctionsEliminationPass 2022-10-24 10:22:37 +02:00
Maksim Kita
fe3eda4c2b Added SumIfToCountIfPass 2022-10-24 10:22:37 +02:00
Maksim Kita
43ec5c830c Added FunctionToSubcolumnsPass 2022-10-24 10:22:37 +02:00
Maksim Kita
b50e2ce470 Added SETTINGS support 2022-10-24 10:22:37 +02:00
Maksim Kita
5a0298ea34 Fixed tests 2022-10-24 10:22:37 +02:00
Maksim Kita
da85af7e44 Added OrderByLimitByDuplicateEliminationPass 2022-10-24 10:22:37 +02:00
Maksim Kita
7851dfc324 Fixed tests 2022-10-24 10:22:37 +02:00
Maksim Kita
eba9607696 Analyzer move passes into separate folder 2022-10-24 10:22:37 +02:00
Maksim Kita
3a22e37691 Fix normalization of UNION inside DESCRIBE query 2022-10-24 10:22:37 +02:00
Maksim Kita
77ea9a11cd Fixed code review issues 2022-10-24 10:22:21 +02:00
Maksim Kita
6ec5474466 Updated IQueryTreeNode interface with weak pointers array 2022-10-24 10:22:21 +02:00
Maksim Kita
2f282eeec9 Updated InDepthQueryTreeVisitor implementation 2022-10-24 10:22:21 +02:00
Maksim Kita
49a129008b Fixed code review issues 2022-10-24 10:22:21 +02:00
Maksim Kita
239f1855aa Updated projection names implementation 2022-10-24 10:22:21 +02:00
Maksim Kita
048e776c48 Fixed tests 2022-10-24 10:22:21 +02:00
Maksim Kita
400de59a37 Fixed style check 2022-10-24 10:22:21 +02:00
Maksim Kita
86896b76c5 Fix GROUP BY validation for subqueries 2022-10-24 10:22:21 +02:00
Maksim Kita
0892f485bb Fix lambda tests 2022-10-24 10:22:21 +02:00
Maksim Kita
f2d801be2c Added CustomizeFunctionsPass 2022-10-24 10:22:21 +02:00
Maksim Kita
b1471bdedf Added CountDistinctPass 2022-10-24 10:22:21 +02:00
Maksim Kita
2aff015d29 Added NormalizeCountVariantsPass 2022-10-24 10:22:21 +02:00
Maksim Kita
54e2b6d28a Added EXISTS support 2022-10-24 10:22:21 +02:00
Maksim Kita
f5ee7e0bee Added IfChainToMultiIfPass 2022-10-24 10:22:21 +02:00
Maksim Kita
7c96c0afbd Added OrderByTupleEliminationPass 2022-10-24 10:22:21 +02:00
Maksim Kita
11324aa4b4 Added IfConstantConditionPass 2022-10-24 10:22:21 +02:00
Maksim Kita
3d5b209861 Added support for dictGet, joinGet functions to handle identifier as first argument 2022-10-24 10:22:21 +02:00
Maksim Kita
7f26bcc275 Added unqualified matcher support for JOIN with USING 2022-10-24 10:22:21 +02:00
Maksim Kita
b7d0fd6bae Added validation for subqueries and table functions in JOINs 2022-10-24 10:22:21 +02:00
Maksim Kita
d62bd792ac Added positional arguments support 2022-10-24 10:22:21 +02:00
Maksim Kita
a0d9251f3a Added ASOF join support 2022-10-24 10:22:21 +02:00
Maksim Kita
c7d51ca83d Rename InterpolateColumnNode into InterpolateNode 2022-10-24 10:22:20 +02:00
Maksim Kita
2b2a70082e Rename SortColumnNode into SortNode 2022-10-24 10:22:20 +02:00
Maksim Kita
fe84e871f8 Fixed build 2022-10-24 10:22:20 +02:00
Maksim Kita
8cadb1b318 Added WINDOW functions support 2022-10-24 10:22:20 +02:00
Maksim Kita
85ac02c9db Planner improve action names 2022-10-24 10:22:20 +02:00
Maksim Kita
890d9678b9 Fixed tests 2022-10-24 10:22:20 +02:00
Maksim Kita
4f68305dbe Fixed tests 2022-10-24 10:22:20 +02:00
Maksim Kita
ca93ee7479 Fixed tests 2022-10-24 10:22:20 +02:00
Maksim Kita
1844673aa8 Updated tests 2022-10-24 10:22:20 +02:00
Maksim Kita
fed146e198 Added SAMPLE BY support. Added SAMPLE BY, FINAL support for JOINS. 2022-10-24 10:22:20 +02:00
Maksim Kita
64c60718f8 Updated SORT COLUMN with fill 2022-10-24 10:22:20 +02:00
Maksim Kita
4110460bcd Added LIMIT BY support 2022-10-24 10:22:20 +02:00
Maksim Kita
81e4c67f17 Added INTERPOLATE support 2022-10-24 10:22:20 +02:00
Maksim Kita
504cb2b38f Added GROUPING function support 2022-10-24 10:22:20 +02:00
Maksim Kita
a5ce4d7823 Added GROUPING SETS support 2022-10-24 10:22:20 +02:00
Maksim Kita
63e48bd869 Added GROUP BY CUBE, ROLLUP, TOTALS support 2022-10-24 10:22:20 +02:00
Maksim Kita
80b77f4ccc Added HAVING support 2022-10-24 10:22:20 +02:00
Maksim Kita
c087eff470 Perform GROUP BY and aggregates validation during analysis stage 2022-10-24 10:22:20 +02:00
Maksim Kita
ea44b4be5e Added subquery_depth support 2022-10-24 10:22:20 +02:00
Maksim Kita
2b571004f3 Added support for projection names 2022-10-24 10:22:19 +02:00
Maksim Kita
efc2433347 Added IN function Set table support 2022-10-24 10:22:19 +02:00
Maksim Kita
1cbf96d165 Added LIMIT, OFFSET support 2022-10-24 10:22:19 +02:00
Maksim Kita
6aa166f366 Added ORDER BY support 2022-10-24 10:22:19 +02:00
Maksim Kita
03864790ad Added DISTINCT support 2022-10-24 10:22:19 +02:00
Maksim Kita
5c6d175028 Added GROUP BY support 2022-10-24 10:22:19 +02:00
Maksim Kita
2995fb7944 Added support for building sets for IN function 2022-10-24 10:22:19 +02:00
Maksim Kita
44ada63a97 Added Planner 2022-10-24 10:22:19 +02:00
Maksim Kita
85193ede42 Added UNION support 2022-10-24 10:22:19 +02:00
Maksim Kita
0da0019634 Added ARRAY JOIN support 2022-10-24 10:22:19 +02:00
Maksim Kita
89e5b09e7f Updated JOIN tests 2022-10-24 10:22:19 +02:00
Maksim Kita
b32092f24a JOIN support join_use_nulls, USING 2022-10-24 10:22:19 +02:00
Maksim Kita
40cb904a3d Added support for JOIN, ARRAY JOIN 2022-10-24 10:22:19 +02:00
Maksim Kita
1717d16fa4 Improved lambda matcher support 2022-10-24 10:22:19 +02:00
Maksim Kita
062e17052f Added support for IN function 2022-10-24 10:22:19 +02:00
Maksim Kita
a9e1f74696 Added support for grouping function 2022-10-24 10:22:19 +02:00
Maksim Kita
635bd44413 Added support for table functions 2022-10-24 10:22:18 +02:00
Maksim Kita
569fb36097 Added support for table ALIAS columns 2022-10-24 10:22:18 +02:00
Maksim Kita
603c4febc3 Update explain query tree representation 2022-10-24 10:22:18 +02:00
Maksim Kita
dd28b58864 Added support for subqueries 2022-10-24 10:22:18 +02:00
Maksim Kita
6a5276e45e Updated tests 2022-10-24 10:22:18 +02:00
Maksim Kita
2d61c45f94 Added support for multiple expressions with same alias 2022-10-24 10:22:18 +02:00
Maksim Kita
d835f70fdc Added support for STRICT column transformers 2022-10-24 10:22:18 +02:00
Maksim Kita
9d4c508b39 Added lambda tests 2022-10-24 10:22:18 +02:00
Maksim Kita
75885ce2e1 Added Analyzer 2022-10-24 10:22:18 +02:00