Skip to content

Add FlatSet for semi join#18770

Merged
dain merged 3 commits intotrinodb:masterfrom
dain:flat-channel-set
Aug 23, 2023
Merged

Add FlatSet for semi join#18770
dain merged 3 commits intotrinodb:masterfrom
dain:flat-channel-set

Conversation

@dain
Copy link
Copy Markdown
Member

@dain dain commented Aug 22, 2023

Description

Convert ChannelSet used in SemiJoinOperator from GroupByHash to the new FlatSet. The FlatSet is deisgned for the single write, multi-threaded read that ChannelSet uses. The FlatSet is much simpler as it only needs to hold a single column, and only needs to support a contains check, which vastly simplifies the implementation.

This effectivly splits the use cases of GroupByHash, so the contains methods can be used.

Fixes #18752

Release notes

(x) This is not user-visible or is docs only, and no release notes are required.

@dain dain requested review from electrum and martint August 22, 2023 05:29
@cla-bot cla-bot bot added the cla-signed label Aug 22, 2023
@dain dain force-pushed the flat-channel-set branch from f36e51c to 82c0810 Compare August 22, 2023 15:44
@dain dain force-pushed the flat-channel-set branch from 82c0810 to b857a1a Compare August 23, 2023 00:32
@dain dain merged commit 987209e into trinodb:master Aug 23, 2023
@dain dain deleted the flat-channel-set branch August 23, 2023 04:03
@github-actions github-actions bot added this to the 425 milestone Aug 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

Flaky io.trino.faulttolerant.hive.TestHiveFaultTolerantExecutionJoinQueries.testJoinWithMultipleInSubqueryClauses

3 participants