Skip to main content
Column names resolve by id, label or alias. Enum values resolve by value or label. Numbers accept 2k, 1.5m, $5,000 and 12%. Dates accept 2026, 2026-01, 2026-01-15, today, yesterday, last 7 days, next 2 weeks and this quarter. Errors carry character offsets.

Example schema

The examples in the tables below are parsed against this schema when the page is generated.

Column types

Every column type declares the operators it accepts. A condition with an operator the type does not list is a parse error.

Operators

Conditions

A condition is a column followed by an operator and a value. Column names resolve by id, label or alias.

Text

Lists

in matches any of the listed values. Values separated by or after is collapse into one in condition.

Ranges

between is inclusive and orders its bounds. On dates, a year or a month expands to its first and last day.

Empty values

Relative dates

Relative ranges resolve against the executor’s today. The amount must be a whole number of periods.

Search and flags

Bare words outside a condition search every searchable column. is:name is a flag; the data source decides what each flag means.

Logic

Conditions joined by and, && or a comma must all match. or matches either side, not negates, and parentheses group.

Sort and group

sort by without a direction sorts numbers and dates descending and everything else ascending.

Grouping granularity

Date columns group into buckets. The query text groups by the column; the view sets the granularity.

Aggregates

sum, avg, min, max, count, distinct