Skip to content

Execute owned RowFn outputs over valid rows - #9500

Merged
connortsui20 merged 1 commit into
developfrom
ct/row-fn-owned-valid-rows
Aug 20, 2026
Merged

Execute owned RowFn outputs over valid rows#9500
connortsui20 merged 1 commit into
developfrom
ct/row-fn-owned-valid-rows

Conversation

@connortsui20

Copy link
Copy Markdown
Member

Rationale for this change

Adds direct valid-row execution for owned RowFn outputs before the first nullable deferred owned consumer.

What changes are included in this PR?

Adds Default to OutputElement and 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 OutputElement contract with Default. There are no stable API changes.

@codspeed-hq

codspeed-hq Bot commented Aug 19, 2026

Copy link
Copy Markdown

Merging this PR will regress 1 benchmark

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 2 improved benchmarks
❌ 1 regressed benchmark
✅ 1953 untouched benchmarks
⏩ 442 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

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

Open in CodSpeed

Footnotes

  1. 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.

  2. 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.

@connortsui20
connortsui20 marked this pull request as ready for review August 20, 2026 02:51
@connortsui20
connortsui20 force-pushed the ct/row-fn-owned-valid-rows branch from aaf9596 to fcbb031 Compare August 20, 2026 11:43
Base automatically changed from ct/row-fn-batch to develop August 20, 2026 13:58
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
connortsui20 added a commit that referenced this pull request Aug 20, 2026
## 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>
@connortsui20
connortsui20 force-pushed the ct/row-fn-owned-valid-rows branch from fcbb031 to d56d815 Compare August 20, 2026 13:58
@connortsui20
connortsui20 merged commit 4080251 into develop Aug 20, 2026
86 of 88 checks passed
@connortsui20
connortsui20 deleted the ct/row-fn-owned-valid-rows branch August 20, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/performance A performance improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants