Skip to content

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 19:48

v0.19.0 — CASE and operators in the build-time SET dialect

slater-build can now ingest business-key MERGE dumps whose SET right-hand
sides use CASE expressions and infix operators, not just function calls,
literals, and same-node property references.

Highlights

  • Build-time SET gains a full scalar-expression grammar: CASE
    (searched and simple), comparison (=, <>, <, <=, >, >=),
    arithmetic and string concatenation (+, -, *, /, %), and
    boolean AND/OR/NOT, with standard precedence and parentheses.
  • A common accumulator idiom now builds unmodified, e.g.
    SET n.summary = CASE WHEN coalesce(n.summary,'') = '' THEN x ELSE n.summary + '; ' + x END. Each assignment folds against the node's
    accumulated properties in input order, so the result matches a live graph
    engine's — without the quadratic read-grow-rewrite cost.
  • Operator, comparison, and truthiness semantics are shared with the query
    engine through slater-scalar, so build-time and query-time evaluation
    agree (string-concat +, three-valued =/NULL handling, Kleene booleans).
  • CASE branches evaluate lazily: only the selected THEN/ELSE runs.

Scope and compatibility

  • Edge SET and overlay-patch SET remain literal-only.
  • Existing dumps are unaffected; this is strictly a superset of the prior
    dialect.

No configuration changes are required.

Full Changelog: v0.18.0...v0.19.0