Skip to content

fix: SET n = map reads n first; label tests in SET values (GQLITE-T-0479) - #203

Merged
dylanbstorey merged 1 commit into
mainfrom
fix/t0479-set-map-case
Nov 2, 2026
Merged

dylanbstorey merged 1 commit into
mainfrom
fix/t0479-set-map-case

Conversation

@dylanbstorey

Copy link
Copy Markdown
Contributor

Summary

  • SET n = {id: n.id, q: 1} left n with {q: 1}: bulk SET cleared n, then dropped the map value it could not store (it stores only literal map values). A SET n = map with computed values now runs in the row pipeline, which computes the map for the row first, as += already did (GQLITE-T-0479).
  • A SET value with a label test (CASE WHEN n:A THEN … END, n:A) was refused ("SET value must be a literal …"), with or without RETURN: the row pipeline did not know label tests were computable. It now computes them.
  • known.json: the GQLITE-T-0479 entry is removed.

Test plan

  • tests/functional/109_set_map_case.sql
  • Before the rebase onto fix: writes after two MATCH clauses run once per row (GQLITE-T-0477) #202: unit 1030/1030; functional; TCK 3880/3880 on SQLite 3.53 and 3.54.1; Python 1669 passed; metamorphic cover reps 2 and random seeds 1, 50001, 90001: 0 new signatures.
  • After the rebase: functional, TCK 3880/3880, metamorphic cover: 0 new signatures.

Semantic coverage matrix

  • tests/functional/109 covers SET = map reading the node, and label tests in SET values.

Checklist

  • Tests added
  • No version bump

…479)

SET n = {id: n.id, ...} cleared n and then dropped the computed id: bulk
SET stores only literal map values. A SET = map with computed values now
runs in the row pipeline, which computes the map for the row first, as
for +=. A SET value with a label test (CASE WHEN n:A ..., n:A) was left
to SET, which refused it: the row pipeline now computes it.
@dylanbstorey
dylanbstorey merged commit 786e8c1 into main Nov 2, 2026
17 checks passed
@dylanbstorey
dylanbstorey deleted the fix/t0479-set-map-case branch November 2, 2026 23:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant