Skip to content

v0.40.0

Choose a tag to compare

@rustyconover rustyconover released this 06 Oct 03:08

catalog_contents: VGI protocol 2.1.0

The VGI protocol moves from 2.0.0 to 2.1.0. Workers built on this release speak the protocol the current vgi DuckDB extension uses; releases on 2.0.0 are refused with a protocol_version mismatch.

  • catalog_contents RPC. A worker serves its whole catalog (schemas and their tables, functions and other items) in one call, and advertises it with a new supports_catalog_contents column on the attach result. Rows are typed struct rows (SchemaContents, nested in CatalogContentsResponse).
  • ETag revalidation. catalog_contents takes if_none_match; a catalog that opts in (catalog_contents_etag = "content-hash", or its own etag) answers not_modified instead of resending the catalog.
  • Worker cache. Version-frozen, attach-independent catalogs (ReadOnlyCatalogInterface) are built once per catalog version and served pre-serialized, so a warm call skips the Arrow encode.
  • Deterministic encoding. Catalog items encode their map columns with keys in sorted order, so equal catalogs produce identical bytes (and ETags).
  • Codegen for the other SDKs. New generators emit the protocol records for vgi-go (go_types), vgi-rust (rust_types), vgi-java (java_types) and vgi-typescript (ts_types, typed builders and codecs), alongside the existing C# targets.
  • Fixture workers for catalog_contents (probe, broken, legacy and memory catalogs); contents_* fixtures can opt out of unattached routing.

Also

  • serve: one server builder for every transport; Worker.hosted_protocols lets a worker host extra protocols; conformance.Secondary.v1 in the fixture worker.
  • OutputCollector is re-exported from the function modules (typing fix).
  • The filter engine is pinned to the vgi.duckdb.standard.v1 oracle: the duckdb/haybarn extras pin ==1.5.5 / ==1.5.5rc1. Without haybarn, duckdb 1.5.6 made every pushed-down filter fail to bind.
  • Dependency updates, including pyjwt 2.15.1 and urllib3 2.8.0 (security).