Skip to content

[FLINK-37973][table-planner] Add support for right joins to multijoin operator #26810

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

SteveStevenpoor
Copy link
Contributor

What is the purpose of the change

The newly introduced MultiJoin operator currently does not support right joins. Since all right joins are converted to left joins, we need to enable the FlinkRightToLeftJoinRule in the MultiJoin rule set and handle left joins using projections.

Brief change log

  • Introduced FlinkOrderPreservingProjection, a wrapper around the original projection. This class is used to define projections created by FlinkRightToLeftJoinRule

  • Patched JoinToMultiJoinRule to support FlinkOrderPreservingProjection (i. e. right joins).

  • Other minor adjustments related to JoinToMultiJoinRule.

Verifying this change

  • Added the following test cases to MultiJoinTest:
    • testThreeWayRightInnerJoin
    • testThreeWayRightRightJoin
    • testThreeWayInnerRightJoin

TODO: Semantic and restore tests will be added once StreamExecMultiJoin is fixed to support right joins.

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? not applicable

@flinkbot
Copy link
Collaborator

flinkbot commented Jul 18, 2025

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants