• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

orneryd / NornicDB / 29652676728
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: fix/where-rel-existence-and-delete-guard
DEFAULT BRANCH: main
Ran 18 Jul 2026 04:59PM UTC
Jobs 1
Files 487
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Jul 2026 04:46PM UTC coverage: 89.127%. First build
29652676728

Pull #264

github

Allen Sanabria
fix(cypher): correctly evaluate relationship-existence predicates, resolve OPTIONAL MATCH rel vars, and guard non-detach DELETE

Three correctness fixes in the Cypher WHERE/DELETE mutation paths, the root
cause behind eshu-hq/eshu#5147.

1. Relationship-existence predicates in WHERE/COUNT/EXISTS were mis-evaluated
   for bracket-less and bracketed-undirected patterns. (n)--(), (n)-->(),
   (n)<--(), and (n)-[r]-() fell through the pattern gate to a default-true
   branch, so NOT (n)--() matched nothing and COUNT { (n)--() } = 0 matched
   every node. containsRelExistencePattern/bareRelDirection now classify these
   and route them to the existing relationship evaluator.

2. A relationship variable bound by an embedded OPTIONAL MATCH resolved to nil
   in the internal MATCH...RETURN probe that executeDelete/executeSet/
   executeRemove build, because parseTraversalPatternStateMachine locates the
   relationship bracket by scanning from the first node group's closing paren
   rather than searching for -[. executeMatch now routes an embedded
   OPTIONAL MATCH through executeCompoundMatchOptionalMatch. Also fixed a
   second, independent gap: executeRemove/applyRemoveToMatchedRows had no
   *storage.Edge support and duplicated rows when binding 2+ node variables.

3. A non-DETACH DELETE of a node that still has relationships silently
   cascade-deleted its edges. It now errors (openCypher/Neo4j semantics) unless
   the residual edges are themselves being deleted in the same statement.
   Behavior change documented in CHANGELOG.md.

Neo4j compatibility suite stays green; the previously masked
Delete_chunks_with_OPTIONAL_MATCH test is restored to a plain DELETE as the
green proof.
Pull Request #264: fix(cypher): correctly evaluate relationship-existence predicates and guard non-detach DELETE

345 of 377 new or added lines in 7 files covered. (91.51%)

146613 of 164499 relevant lines covered (89.13%)

1.04 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
89.02
pkg/cypher/executor_mutations.go
7
86.54
pkg/cypher/executor_mutations_delete_guard.go
6
83.33
pkg/cypher/executor_mutations_remove_scope.go
2
95.35
pkg/cypher/rel_existence_pattern.go
Jobs
ID Job ID Ran Files Coverage
1 29652676728.1 18 Jul 2026 04:59PM UTC 487
89.13
GitHub Action Run
Source Files on build 29652676728
  • Tree
  • List 487
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #264
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc