Commit Graph

52 Commits

Author SHA1 Message Date
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
38374ba07b fix join->getNonJoinedBlocks 2021-09-28 14:11:30 +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
3766d47f31 ORs in JOINs 2021-09-28 14:11:28 +03:00
Nikolai Kochetov
a790d391c0 Merge branch 'master' into rewrite-pushing-to-views 2021-09-20 19:43:15 +03:00
Nikolai Kochetov
341553febd Fix build. 2021-09-16 20:40:42 +03:00
Nikolai Kochetov
b997214620 Rename QueryPipeline to QueryPipelineBuilder. 2021-09-14 20:48:18 +03:00
vdimir
1fdbb9509f
Add additional checkTypesOfKeys to JoiningTransform::transformHeader 2021-09-14 11:03:22 +03:00
vdimir
2dfbbe364b
Do not use BlockInputStream for NonJoined 2021-08-17 16:30:01 +03:00
vdimir
9d8178d04c
Refactor NotJoined pt2: rename classes, get rig of inheritance 2021-08-17 13:32:16 +03:00
vdimir
afa748c717
Refactor NotJoined pt1 2021-08-17 13:32:16 +03:00
vdimir
d53ade572e
Fix non joined stream structure 2021-08-06 14:54:04 +03:00
Nikolai Kochetov
52cc98e9c7
Update MergeJoin.cpp 2021-07-23 13:55:28 +03:00
Nikolai Kochetov
80e0e24448 Fix unit test and style. 2021-07-23 12:29:53 +03:00
Nikolai Kochetov
f56a45155f Merge branch 'master' into remove-more-and--more-streams 2021-07-22 19:10:39 +03:00
Nikolai Kochetov
fd754430eb Remove more streams. 2021-07-22 19:05:52 +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
Vladimir
c8ead44c23
Merge pull request #26374 from vdimir/infinite-pmj-fix 2021-07-16 09:50:44 +03:00
vdimir
cf77a3e05a
Fix infine non joined block stream in merge join 2021-07-15 18:22:46 +03:00
vdimir
b49e37aa07
Rewrite join totals, fix block structure mismatch 2021-07-14 13:02:23 +03:00
vdimir
80466427ad
Correct cardinality in MergeJoin (same as in input) 2021-05-17 14:18:03 +03:00
vdimir
be966f0e8c
Revert "Try to not remove lowcard in merge join"
This reverts commit 35bbbd05b6.
2021-05-15 14:26:59 +03:00
vdimir
35bbbd05b6
Try to not remove lowcard in merge join 2021-05-14 15:10:56 +03:00
alexey-milovidov
840ecb5e99
Update MergeJoin.cpp 2021-04-02 21:07:11 +03:00
vdimir
c8f51998ba
Remove LowCardinality from right block sample in MergeJoin 2021-04-02 17:51:02 +03:00
vdimir
8cd841c4ac
Handle lowcardinality block in MergeJoin extractMinMax 2021-04-02 16:55:42 +03:00
vdimir
932286df1f
Convert columns to nullable for totals in join 2021-02-26 16:32:34 +03:00
Nikolai Kochetov
b0c324227d Remove comment. 2021-01-26 15:39:55 +03:00
Nikolai Kochetov
87246ea91b Fix header for MergeJoin with constants. 2021-01-26 15:37:42 +03:00
vdimir
06d0252e76
Use IDataType::insertDefaultInto for inserting default values in join 2021-01-21 17:23:58 +03:00
vdimir
2f11fdf4df
Fix default value in join types with non-zero default (close #18197) 2021-01-21 16:49:44 +03:00
Nikolai Kochetov
6defcbb662
Merge branch 'master' into optimize-data-on-insert 2020-12-15 16:50:42 +03:00
Pavel Kruglov
c8c543ca94 Add throwing exceptions 2020-12-09 18:07:58 +03:00
Pavel Kruglov
4b58528b9e Rename getPos to getRow, change mergeBlock, pass setting instead of context 2020-12-04 19:25:30 +03:00
Azat Khuzhin
ccd794a676 Add remerge_sort_lowered_memory_bytes_ratio setting
Sometimes default ratio is not good enough (2), since it depends on lots
of factors:
- size of LIMIT
- max_memory_usage
- ...

So add a separate setting for it.

But note that it make sense to set
remerge_sort_lowered_memory_bytes_ratio only in range (1, 2]

Since <= 1 will just use more CPU, and > 2 will use more RAM and will
unlikely be faster.
2020-11-29 21:16:42 +03:00
Pavel Kruglov
8d5e0784d3 Add setting optimize_on_insert 2020-11-12 23:37:23 +03:00
Alexey Milovidov
5b482f4191 Cleanups 2020-10-10 19:31:10 +03:00
Artem Zuikov
2280482530
Keep LowCardinality in MergeJoin left key result type (#15088) 2020-09-22 13:16:22 +03:00
Nikolai Kochetov
9b67cd9faf Merge branch 'master' into refactor-pipes-3 2020-08-10 10:50:17 +03:00
Alexey Milovidov
12f66fa82c Fix 99% of typos 2020-08-08 04:01:47 +03:00
Nikolai Kochetov
9385f3de0e Refactor Pipe [part 4]. 2020-08-04 16:06:59 +03:00
Artem Zuikov
6b26842ce5
RIGHT and FULL JOIN for MergeJoin (#12118) 2020-07-10 21:10:06 +03:00
Artem Zuikov
29178e26da
fix low card types in merge join (#12035) 2020-06-30 14:13:43 +03:00
Artem Zuikov
857d84bf7c
Buffer left blocks optimisation for MergeJoin (#10601) 2020-06-16 23:13:18 +03:00
Nikolai Kochetov
45a1db7a80 Try fix tets. 2020-06-02 08:16:45 +03:00
Nikolai Kochetov
325393d340 Try fix build. 2020-06-01 19:58:36 +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