Package overview
One artifact, published to Maven Central as farm.query:vgi. Everything below is generated from the
sources, so a type’s page is the authority for its exact shape.
implementation("farm.query:vgi:0.26.1")
The five shapes
Section titled “The five shapes”farm.query.vgi.scalar.ScalarFn // 1 row → 1 value
farm.query.vgi.table.TableFunction // args → N rows
farm.query.vgi.tableinout.TableInOutFunction // N rows → M rows, streaming
farm.query.vgi.aggregate.AggregateFunction // N rows → 1 value per group
farm.query.vgi.buffering.TableBufferingFunction // N rows → M rows, after all input
Each is registered on the Worker builder with the matching register* call.
`-parameters` is part of the contract
The scalar API derives its SQL signature from your parameter names, which Java erases by default.
A build without -parameters produces arguments called arg0 and still works positionally, so
nothing fails visibly. See Running a worker.
Reference
Section titled “Reference”
Scalar functions
ScalarFn and the parameter annotations.
Table functions
Producers, and the countdown base for generators.
Table-in-out functions
Streaming a relation through.
Buffering functions
Sink, combine, source.
Aggregate functions
Per-group accumulation with cross-process combine.
Worker & serving
The builder, the transports, secrets and settings.
Catalogs
Schemas, tables, views, macros, versioning.
Function metadata & params
The shared bind and process parameter types.
State storage
State across calls and across processes.
Cache control
Advertising a result as reusable.
Filter pushdown
Predicates pushed toward the scan, and applying them.
Arrow helpers
Schemas, per-type scalar helpers, type rules.
Client
Calling a worker from Java.
Protocol
The wire shapes worker and engine exchange.