QueryBudget
Size limits and expensive-operator gates for one QueryEntry, checked at admission step 0: against the query as the caller submitted it plus the caller's scope from the edge, before any extension rewrites it. A route's selection (what a load route names in its URL), policy conditions, the model's default scope and cursor tie-breakers therefore never count, and a policy may use a gated operator.
A limit of 0 disables that limit. Every rejection is a request QueryViolation whose text label opens, e.g. HTTP page size[0] ....
maxResidualGroups is metered during execution instead: when a storage cannot run an aggregation's HAVING or metric sort natively, the core reads every group to compute it, and fails once more than this many groups arrive.
Properties
Functions
The list size applied to a list query that sends none, from the configured default: at most maxListSize, and null (none applied, 0 keeps meaning unlimited) when either is 0.