Skip to content

Comments

branch-4.0: [fix](local exchange) Do global shuffle for shuffled join/set operator #60758#60763

Merged
yiguolei merged 1 commit intobranch-4.0from
auto-pick-60758-branch-4.0
Feb 14, 2026
Merged

branch-4.0: [fix](local exchange) Do global shuffle for shuffled join/set operator #60758#60763
yiguolei merged 1 commit intobranch-4.0from
auto-pick-60758-branch-4.0

Conversation

@github-actions
Copy link
Contributor

Cherry-picked from #60758

#60758)

Make followed_by_shuffled_operator() virtual and override it in hash
join and set operators to correctly report shuffle requirements.
For multi-child operators (hash join, set operations), the method now
returns true if the operator itself is shuffled (and not colocated),
ensuring proper global shuffle behavior in local exchange.

  Changes:
  - Make followed_by_shuffled_operator() virtual in base OperatorX class
- Override in HashJoinBuildSinkOperatorX and HashJoinProbeOperatorX to
return is_shuffled_operator() && !is_colocated_operator()
- Override in PartitionedHashJoinProbeOperatorX and
PartitionedHashJoinSinkOperatorX to delegate to inner operator
- Override in SetProbeSinkOperatorX and SetSinkOperatorX to return
!_is_colocate

This fixes incorrect data distribution when shuffled join/set operators
are used in pipelines with local exchange.
@github-actions github-actions bot requested a review from yiguolei as a code owner February 14, 2026 09:21
@hello-stephen
Copy link
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@dataroaring dataroaring reopened this Feb 14, 2026
@hello-stephen
Copy link
Contributor

run buildall

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Feb 14, 2026
@github-actions
Copy link
Contributor Author

PR approved by at least one committer and no changes requested.

@github-actions
Copy link
Contributor Author

PR approved by anyone and no changes requested.

@doris-robot
Copy link

BE UT Coverage Report

Increment line coverage 100.00% (23/23) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.98% (19109/36067)
Line Coverage 36.16% (177874/491897)
Region Coverage 32.73% (137692/420746)
Branch Coverage 33.69% (59777/177418)

@yiguolei
Copy link
Contributor

skip buildall

@yiguolei yiguolei merged commit 7c93ad9 into branch-4.0 Feb 14, 2026
29 of 31 checks passed
@github-actions github-actions bot deleted the auto-pick-60758-branch-4.0 branch February 14, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants