Skip to content

refactor(core)!: remove deprecated Join.JoinType.SEMI/ANTI#1006

Open
nielspardon wants to merge 1 commit into
substrait-io:mainfrom
nielspardon:remove-deprecated-join-types
Open

refactor(core)!: remove deprecated Join.JoinType.SEMI/ANTI#1006
nielspardon wants to merge 1 commit into
substrait-io:mainfrom
nielspardon:remove-deprecated-join-types

Conversation

@nielspardon

Copy link
Copy Markdown
Member

Summary

Removes the two long-deprecated Join.JoinType constants, SEMI and ANTI. They were exact aliases of LEFT_SEMI / LEFT_ANTI — same proto value (JOIN_TYPE_LEFT_SEMI / JOIN_TYPE_LEFT_ANTI) and the same result at every usage site — kept only for backward compatibility and ordered last in the enum so fromProto() resolved the canonical LEFT_* variant.

Because each was redundant with its LEFT_* neighbor, this is pure deletion with no behavior change on any surviving path:

  • core Join.java — drop the SEMI/ANTI constants and the two dead case labels in getRightTypes() (the adjacent LEFT_SEMI/LEFT_ANTI cases already cover them). fromProto() needs no change: the proto values now resolve straight to LEFT_SEMI / LEFT_ANTI.
  • isthmus SubstraitRelNodeConverter — drop the two if branches in asJoinRelType(); the LEFT_SEMI/LEFT_ANTI branches already return the same JoinRelType.
  • spark ToLogicalPlan — drop the two case arms; the LEFT_* arms already map to LeftSemi / LeftAnti.

Breaking change

Join.JoinType.SEMI and Join.JoinType.ANTI are removed. Downstream code should use Join.JoinType.LEFT_SEMI and Join.JoinType.LEFT_ANTI instead.

Verification

  • ./gradlew :core:compileJava :isthmus:compileJava :spark:spark-3.5_2.12:compileScala :spark:spark-4.0_2.13:compileScala — all compile (both Scala 2.12 and 2.13).
  • ./gradlew :core:test :isthmus:test — pass.
  • ./gradlew :core:check :isthmus:check — PMD + javadoc doclint pass.

🤖 Generated with AI

These constants were exact aliases of LEFT_SEMI/LEFT_ANTI (same proto
value, same mapping at every usage site) and have been deprecated for a
while. Remove them along with their now-redundant handling in the isthmus
Calcite converter and the Spark ToLogicalPlan converter, where the LEFT_*
variants already produce identical results.

BREAKING CHANGE: Join.JoinType.SEMI and Join.JoinType.ANTI are removed.
Use Join.JoinType.LEFT_SEMI and Join.JoinType.LEFT_ANTI instead.
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.

1 participant