Skip to content

Releases: Query-farm/vgi-java

v0.17.0

Choose a tag to compare

@rustyconover rustyconover released this 10 Jul 15:25

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:vgirpc 0.15.0 → 0.16.0, which carries a fix for the stateless HTTP producer path dropping the /init request'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 from VGI_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

Choose a tag to compare

@rustyconover rustyconover released this 08 Jul 18:50

Per-schema doc in describe.json; depend on vgirpc 0.15.0 (landing.html v3).

v0.15.0

Choose a tag to compare

@rustyconover rustyconover released this 08 Jul 15:36

Surface catalog macros (scalar + table) in describe.json; depend on vgirpc 0.14.0 (refreshed landing.html).

v0.14.0

Choose a tag to compare

@rustyconover rustyconover released this 07 Jul 22:44

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

Choose a tag to compare

@rustyconover rustyconover released this 05 Jul 21:40

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

Choose a tag to compare

@rustyconover rustyconover released this 05 Jul 18:52

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

Choose a tag to compare

@rustyconover rustyconover released this 05 Jul 17:28

Per-argument constraint metadata for agent discovery; multi_branch_iceberg example fixture. Backward-compatible feature additions.

v0.10.0

Choose a tag to compare

@rustyconover rustyconover released this 30 Jun 15:08

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

Choose a tag to compare

@rustyconover rustyconover released this 29 Jun 14:02

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

Choose a tag to compare

@rustyconover rustyconover released this 26 Jun 04:23

TCP transport

Adds a raw Arrow-IPC TCP transport to the worker:

  • Worker.runTcp(host, port, idleTimeoutMs) via TcpSocketTransport (emits the TCP:<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:vgirpc dependency 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.