Repository navigation
v0.44.0
This release adds continued table-in-out output and input_rows_per_call. It requires the vgi DuckDB extension at or after fc3e08f (Query-farm/vgi main, published to the haybarn community channel as 454fefa). The wire stays vgi.v2 2.2.0.
- A table-in-out exchange can answer one input batch with several replies: it emits each reply but the last with
TableInOutExchangeState.withMoreOutput(true, metadata)(vgi.status: HAVE_MORE_OUTPUT), and the framework answers the client's zero-rowCONTINUEticks through the exchange'sresume(). The exchange object is the resume state; its pending flag rides the HTTP state token. A continuing function declares its exchange class throughTableInOutFunction.continuationState(). RowTransformFunction.inputRowsPerCall()sets the new nullableFunctionInfo.input_rows_per_call(regenerated protocol code, new contract hash).- New framework refusals: a table-in-out turn (
onInputBatchorresume) that emits no batch now fails instead of leaving the pipe client waiting forever; ticks with nothing pending or with rows, real input while output is pending, cache control on a tick's reply, "more" withoutresume()and "more" from a table producer are refused. At startup (and again on the exchange's runtime class) a continuation state withoutresume(), a no-arg constructor or fields of its own, aPortableStreamState, or a function withmaxWorkers()of 1 is refused. - A turn that throws releases what it emitted before failing.
- Adds the standard
blended_paged,blended_slicedandpaged_explodefixtures.
Requires farm.query:vgirpc:0.33.1 (unchanged).
Release validation: the Maven-only build (VGI_RPC_JAVA_DIR=/nonexistent ./gradlew :vgi:test :vgi:javadoc) passed with sibling RPC source disabled.