Arrow interchange
Arrow supplies typed columnar values and interchange for query results. It is not a storage authority, grant mechanism or query planner. Fuze evaluates plans and emits bounded batches; source adapters retain their own accepted revision, decoding and current-policy rules.
Physical compute columns do not change Arrow IPC schemas, five-state sidecars, output page sizes or buffer ownership. Logical/Unified execution validates each original source page before borrowing it for column predicates. Owned pull-query outputs deep-copy recursive values and remain valid after the compute batch is reset. See physical execution.
Interface boundaries
| Interface | Role |
|---|---|
| Arrow IPC | Versioned batch/schema bytes for durable capture and transport |
| Arrow C data/stream interfaces | In-process ownership and release callbacks for compatible consumers |
| Flight | RPC transport for selected Arrow operations |
| Flight SQL | SQL/metadata conventions over Flight |
| ADBC | A client API; the Flight SQL driver connects to the gateway |
Support for one boundary does not imply every Arrow type or protocol method. Native unified queries carry five-state nested cells; the Flight gateway serves finite Table v1 with int64 types. It cannot silently flatten arbitrary query Documents or KV projections into that profile.
Local transit_fuze.LogicalArrow
exports the richer logical type model, including recursive cells and exact
decimal/temporal/128-bit values. The logical Arrow contract
defines physical layouts, mandatory schema evidence, five states, ownership and
the independent eight-row/4 MiB workspace/64 KiB segment limits. This capability
includes local LogicalInspect decoding of one canonical complete segment against
an exact supplied schema. Decoded rows and descriptors own their bytes. General
external Arrow import, neutral ABI import, C data export and richer Flight
output admission have separate contracts and are not enabled by this decoder.
Native durable query jobs use these logical segments under their own source and
working-set bounds. Fixed encoding-workspace exhaustion is distinct from a host
allocator failure.
Ownership and complete results
Keep the batch schema, validity and field-state representation with its buffers. Respect borrowed lifetimes; retain/copy through the owning API and release native arrays/streams exactly as specified. A release callback cannot run while another consumer still references its buffers. Host cancellation does not automatically join native work or release a live resource safely.
Decode bounded batches and validate full-width identities, lengths and semantic cell states at language boundaries. A readable IPC prefix is not a verified complete query. Result manifests, ordered segment coverage and digests remain necessary; preserve the source basis with the result.
The Transit console renders verified native Arrow batches directly in its default table mode, with typed headings and numeric alignment. It releases each page after presentation. JSON mode emits the lossless foreign-value page envelope.
The shared Zig Arrow implementation and pinned dependencies live under Fuze. Public language wrappers own their native values and release rules above the shared boundary. Use the SDK reference for target packages and queries for recovery.
For remote clients, use Flight SQL and ADBC and its tested client/type matrix. Outbound captured Flight effects use a separate connector; an inbound query ticket does not authorize an outbound RPC or confer data access.