SELSimple Expression Language
GitHub

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.

View this page's Markdown on GitHub