Skip to content

Conversation

@yew1eb
Copy link
Contributor

@yew1eb yew1eb commented Jan 10, 2026

Which issue does this PR close?

Closes #1873

Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

How was this patch tested?

@github-actions github-actions bot added the spark label Jan 10, 2026
@yew1eb yew1eb force-pushed the AURON_1873 branch 3 times, most recently from fea0cd0 to a396fca Compare January 10, 2026 13:40
@yew1eb yew1eb changed the title [AURON #1873] Add unified JoinBuildSide abstraction for cross-spark-version compatibility [AURON #1873] Add unified join BuildSide abstraction for cross-spark-version compatibility Jan 10, 2026
@yew1eb yew1eb force-pushed the AURON_1873 branch 12 times, most recently from 16b9c15 to 09ff783 Compare January 12, 2026 07:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a unified JoinBuildSide abstraction to support cross-Spark-version compatibility by consolidating multiple Spark-version-specific build side types (BuildSide, BroadcastSide, org.apache.spark.sql.execution.joins.BuildSide, org.apache.spark.sql.catalyst.optimizer.BuildSide) into a single abstraction.

Changes:

  • Created a new JoinBuildSides object containing a sealed trait JoinBuildSide with JoinBuildLeft and JoinBuildRight case objects
  • Removed duplicate build side type definitions from NativeShuffledHashJoinBase and NativeBroadcastJoinBase
  • Added getJoinBuildSide method to Shims with version-specific implementations to convert Spark's build side types to the unified abstraction

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
JoinBuildSides.scala New file defining the unified JoinBuildSide trait and its implementations
NativeShuffledHashJoinBase.scala Removed local BuildSide definitions, updated to use unified JoinBuildSide
NativeBroadcastJoinBase.scala Removed local BroadcastSide definitions, updated to use unified JoinBuildSide
Shims.scala Added abstract getJoinBuildSide method and updated method signatures to use JoinBuildSide
AuronConverters.scala Simplified join conversion logic by using new getJoinBuildSide shim method, removed unnecessary imports and pattern matching
AuronConvertStrategy.scala Updated joinSmallerSideTag type from BuildSide to JoinBuildSide
NativeShuffledHashJoinExecProvider.scala Updated imports and conversions to use unified JoinBuildSide
NativeBroadcastJoinExec.scala Updated imports and conversions to use unified JoinBuildSide
ShimsImpl.scala Implemented getJoinBuildSide with version-specific logic for Spark 3.0 and 3.1+

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add unified JoinBuildSide abstraction for cross-spark-version compatibility

2 participants