Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

D. Limits

AreaLimitWorkaround
CommentsNone in the languageKeep notes in view descriptions
TypesNo date typeISO-8601 text or epoch milliseconds, date functions
Missing fieldsFail the query, except in exists, coalesce, optional and ? pathsf?, exists(f) and …, coalesce(f, d)
Null in functionsNumeric, text and date functions refuse nullcoalesce(f?, default)
CoercionNone across kindsto_int, to_float, to_string, to_bool
ParametersBound as literals: each set of values is planned (and cached) separatelynone needed
let (query)Read-only, at most 1,000 rowsAggregate in the query
select, sort, limit, skipOnce per pipelineUse a sub-pipeline, or first (may repeat)
countTerminalderive k = 0 | group | by k | count as n | end
windowA partition must fit the query working set; field-path keys; top level or a union branchPartition more finely; derive keys first
fillAt most 100,000 grid values; field-path by; top level or a union branchderive first
range()At most 1,000,000 items
round() digits0 to 15
Views8 levels of views reading views; no cycleFlatten a level
Materialized viewsNo parametersBind with let inside, filter in a view above
lookup viewThe view’s source must be a bare on <collection> or on values […]Materialize the view, then lookup view it
Integers on the wireAbove 2³² sent as floats; above 2⁵³ refusedSend large identifiers as strings
Blocking shapesOnly the bounded shapes of 14.3 runReorder, bound with limit, or materialize
HistoryNeeds OGD_HISTORY=on
aggregateNot a stagegroup, count, pivot