Feature support¶
The emulator is a preview (v0.x) project. Support is tracked across
several complementary artifacts rather than a single markdown matrix.
Quick reference¶
| Area | Where to look | What it covers |
|---|---|---|
| REST API endpoints | REST API | Per-method status: done, wired, todo |
| SQL execution routes | Engine policy | DuckDB fast path, semantic executor, stubs |
| Capability roadmap | ROADMAP | Milestone narrative and design rationale |
| Executable SQL truth | Conformance | ~170 YAML fixtures pinning query behavior |
| Client library parity | Third-party harnesses | Go, Python, Java, Node, DataFrames, dbt |
REST API coverage¶
The gateway implements the BigQuery v2 REST surface end-to-end for the core resources (projects, datasets, tables, tabledata, jobs, queries, routines). Many ancillary surfaces (models, migration, data transfer, IAM custom methods) are wired stubs that return structurally-valid empty pages or 501 so client libraries probe successfully at startup.
See the full endpoint → handler mapping in REST API.
SQL & engine routes¶
Query execution dispatches through a route classifier. Each resolved AST shape lands on one of:
| Route | Role |
|---|---|
duckdb_native |
Fast analytical path via DuckDB SQL |
duckdb_udf / duckdb_rewrite |
BigQuery functions polyfilled in DuckDB |
semantic_executor |
Exact BigQuery evaluation (NUMERIC, etc.) |
control_op |
DDL / DML / catalog operations |
local_stub |
Returns a documented stub response |
unsupported |
Surfaces UNIMPLEMENTED to the client |
Per-function and per-AST-node dispositions live in the engine source:
Benchmark support matrix¶
The bench harness compares query latency and correctness outcomes across three backends:
- vantaboard — this emulator
- goccy — goccy/bigquery-emulator Docker
0.8.1 - BigQuery — committed golden baselines
Per-case outcomes (ok, error, wrong_result, timeout, skipped) are
recorded in bench/results.json. Latency and phase charts are embedded in the
root README.
Regenerate locally with task bench:run then task bench:charts.
Conformance fixtures¶
YAML fixtures under
conformance/fixtures/
are the executable source of truth for SQL semantics. Each fixture can
assert an expected engine route:
expected:
route: duckdb_native
match: ordered
rows:
- {n: 1}
Run the full suite:
task conformance:run
Generate a routing matrix artifact:
task conformance:routing-matrix
What is intentionally unsupported¶
- Authentication / IAM — tokens accepted, never validated
- BQML / trained models — list returns empty; mutations return 501
- Row-level access policies — list returns empty; IAM methods return 501
- Migration workflows — list returns empty; create/start return 501
- Data Transfer Service — list returns empty; create returns 501
- Legacy SQL dialect — only GoogleSQL (narrow bracket-ref translation for samples)
See Engine policy for the full route catalog and specialized feature families (ML, GIS, HLL, scripting, wildcards).