Commit Graph

119 Commits

Author SHA1 Message Date
Ilya Golshtein
8057e052a6 crash fix, style fixes, ASTs moved out of TableJoin in ORs in JOIN 2021-09-28 14:11:32 +03:00
Ilya Golshtein
637ff19f79 optimizeDisjuncts in ORs in JOIN 2021-09-28 14:11:31 +03:00
vdimir
f8e8f6da14 Use table_join->getAllNames in HashJoin.cpp 2021-09-28 14:11:31 +03:00
vdimir
71b6c9414c Minor changes related to JOIN ON ORs 2021-09-28 14:11:31 +03:00
Ilya Golshtein
300eb5098d fix rebase collisions in ORs in JOIN 2021-09-28 14:11:31 +03:00
vdimir
0a9a028c6f fix 2021-09-28 14:11:31 +03:00
vdimir
46187a73ee wip 2021-09-28 14:11:31 +03:00
vdimir
8e2637aab2 Store all related to one join disjunct in JoinOnClause, pt1 2021-09-28 14:11:31 +03:00
vdimir
a8e1de51e1 fix TableJoin::leftToRightKeyRemap 2021-09-28 14:11:30 +03:00
Ilya Golshtein
d0990e270a making gcc happy, minor improvements in ORs in JOIN 2021-09-28 14:11:29 +03:00
Ilya Golshtein
b03415bd0e Fixed other bug if OR together with filter conditions 2021-09-28 14:11:29 +03:00
Ilya Golshtein
f94b2cba2d Fixed bug if OR together with filter conditions, some comments 2021-09-28 14:11:29 +03:00
Ilya Golshtein
db50015eed review changes 1 - ASTPtr, some comments 2021-09-28 14:11:29 +03:00
Ilya Golshtein
3766d47f31 ORs in JOINs 2021-09-28 14:11:28 +03:00
vdimir
32e8c11cab
Check left join strictness in tryInitDictJoin 2021-09-14 15:04:45 +03:00
Anton Popov
4c388e3d84 Merge remote-tracking branch 'origin/sparse-serialization' into HEAD 2021-09-09 14:10:16 +03:00
vdimir
bf9cb8482b
Revert "Add option to getMostSubtype/getLeastSupertype to not throw exception"
This reverts commit c4654d6b45.
2021-09-01 15:08:59 +03:00
vdimir
ac17c0c817
Minor style src/Interpreters/TableJoin.cpp 2021-09-01 15:08:58 +03:00
vdimir
2a1c7d7336
fix typo in tryInitDictJoin 2021-09-01 15:05:48 +03:00
vdimir
450e49fd28
Throw type mismatch exception from inferJoinKeyCommonType 2021-09-01 15:05:48 +03:00
vdimir
df873866c9
Don't store converting actions in TableJoin 2021-09-01 15:05:48 +03:00
vdimir
ed8c156190
Clean up TableJoin storage join 2021-09-01 15:05:47 +03:00
vdimir
13bf141e1d
Fix storage_join type inference 2021-09-01 15:05:47 +03:00
vdimir
c4ffc2879f
Perform join type inference for USING at ExpressionAnalyzer instead of TreeRewriter 2021-09-01 15:05:47 +03:00
vdimir
34b9bd7d33
Fix build: missing argument in inferJoinKeyCommonType 2021-08-31 15:27:44 +03:00
vdimir
30e112d6a6
Do not convert join key columns for storage/dict join 2021-08-31 15:27:43 +03:00
vdimir
c4654d6b45
Add option to getMostSubtype/getLeastSupertype to not throw exception 2021-08-31 15:27:25 +03:00
Anton Popov
61239343e3 Merge remote-tracking branch 'origin/sparse-serialization' into HEAD 2021-08-20 16:33:30 +03:00
Kruglov Pavel
7fe7103e53
Merge pull request #27299 from vdimir/issue-27091-v2
Refactor NotJoined
2021-08-19 19:16:32 +03:00
vdimir
afa748c717
Refactor NotJoined pt1 2021-08-17 13:32:16 +03:00
Anton Popov
e36736b50c Merge remote-tracking branch 'origin/sparse-serialization' into HEAD 2021-08-02 22:52:02 +03:00
vdimir
a0ed37e04e
Ignore constness in ExpressionActionsChain::JoinStep
Fix 01064_pm_all_join_const_and_nullable with bad cast check
2021-07-28 16:35:02 +03:00
Vladimir
576b407804
Support conditions in JOIN ON section (#24420)
* Try to enforce table identification in CollectJoinOnKeysMatcher

* Support filtering conditions in JOIN ON for HashJoin

* Correct handle non equi join

* Update test 00878_join_unexpected_results

* Join on filters calculated as one row before join

* Do not lookup key in hash join if condition for row is not hold

* better

* Support filtering conditions in JOIN ON for MergeJoin

* Support Nullable mask in JOIN ON section

* Fix style in Interpreters/TableJoin.cpp

* Change return type of getColumnAsMask in join_common to ColumnPtr

* Handle Nullable(Nothing) type in JOIN ON section, add test cases

* Fix type cast JoinCommon::getColumnAsMask

* Check type if conditions in JOIN ON section, support functions

* Update tests with JOIN ON

* Style changes, add comments for conditions in JOIN ON section

* Add test cases for join on condtions

* JOIN ON key1 = key2 AND (cond1 OR cond2)

* Remove CollectJoinOnKeysVisitor has_join_keys

* Add test cases for join on nullable/lc conditions

* Fix style

* Change error code 48 to 403 in join on tests

* Fix whitespace
2021-07-21 20:03:33 +03:00
Anton Popov
7e9b13199a dynamic columns: improve performance of parsing json data 2021-06-12 18:13:13 +03:00
vdimir
cb89a2be97
StorageJoin clashing column name with JOIN ON 2021-05-10 17:56:12 +03:00
vdimir
8197e1c0c1
Add qualified names for right columns for storage join 2021-04-29 17:30:02 +03:00
vdimir
826296c799
Convert columns to LC(Nullable(T)) in join 2021-04-17 22:03:32 +03:00
vdimir
cc770ad441
Fixes for join key inferring
Fix error with wrong right column type in aggregate with nulls

Add logging inferred type for join keys

Add test for join_use_nulls
2021-03-08 17:21:50 +03:00
vdimir
5c18bbeb43
Clean converting-related fields in TableJoin::resetCollected 2021-03-05 17:41:39 +03:00
vdimir
b0f6f30298
Revert "Refactor join: make IJoin implementations independent from TableJoin"
This reverts commit e6406c3f4c.
2021-03-05 17:34:43 +03:00
vdimir
e6406c3f4c
Refactor join: make IJoin implementations independent from TableJoin 2021-03-05 16:38:49 +03:00
vdimir
1e37d7c84f
Add comments to TableJoin::inferJoinKeyCommonType 2021-02-19 14:28:41 +03:00
vdimir
456414beea
Fix converting join on keys, move actions into TableJoin 2021-02-19 14:28:41 +03:00
vdimir
3a7eddcf3a
Remove addRequiredLeftColumn, some tests for join on different types 2021-02-19 14:28:40 +03:00
vdimir
a378bd08aa
Perform implicit type conversion for JOIN ON keys 2021-02-19 14:28:40 +03:00
vdimir
4203dd5e38
Give up on name mismatch in inferJoinKeyCommonType 2021-02-19 14:28:39 +03:00
vdimir
435f63f42b
Calculate common type for join using in TreeRewriter
Split before_join and converting_join_columns dags

Add more detailed comments for column type conversion for join using
2021-02-19 14:28:32 +03:00
vdimir
f5b98015a8
Fix converting right key type in join using 2021-02-19 14:24:33 +03:00
Azat Khuzhin
cbeda6c60e Fix LOGICAL_ERROR for join_use_nulls=1 when JOIN contains const from SELECT 2021-02-13 11:05:25 +03:00
Nikita Mikhailov
ded35fe5b0 delete 2021-01-13 18:15:32 +03:00
Nikita Mikhailov
e1afae4492 just test 2021-01-13 00:49:11 +03:00
Alexey Milovidov
c7618ea99e Remove obsolete code from JOIN 2020-11-04 14:02:12 +03:00
Nikolai Kochetov
07e835381c Fix build. 2020-09-08 14:06:36 +03:00
Nikolai Kochetov
39aad9979a Remove Join from ExpressionActions. 2020-09-08 13:40:53 +03:00
Gleb Novikov
aac97957ce Fixed integration test_tmp_policy 2020-07-26 21:27:36 +03:00
Gleb Novikov
7f5b6fba78 Generic volume is coming...
1. SingleDiskVolume for temporary volumes
2. Generic VolumePtr in StoragePolicies
3. Removed max_data_part_size in system.storage_policies, added volume_type
2020-07-26 21:27:36 +03:00
Artem Zuikov
e8057387cb
Fix crash in 'JOIN dict ON expr(dict_key) = k' (#12458) 2020-07-14 17:06:11 +03:00
Artem Zuikov
6b26842ce5
RIGHT and FULL JOIN for MergeJoin (#12118) 2020-07-10 21:10:06 +03:00
Artem Zuikov
857d84bf7c
Buffer left blocks optimisation for MergeJoin (#10601) 2020-06-16 23:13:18 +03:00
Artem Zuikov
9b38324028
fix JOIN with PREWHERE with second analyze() (#11051) 2020-05-20 12:29:23 +03:00
Gleb Novikov
c637d99e07 Volumes and storages refactoring:
1. Moved Volume to separate file
  2. Created IVolume interface and implemented current behaviour in implementation of new interface — VolumeJBOD
  3. Replaced all old volume usages with new VolumeJBOD. Where it is unnecessary to have JBOD — left just IVolume.
  4. Removed old Volume completely
  5. Moved StoragePolicy to separated files
  6. Moved DiskSelector to separated files
  7. Removed DiskSpaceMonitor file
2020-05-04 23:15:38 +03:00
Artem Zuikov
e34a9457e6
Improve right table insert for Partial MergeJoin on disk (#10467) 2020-04-28 16:55:50 +03:00
Alexey Milovidov
0a7edce036 Checkpoint 2020-04-22 09:01:33 +03:00
Artem Zuikov
6106b2bfc7 Merge branch 'master' into joins 2020-04-13 20:37:27 +03:00
Artem Zuikov
0b7ae2c2bf working version 2020-04-13 20:03:11 +03:00
Alexey Milovidov
ec4889e43e Remove debug output 2020-04-12 19:21:07 +03:00
Alexey Milovidov
6de712f0f4 Fix joined constants, development 2020-04-12 19:21:07 +03:00
Artem Zuikov
0cd49d746f several fixes 2020-04-09 23:00:57 +03:00
Artem Zuikov
8297683972
renames: AnalyzedJoin -> TableJoin, Join -> HashJoin (#10065) 2020-04-07 12:48:47 +03:00