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

orneryd / NornicDB / 28963827968 / 1
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: fix/fail-loud-multiclause
DEFAULT BRANCH: main
Ran 08 Jul 2026 06:02PM UTC
Files 483
Run time 40s
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

08 Jul 2026 05:12PM UTC coverage: 89.138% (+0.007%) from 89.131%
28963827968.1

Pull #259

github

linuxdynasty
fix(cypher): carry relationship bindings through multi-MATCH and index-seed IN-list traversal starts

Two independent defects on the same query shape
(MATCH (s) WHERE s.uid IN $u MATCH (s)-[rel]->() WHERE
rel.evidence_source = $e DELETE|RETURN ...):

1. Correctness: a relationship variable bound by the second (or later)
   MATCH clause of a multi-MATCH query was silently dropped. `binding`
   (match_multi.go) is map[string]*storage.Node, so executeFirstMatch/
   executeChainedMatch never stored the relationship a clause's pattern
   bound even though the traversal's PathResult already carried it.
   DELETE rel deleted zero edges; RETURN rel / count(rel) / rel.prop /
   elementId(rel) resolved to nil while node columns in the same query
   were correct. Kept binding's map[string]*storage.Node shape unchanged
   (~10 existing binding_where_compile*_test.go-family tests construct
   and index it directly) and threaded relationship bindings as a
   parallel, index-aligned map[string]*storage.Edge through
   executeFirstMatch, executeChainedMatch, a new
   filterBindingsByWhereWithRels (reuses the untouched node-only WHERE
   compiler via a read-only bindingWithRelView property adapter), and
   resolveBindingExpr/resolveBindingItem. Also fixed executeMultiMatch
   never applying SKIP/LIMIT despite its own comment claiming it did.

2. Performance: MATCH (s:Label)-[rel]->() WHERE s.uid IN $list ... never
   index-seeded its start nodes, even though the equivalent node-only
   MATCH (s:Label) WHERE s.uid IN $list already does via
   tryCollectNodesFromPropertyIndexIn(Literal). Added
   tryCollectNodesFromPropertyIndexInCompound, wiring those existing
   index-seek helpers into executeMatchWithRelationshipsWithPath's
   start-node pruning chain, including when the IN-list is one AND
   conjunct alongside a relationship-property predicate (mirrors
   tryCollectNodesFromIDEqualityCompound's conjunct handling).
   filterPathsByWhere still re-evaluates the full WH... (continued)
Pull Request #259: fix(cypher): bind relationships across multi-MATCH clauses; perf(cypher): index-seed IN-list traversal starts

146194 of 164009 relevant lines covered (89.14%)

1.04 hits per line

Source Files on job 28963827968.1
  • Tree
  • List 483
  • Changed 14
  • Source Changed 0
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28963827968
  • 7dcc146a on github
  • Prev Job for on fix/rel-source-uid-in-index-seed (#28621855672.1)
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