Skip to content

Releases: Query-farm/vgi-python

v0.8.10

Choose a tag to compare

@rustyconover rustyconover released this 29 Jun 19:27

Performance: scalar UDF constants can now be carried through as typed Arrow scalars.

  • ConstParam annotated with a pyarrow scalar class — Annotated[pa.Int64Scalar, ConstParam(...)] — now delivers the typed pa.Scalar straight to compute() instead of converting it to a Python value. The constant can be passed directly into pyarrow.compute with no per-call scalar re-inference, which is ~40–50x slower on Windows than a typed scalar and dominates per-batch cost for scalar UDFs. Python-type annotations (int/str/float/…) are unchanged, so existing workers are unaffected.
  • New vgi.arguments.SCALAR_CLASS_TO_DATATYPE (scalar class → Arrow type), used to infer the Arrow type and to mark which constants are delivered as scalars.
  • Example fixture MultiplyFunction updated to the idiomatic fast pattern.
  • CI: boot the http integration worker from the staging dir so copy_from/copy_to tests resolve their relative paths (fixes the http-lane Integration suite).

v0.8.9

Choose a tag to compare

@rustyconover rustyconover released this 29 Jun 17:39

Maintenance release.

  • Export CopyFromFormatInfo from vgi.catalog.
  • Type ProcessParams/InitParams.secrets as ResolvedSecrets (type/scope-aware lookups now type-check).
  • CI/quality-gate fixes (mypy, ruff, pydoclint, strict docs); run pydoclint via an isolated uvx env to avoid the docstring-parser/docstring-parser-fork namespace conflict.

v0.8.8

Choose a tag to compare

@rustyconover rustyconover released this 29 Jun 14:01

Worker-side COPY ... FROM / TO custom format support, scope- and type-aware ResolvedSecrets with name-keying, union-typed table varargs decoded as TaggedUnion, and table-buffering functions that can request DuckDB secrets via two-phase bind.

v0.8.7

Choose a tag to compare

@rustyconover rustyconover released this 26 Jun 04:22

TCP transport

Adds the raw Arrow-IPC TCP transport from vgi-rpc 0.21.0:

  • Worker --tcp [HOST:]PORT serving (emits the TCP:<host>:<port> discovery line; idle-timeout self-shutdown).
  • Client transport="tcp" + Client.from_tcp(host, port); catalog calls routed over TCP too.

Raw TCP framing carries no auth/encryption — loopback/trusted networks only; HTTP remains the transport for untrusted networks.

v0.8.6

Choose a tag to compare

@rustyconover rustyconover released this 25 Jun 16:33

Per-parameter documentation for macros: a macro's parameters can now carry descriptions (via the arguments_schema vgi_doc field metadata, mirroring functions), surfaced by the DuckDB extension's vgi_function_arguments() (function_type scalar_macro/table_macro). The example worker's macros are documented as a consistent cross-SDK reference.

🤖 Generated with Claude Code

v0.8.5

Choose a tag to compare

@rustyconover rustyconover released this 25 Jun 04:01

Add per-argument descriptions (vgi_doc Arrow field metadata) so a function's arguments can be documented and surfaced via the DuckDB extension's vgi_function_arguments() table function. The example worker's multiply now documents its value/factor arguments (with the const argument clearly identifiable), standardized across all SDKs.

🤖 Generated with Claude Code

v0.8.4

Choose a tag to compare

@rustyconover rustyconover released this 24 Jun 16:47

Worker-settable catalog source_url + per-schema tags for vgi-lint metadata. (Function tags already supported.)

v0.8.3

Choose a tag to compare

@rustyconover rustyconover released this 23 Jun 20:10

What's changed

Union-tag-preserving argument decode (TaggedUnion)

  • feat(arguments): preserve the union tag when decoding union-typed arguments, so the originating union child type survives the round-trip
  • test: cover union argument boundary cases — null payload, non-contiguous type codes, and dense unions
  • fix(arguments): satisfy strict mypy + ruff for the union-tag decode path

Requires vgi-rpc 0.20.5.

Full changelog: v0.8.2...v0.8.3

v0.8.2

Choose a tag to compare

@rustyconover rustyconover released this 22 Jun 18:43
34978e2

Require vgi-rpc >=0.20.5 and refresh all locked dependencies.

Dependency updates

  • vgi-rpc 0.20.4 → 0.20.6
  • aiohttp 3.13.5 → 3.14.1
  • coverage 7.14.1 → 7.14.2
  • griffelib 2.0.2 → 2.1.0
  • mkdocstrings-python 2.0.4 → 2.0.5

CI green across Python 3.13/3.14 on Linux, macOS, and Windows, plus the full integration suite (stdio/shm/http/launch).

v0.8.1

Choose a tag to compare

@rustyconover rustyconover released this 18 Jun 16:25

Pin vgi-rpc 0.20.4 — shared-memory request-batch fix

Requires vgi-rpc>=0.20.4, which fixes shm-transport request-batch resolution: a worker now resolves shm-routed (offset-only) request batches and caches the client-advertised segment for the connection's lifetime. This makes the integration suite's shared-memory lane pass for accumulate/* and table_buffering/* (previously Expected 1 row in request batch, got 0).

Also: the cross-language bool_in_union integration test now disables itself upstream via mode skip (an arch-dependent Haybarn/DuckDB Arrow serialization bug), so the CI harness drops its filename-based exclusion.

🤖 Generated with Claude Code