Limits and error codes
The normative numbers and error identifiers, from spec/limits.json, which
tools/gen-limits.mjs checks against spec/SPEC.md and spec/errors.md
before rendering — the prose there defines them; this page lists them.
| Limit | Value | Spec | Meaning |
|---|---|---|---|
MAX_DEPTH |
200 | §6.4 | parser nesting and evaluation nesting, each; exceeding either is E_DEPTH |
MAX_INT_DIGITS |
1,000,000 | §6.4 | integer digits of a number; beyond it E_RANGE |
MAX_FRAC_DIGITS |
1,000,000 | §6.4 | fractional digits of a number; beyond it E_RANGE |
DIV_SCALE |
10 | §5.3 | fractional digits long division runs to before rounding half away from zero |
| Code | Phase |
|---|---|
E_SYNTAX |
compile |
E_UNTERMINATED |
compile |
E_ESCAPE |
compile |
E_RESERVED |
compile |
E_BAD_ASSIGN |
compile |
E_UNKNOWN_FUNC |
compile |
E_ARITY |
compile |
E_DEPTH |
compile and run |
E_REGEX_SYNTAX |
compile |
E_UNDEF_VAR |
run |
E_NO_KEY |
run |
E_NO_SCALAR |
run |
E_NOT_NUM |
run |
E_NOT_TEXT |
run |
E_NOT_BIN |
run |
E_NOT_BOOL |
run |
E_NOT_INT |
run |
E_NULL |
run |
E_EXPECT_SYMBOL |
run |
E_DIV_ZERO |
run |
E_UTF8 |
run |
E_RANGE |
run |
E_BAD_ARG |
run |
E_LEN_MISMATCH |
run |
E_ABORT |
run |
4 limits, 25 error codes. The SQL layer's own codes are in sql/errors.md.