Skip to content

v0.36.1 — window rid docs, split_many fixture

Choose a tag to compare

@rustyconover rustyconover released this 19 Sep 19:10
· 172 commits to main since this release

Docs: a window aggregate's rid is chunk-relative

The per-row window callback's rid was documented as the output row's index within
the partition. It is the row's index within the current output chunk. DuckDB's
window operator evaluates one chunk at a time and passes i (0 ≤ i < 2048); the
partition row is never sent. The extension forwards that value untouched. A worker
that used rid to index the partition read the wrong rows after the first chunk.

Use the frames instead: they are always partition-relative. The batched path's
row_idx is partition-relative and was already documented correctly.

Updated in AggregateWindowRequest, AggregateFunction.window() and
AggregateClient.window(). Docstrings are outside the protocol hash, so no port's
reflection changes.

Fixtures

  • split_many honours its splits argument, as every other SDK's twin does (it
    returned max(splits, 1000)). splits <= 0 still means 1000. With the matching
    change to more_splits_than_threads.test (64 splits), that file went from 13.0 s
    to 1.2 s over HTTP.