Releases: Query-farm/vgi-java
Release list
v0.17.0
Added
Result-cache worker support (farm.query.vgi.cache.CacheControl). The DuckDB extension caches the complete result of a cacheable table-function scan and serves identical future scans from memory or disk. A worker opts a result in by advertising vgi.cache.* metadata on the first batch it emits:
BatchUtil.emit(schema, rows, out, CacheControl.ttl(300).toMetadata(), filler);The vocabulary mirrors HTTP caching (RFC 9111/9110): ttl / expires, a reuse scope (catalog or transaction), no_store, validators (etag / last_modified), revalidatable, stale_while_revalidate / stale_if_error, and not_modified.
Conditional revalidation flows the other way: when the client holds a stale-but-revalidatable result it sends vgi.cache.if_none_match on the producer's first tick, readable from AnnotatedBatch.customMetadata(). A worker whose data is unchanged answers with a 0-row not_modified batch instead of re-streaming.
No OutputCollector change was required — emit(root, customMetadata) already existed, so CacheControl is purely a metadata renderer.
Worker.registerUnlistedTable(fn) — register a table function that is dispatchable but not advertised in the catalog's function listing, so DuckDB never registers it as a callable table function. For the scan function behind a function-backed CatalogTable that should surface only as a table.
Changed
- Pins
farm.query:vgirpc0.15.0 → 0.16.0, which carries a fix for the stateless HTTP producer path dropping the/initrequest's batch metadata (without it, conditional revalidation silently never fires over HTTP). - The example worker's native-branch and
rff_*fixtures now resolve their scratch paths fromVGI_TEST_BRANCH_DIR(default: the OS temp dir) instead of hardcoding/tmp.
Verified
Full upstream integration suite green on all three transports (launch, shm, http): 10872 assertions across 231 test cases on the http lane, 0 failures.
v0.16.0
Per-schema doc in describe.json; depend on vgirpc 0.15.0 (landing.html v3).
v0.15.0
Surface catalog macros (scalar + table) in describe.json; depend on vgirpc 0.14.0 (refreshed landing.html).
v0.14.0
Standardized VGI worker HTTP landing page: content-negotiated GET / serving the shared landing.html, GET /describe.json (one entry per advertised catalog with per-catalog scoping) + lazy column endpoint, and the VGI logo header. Requires vgirpc 0.13.0.
v0.13.0
Const-argument constraints (choices/ge/le/gt/lt/pattern) are now enforced at bind for every function kind, not just scalar. Enforcement was extracted into a shared ConstraintEnforcer and wired into the table, table-in-out, table-buffering, and aggregate bind paths.
v0.12.0
Bind-time enforcement of const-argument constraints: a const value violating a declared choices/ge/le/gt/lt/pattern constraint now fails the bind (IllegalArgumentException), complementing the per-argument discovery metadata shipped in v0.11.0.
v0.11.0
Per-argument constraint metadata for agent discovery; multi_branch_iceberg example fixture. Backward-compatible feature additions.
v0.10.0
COPY ... TO / FROM secret-bind hook: a worker can now forward the caller's CREATE SECRET credentials for secret-backed cloud writes/reads via the two-phase secret bind (CopyToFunction/CopyFromFunction secretLookups). Adds SecretLines COPY fixtures.
v0.9.0
Worker-side COPY ... FROM / TO custom format support, scope- and type-aware Secrets (name-keyed resolved secrets), the multi_secret_demo table function, union-typed table varargs decoding, and table-buffering functions that can request DuckDB secrets via two-phase bind.
v0.8.0
TCP transport
Adds a raw Arrow-IPC TCP transport to the worker:
Worker.runTcp(host, port, idleTimeoutMs)viaTcpSocketTransport(emits theTCP:<host>:<port>discovery line; idle-timeout self-shutdown).- Worker CLI accepts
--tcp [HOST:]PORT(host defaults to 127.0.0.1), mutually exclusive with--http/--unix. - Bumps the
farm.query:vgirpcdependency to 0.11.0 (raw-TCP socket transport).
Raw TCP framing carries no auth/encryption — loopback/trusted networks only; HTTP remains the transport for untrusted networks.