Follow-up to #22791
From @2010YOUY01's comment to clean up state splitting:
now: FetchingRight -> EmitLeftUnmatched
proposed: FetchingRight -> ProbeEnd -> EmitLeftUnmatched
EmitLeftUnmatched currently both decides whether this partition emits unmatched-left rows (decrementing the shared probe counter) and does the emitting. Re-entry of that state caused the double-decrement bug fixed in #22791. A dedicated ProbeEnd state (entered once per chunk/partition when the right side is exhausted) would own the single report_probe_completed() call, making "decrement exactly once" a property of the state graph and removing the probe_completed_reported flag added in #22791. No behavior change expected.
Follow-up to #22791
From @2010YOUY01's comment to clean up state splitting:
EmitLeftUnmatchedcurrently both decides whether this partition emits unmatched-left rows (decrementing the shared probe counter) and does the emitting. Re-entry of that state caused the double-decrement bug fixed in #22791. A dedicatedProbeEndstate (entered once per chunk/partition when the right side is exhausted) would own the singlereport_probe_completed()call, making "decrement exactly once" a property of the state graph and removing theprobe_completed_reportedflag added in #22791. No behavior change expected.