Skip to content

Commit f525cc0

Browse files
committed
[AURON #2329] Reword sole-consumer-gate comment for the codegen-fallback case
An unfused multi-consumer Calc runs as a standalone native Calc only when it converts; otherwise StreamExecCalc falls back to Flink's codegen Calc. Drop the unconditional native-copy claim and state the structural point the gate protects: no per-consumer plan is staged onto the shared source, so there is no last-write-wins between consumers.
1 parent 787f410 commit f525cc0

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

auron-flink-extension/auron-flink-planner/src/main/java/org/apache/auron/flink/table/planner/processor/AuronOperatorFusionProcessor.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,10 @@ void tryFuse(
200200
// Sole-consumer gate: a source feeding more than one consumer is deliberately not fused.
201201
// The native source runtime is single-plan / single-output — one source runs exactly one
202202
// PhysicalPlanNode and emits one stream, so N distinct per-consumer Calc plans cannot share
203-
// a single source. Declining loses nothing structurally: each consumer instead runs as a
204-
// standalone native Calc over the source's shared row stream, copying every column out of
205-
// the shared columnar RowData view, so the fan-out is safe.
203+
// a single source. Declining loses nothing structurally: each consumer instead translates
204+
// on its own over the source's shared row stream (a standalone native Calc when the Calc
205+
// converts, otherwise Flink's codegen Calc), so no per-consumer plan is ever staged onto the
206+
// shared source and there is no last-write-wins between consumers.
206207
if (consumerCount.getOrDefault(scan.getId(), 0) != 1) {
207208
return;
208209
}

0 commit comments

Comments
 (0)