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_requestnow resolves shm-pointer request batches (static segment, connection-cached segment, or one attached from the request's own metadata).- New per-connection
_ConnectionShmcache: 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