ibis
ibis copied to clipboard
feat(flink): support semi/anti window join
Description of changes
Aims to close https://github.com/ibis-project/ibis/issues/8710.
Notes to reviewers:
- Adds
AntiWindowJoinandSemiWindowJoinsqlglot expressions. Would there be a way to avoid these? I could not find an existingsqlglotexpression that we can use. - Adds two new entries in
JoinKind:anti_windowandsemi_window. Added aTODOwith a question on if we can detect a join to be window join by looking forWindowingTVFin the expression tress forleftandright. However, that "auto-window-join-detect" might lead to unexpected behavior, hence chose to make window-joins explicit with newJoinKindentries.
Edit: Got feedback from @kszucs over Zulip, and refactored the previously added ops and expressions mentioned above. Now instead, JoinChain is re-written with Filter and ExistsSubquery by FlinkCompiler.