OptionalmaxUpper bound on a batch's declared row count, taken from the client's own
maxBatchRows request.
That request only ever reached the wire -- an upgrade header on Node, a query parameter in the browser -- and nothing checked the answer against it. Scratch arrays are sized from the declared row count and deliberately retained per pool slot for reuse, so a peer that ignores the request, or a hostile one, sets this session's memory floor for its lifetime: bounded only by QWP_MAX_CELLS_PER_BATCH times the pool size, which the cap's own comment puts at roughly half a gigabyte per slot.
Left undefined the batch is bounded by the cell cap alone, as before.
Applies the delta symbol dictionary carried by a batch whose rows are being discarded, without touching any per-query state.
The dictionary is connection-scoped and cumulative: the server numbers
entries from where the previous batch left off, on the connection rather
than on the query. A batch dropped because its query was retired -- by a
break out of the async iterator, a query deadline, or a throwing
queryViews callback -- still carries the entries the server has since
assigned, so skipping it entirely left this dictionary behind the
server's. resetQuerySchema() deliberately does not clear the dictionary,
so the gap survived into the next query and surfaced there as
"delta symbol dictionary is out of sync", naming data the caller never
asked for.
The dictionary sits at the front of the body, so this reads only as far as it needs to and never decodes the rows it is throwing away.
Decodes into one slot from a reusable batch/column-view pool without materializing a JavaScript value array. Reusing the same slot invalidates its prior view; callers must not reuse a slot until its consumer releases the preceding batch.
InternalDrops frame-backed references after a failed slot decode.
Stateful decoder for connection-scoped QWP result batches.