• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
Warning: This build has drifted.
The coverage report for this pull request build may be inaccurate because its base commit is no longer the HEAD of its target branch.
This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

    • Learn more: For more information on this, see Tracking coverage changes for pull request builds.
    • Fix now: For a quick fix, rebase this PR at GitHub. Your next report should be accurate.
    • Prevent going forward: To avoid this issue with future PRs, see these Recommended CI Configurations.
New Repo Setting:
INCLUDE COVERAGE % WITH WARNINGS ABOUT DRIFTED BUILDS?

Enabling this setting will include a (potentially inaccurate) coverage % with warning messages in status updates for drifted builds.

Adjust setting

orneryd / NornicDB / 36379741804
87%
main: 87%

Build:
Build:
LAST BUILD BRANCH: fix/storage-v3-migration-legacy-version-keys
DEFAULT BRANCH: main
Ran 28 Sep 2026 05:06AM UTC
Jobs 1
Files 655
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

28 Sep 2026 04:47AM UTC coverage: 86.952%. First build
36379741804

Pull #763

github

orneryd
fix(cypher): optional shortestPath and shortestPath-as-value converge on one BFS (#581, #721)

OPTIONAL MATCH p = shortestPath(...) previously rewrote the clause to a
plain MATCH and swallowed every error into a fabricated {"result": null}
row with the wrong columns. Clause-only and anchored forms
(MATCH (a) OPTIONAL MATCH p = shortestPath((a)-...->(c))) now run the
shared shortestPath BFS with left-outer-join semantics: one row per seed,
projected values when a path exists, nulls when none, errors propagated.

shortestPath(...)/allShortestPaths(...) are now valid in value position
(RETURN length(shortestPath((a)-[:R*]->(b))), WITH, SET projections):
the projected-pattern validator masks the path-function arguments instead
of rejecting them, and the shared row evaluator runs the same BFS per row.
length() of an unbound path returns null instead of a fabricated 0.

Convergence: MATCH, OPTIONAL MATCH, and value forms all traverse through
e.shortestPath/e.allShortestPaths and project through buildPathContext;
clause-position detection shares extractShortestPathCall with
isShortestPathClause (new); the validator's mask reuses indexASCIIFold
(zero-alloc ASCII fold shared with equalFoldASCII).

Performance (M2 Max, -cpu=1 -count=3, BenchmarkStatementRouting):
  autocommit/simple_match_limit  main 161 allocs, 17.4-18.8 us/op
                                 branch 161 allocs, 17.5-17.7 us/op
  explicit_tx/simple_match_limit main 88 allocs, 11.5-12.0 us/op
                                 branch 88 allocs, 11.4 us/op
  No allocation or latency regression; extractShortestPathCall's
  upperASCII(funcName) copies were removed with constant upper-case
  literals after memprofile diffing showed the +2 allocs they added.

Tests: optional_shortest_path_test.go pins #581's five Neo4j outcomes
plus value forms in RETURN/WITH, autocommit and explicit transactions,
each run twice; full pkg/cypher suite, -race, and TCK ratchet
(7794/7794, 100%) pass.
Pull Request #763: fix(cypher): optional shortestPath and shortestPath-as-value converge on one BFS (#581, #721)

249 of 322 new or added lines in 7 files covered. (77.33%)

175892 of 202287 relevant lines covered (86.95%)

1.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
59
80.91
pkg/cypher/shortest_path.go
9
84.0
pkg/cypher/clauses.go
3
95.32
pkg/cypher/semantic_validation.go
2
97.28
pkg/cypher/keyword_scan.go
Jobs
ID Job ID Ran Files Coverage
1 36379741804.1 28 Sep 2026 05:06AM UTC 655
86.95
GitHub Action Run
Source Files on build 36379741804
  • Tree
  • List 655
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #763
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc