Execute owned RowFn outputs over valid rows - #9500
Conversation
Merging this PR will regress 1 benchmark
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbinview_opt_into_canonical[(10, 100)] |
592.2 µs | 660.3 µs | -10.31% |
| ⚡ | Simulation | take[duplicates/repeated/primitive/nonnull/chunks=16/indices=1000] |
270.5 µs | 228.9 µs | +18.19% |
| ⚡ | Simulation | compress_fsst[(500, 64, 4)] |
517.2 µs | 467.6 µs | +10.61% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ct/row-fn-owned-valid-rows (d56d815) with develop (ae156bf)2
Footnotes
-
442 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
develop(cb77d9a) during the generation of this report, so ae156bf was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
aaf9596 to
fcbb031
Compare
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
## Rationale for this change - Stacked on: #9496 - Tracking issue: #9130 - API tracking: #9129 - Epic: #9128 Connects the row execution layer to the scalar-function adapter. ## What changes are included in this PR? Adds constant handling, strict validity propagation, dense execution, direct valid-row execution for supporting sinks, and output validation. A partially valid signature that cannot execute directly on valid rows panics in this layer. Encoding-aware reductions remain in #9347. Filter-and-scatter remains in #9349. Owned valid-row execution and its `Default` bound are in #9500. Nullary execution is in #9469. ## What APIs are changed? Are there any user-facing changes? Adds execution internals within the existing `unstable_row_fns` boundary. There are no stable API changes. --------- Signed-off-by: Connor Tsui <connor.tsui20@gmail.com> Signed-off-by: Connor Tsui <connor@spiraldb.com>
fcbb031 to
d56d815
Compare
Rationale for this change
RowFnbatch execution #9450RowFnover Vortex arrays #9130Adds direct valid-row execution for owned
RowFnoutputs before the first nullable deferred owned consumer.What changes are included in this PR?
Adds
DefaulttoOutputElementand uses it only to initialize skipped output positions. Batch execution masks those positions before returning the array.Owned infallible and deferred visits execute directly over null-tolerant decoded inputs. Unsupported encodings continue to decline this path; #9349 adds the later filter-and-scatter fallback.
What APIs are changed? Are there any user-facing changes?
Extends the unstable
OutputElementcontract withDefault. There are no stable API changes.