[BugFix] fix MulticastSinkOperator stuck in OUTPUT_FULL state (backport #67153) #67200
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I'm doing:
example sql:
In a query plan such as
multi-cast -> limit, the completion of the source operator should also trigger the completion of the sink operator; otherwise, it may remain in theOUTPUT_FULLstate indefinitely.One practical query is
ANALYZE SAMPLE <table>, as it produces a CTE query similar to the one mentioned above.What I'm doing:
Fixes #issue
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check:
Note
Prevents multicast sink from hanging when upstream sources (e.g., after a
limit) complete by short‑circuiting sink completion.is_short_circuit()toMultiCastLocalExchangerand uses it in sinkis_finished()InMemoryMultiCastLocalExchanger(_opened_source_number == 0)Written by Cursor Bugbot for commit 0923f66. This will update automatically on new commits. Configure here.
This is an automatic backport of pull request #67153 done by [Mergify](https://mergify.com).