You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 072e543
Browse filesBrowse the repository at this point in the historyBrowse files
Key table-in-out state by substream, not by process
TableInOutFunction.process saved each connection's state under os.getpid().
Storage is scoped to the execution, which every connection of a fanned-out
scan shares, so the key has to tell those connections apart — and a pid only
does when each connection is its own process. Under the launcher, TCP or HTTP
one process serves them all: they overwrote each other's state and finish()
undercounted (substream_partial_sum: 194850 for 1999000).
The key is now InitRequest.substream_id, the client-minted id that already
exists to key per-substream state and that the DuckDB extension sends on every
substream. The Python client never sent one; it now mints one per fan-out
connection's INPUT stream (each its own substream of the one execution) and
carries the primary's on the finalize. A client that sends none is keyed by
pid, as before.
The partial-sum tests run over every client transport (the HTTP leg is one
process serving the whole fan-out), plus a check that a client sending no
substream_id still sums over subprocess.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments