Skip to content

v0.20.4

Latest

Choose a tag to compare

@rustyconover rustyconover released this 18 Jun 16:06

Fix: shared-memory request-batch resolution

Fixes a cross-language shm transport bug where a client (the C++ vgi extension) routes a large single-row request batch through the shm side channel: the worker previously only resolved external-location pointers, so such requests tripped Expected 1 row in request batch, got 0 (seen on accumulate/* and table_buffering/* over shm).

  • _read_request now resolves shm-pointer request batches (static segment, connection-cached segment, or one attached from the request's own metadata).
  • New per-connection _ConnectionShm cache: the client names its segment once and reuses it for later offset-only batches; the worker attaches on first sight and holds it for the connection lifetime.
  • Responses route through shm only for exchanges the client signalled as shm (the C++ client resolves shm responses only for table_buffering_/aggregate methods), so inline control responses (bind, catalog_, transaction_*) are no longer wrongly shm-routed.

Includes a cross-language regression test.

🤖 Generated with Claude Code