Playground

Playground #

Search the teaching dataset right on this page — the Pizza engine compiled to WebAssembly runs in your browser, and nothing you type leaves the page. Queries use Pizza’s canonical DSL, and the results are engine-level output (no gateway envelope: no _key, _shards or _collection wrappers; the engine’s parsed_query plan string appears only behind the result panel’s debug 🐛 toggle).

Flip the editor to SQL to run SELECT statements through the engine’s SQL frontend — the same parse/lower/shape path the /_sql gateway wire rides. The example chips load per-dataset statements covering the subset (filters, MATCH/SCORE()/HIGHLIGHT, KNN, CASE, scalar functions, GROUP BY with DATE_TRUNC/HISTOGRAM bucketing, COUNT(DISTINCT), $1 parameters, an EXPLAIN chip showing the compiled DSL plan — and one deliberately rejected statement to show a positioned plan error). SQL answers render as the gateway’s frozen columns/rows envelope — a typed table, with a raw JSON view one click away. The composite cursor walk chip shows keyset paging: a full grouped page hands back a cursor, and Next page resubmits the identical statement with it — exactly what /_sql’s cursor request field does.

The same widget embeds across the documentation, not just on this page: every tutorial lesson pairs its DSL examples with the SQL spelling of the same question wherever the SQL subset reaches — a ▶ Try it live (SQL) button runs the statement through this identical wasm lane (the relations and geo lessons mark what stays DSL-side).

Datasetloading…
loading…

Widgets that carry both spellings show a DSL | SQL toggle next to the Run button — the default lane is DSL, the switch keeps each side’s edits, and Run follows the lane you are on.

The data #

The playground mounts the teaching dataset as pre-built read-only segments — the same deterministic data behind every example in this documentation:

CollectionDocsGood for
sales120metric aggregations, histograms, terms, ranges
logs150full-text match/phrase, fuzzy/wildcard/regexp/suffix
products30nested queries, in-place columns
customers20join queries, terms
places15geo queries
articles44custom analyzers, graph traversal
embeddings24vector search (three 8-dim clusters)

If something is missing #

The widget explains itself when the wasm bundle or the dataset segments have not been built yet — from a source checkout that is:

make dataset-seed   # load the dataset into a local node
make dataset-fire   # export read-only segments for the browser
make wasm           # build the wasm engine bundle

Write-path, cluster and operations APIs are not part of the playground — they need a real node; see the references. The relational story (joins, references, FK-routed writes, salting) lives there too — Lesson 8 — joins walks it step by step.

Calendar October 6, 2026
Edit Edit this page