Skip to content

Refactor outputPartitioning for few execs and add tests #14229

Open

Description

@nartal1

Is your feature request related to a problem? Please describe.

This is a follow up issue based on review comments from PR - #14164

  1. Check if we need to add tests for these since we have added outputPartitiong.
GpuProjectExecLike: Fixed outputPartitioning to remap expressions through aliases (was missing, unlike Spark's PartitioningPreservingUnaryExecNode).
GpuBroadcastHashJoinExecBase: Added missing outputPartitioning override
GpuCustomShuffleReaderExec: Fixed outputPartitioning for AQE coalesced reads to preserve HashPartitioning (matching Spark's AQEShuffleReadExec).
GpuShuffledHashJoinExec: Added outputPartitioning override matching Spark's HashJoin trait behavior.
GpuShuffledSymmetricHashJoinExec: Added outputPartitioning override for InnerLike and FullOuter join types.
GpuShuffledAsymmetricHashJoinExec: Added outputPartitioning override for LeftOuter and RightOuter join types.
GpuBroadcastNestedLoopJoinExecBase: Added outputPartitioning override matching Spark's BroadcastNestedLoopJoinExec behavior.
  1. Evaluate if we have to make GpuProjectExecLike extend PartitioningPreservingUnaryExecNode instead of copying the code. - covered in Fix incorrect GPU partitioning and ordering metadata [databricks] #16620

  2. In GpuUnionExec, can we take the outputPartitioning of the cpu exec as a parameter of GpuUnionExec instead of duplicating the Spark code?

override def outputPartitioning: Partitioning =
    GpuUnionExecShim.getOutputPartitioning(children, output, conf)

Activity

  1. self-assigned this
    on Jan 30, 2026
  2. added
    ? - Needs TriageNeed team to review and classify
    taskWork required that improves the product but is not user facing
    on Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

taskWork required that improves the product but is not user facing

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions