RIGHT and FULL JOIN for MergeJoin#12118
Conversation
|
@4ertus2 Please, look at perf test. Why can't we run test |
Probably I should show these messages somewhere... |
|
This PR adds RIGHT JOIN support for partial merge join so it's normal that the version without it cannot run the query with this JOIN. |
…-user-authentication * commit 'ceac649c01b0158090cd271776f3219f5e7ff57c': (75 commits) [docs] split misc statements (ClickHouse#12403) Update 00405_pretty_formats.reference Update PrettyCompactBlockOutputFormat.cpp Update PrettyBlockOutputFormat.cpp Update DataTypeNullable.cpp Update 01383_remote_ambiguous_column_shard.sql add output_format_pretty_grid_charset setting in docs add setting output_format_pretty_grid_charset Added a test for ClickHouse#11135 Update index.md RIGHT and FULL JOIN for MergeJoin (ClickHouse#12118) Update MergeTreeIndexFullText.cpp restart the tests [docs] add syntax highlight (ClickHouse#12398) query fuzzer Fix std::bad_typeid when JSON functions called with argument of wrong type. Allow typeid_cast() to cast nullptr to nullptr. fix another context-related segfault [security docs] actually, only admins can create advisories query fuzzer ...
I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Support RIGHT and FULL JOIN with
set join_algorithm=partial_merge. Only ALL strictness is supported (ANY, SEMI, ANTI, ASOF are not).Detailed description / Documentation draft:
In equi-join phase add lazy used rows bitmaps for each right block in MergeJoin (in memory, use ~1 bit per row). After equi-join phase add special stream that append not-joined rows. There's wome common logic extracted from HashJoin additional stream into common NonJoined class and reused.