peter-toth opened a new pull request, #57503:
URL: https://github.com/apache/spark/pull/57503

   ### What changes were proposed in this pull request?
   
   `GroupPartitionsExec` builds a `SortedMergeCoalescedRDD` for the k-way merge 
and hands it a `LazyCodeGenOrdering` built from `child.outputOrdering`. The 
generated comparator (`GenerateOrdering`) only needs each `SortOrder`'s sort 
key (child, direction, null ordering), so this drops `sameOrderExpressions` -- 
planner-only metadata -- via a small `kWayMergeOrdering` helper before 
constructing the ordering, so it is not serialized with the RDD in every task.
   
   ### Why are the changes needed?
   
   `sameOrderExpressions` is unused by the merge comparator and is unnecessary 
payload serialized with every task. It was also the vector for the 
`StackOverflowError` fixed in SPARK-58323 (an unforced, deeply-nested 
`LazyList`); not carrying it here removes this operator's exposure to any such 
ordering entirely (defense-in-depth), independent of that fix.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   New unit test in `GroupPartitionsExecSuite` asserting `kWayMergeOrdering` 
keeps the sort key but drops `sameOrderExpressions`. Existing SPARK-55715 
sorted-merge tests cover comparator correctness.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Opus 4.8
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to