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

orneryd / NornicDB / 37228801453
89%

Build:
DEFAULT BRANCH: main
Ran 04 Oct 2026 07:49PM UTC
Jobs 1
Files 685
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

04 Oct 2026 07:34PM UTC coverage: 86.996% (-0.03%) from 87.025%
37228801453

push

github

orneryd
fix(cypher): reject incomplete statements and stored expression text (#514)

Neo4j rejects a statement that ends inside a clause and never stores
query text as property data. NornicDB accepted both, diverging from
Neo4j 5.26.30 on the statements listed in the #514 reopen:

- CREATE — wrote an unlabeled node, now a SyntaxError with nothing written
- MATCH (n:X) / MATCH (n) WITH n / CREATE (n:Z) WITH n / OPTIONAL MATCH /
  WITH n, count(m) AS c — now SyntaxErrors (reading clause with nothing
  after it); the old UNWIND-only completeness rule covers all four
- MATCH (m:BFn) OPTIONAL MATCH (n)-[:CALLS]->(m {uid: 'b'}) and
  MATCH (n:PDRecord {id: identifier}) — SyntaxError via the same rule
- create.go — wrote an unlabeled node, now a SyntaxError (CREATE must be
  followed by a pattern or a named-path assignment)
- CALL — returned ProcedureNotFound, now a SyntaxError
- CREATE (:T {v: <expr>}) and FOREACH (x IN ['a'] | CREATE (:F {v: y}))
  stored the expression's source text as the value; an unevaluable CREATE
  property-map expression is now a SyntaxError. Genuine evaluation errors
  (1 / 0) keep their ArithmeticError, and expressions the row evaluator
  resolves (pattern bindings, loop bindings) are unaffected.
- CREATE PROMOTION PROFILE without a name — the knowledge-policy DDL parse
  error is now classified as Neo.ClientError.Statement.SyntaxError on
  every route

The completeness rule runs after syntax validation so malformed text keeps
the parser's own error, and the clause scanner skips WITH inside
expressions (STARTS WITH, ENDS WITH, IS :: TIME WITH TIME ZONE), including
across comments. WITH EMBEDDING remains a valid terminator.

Tests:
- pkg/cypher/gh514_incomplete_statements_test.go: all 13 statements are
  SyntaxErrors with nothing written, plus positive controls for evaluable
  CREATE expressions
- existing tests that pinned the old behavior (MATCH with no RETURN,
  OPTIONAL MATCH with no RETURN, unbound CREATE identifiers stored as
  text)... (continued)

135 of 168 new or added lines in 3 files covered. (80.36%)

70 existing lines in 16 files now uncovered.

180613 of 207611 relevant lines covered (87.0%)

1.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
19
83.0
-4.16% pkg/cypher/validator_strictness.go
13
84.73
0.01% pkg/cypher/create.go
1
95.46
0.01% pkg/cypher/executor_entry.go

Coverage Regressions

Lines Coverage ∆ File
28
88.15
-3.49% pkg/cypher/match_semantic_validation.go
9
89.59
-0.56% pkg/nornicdb/db_admin.go
4
85.71
-2.6% pkg/fabric/remote_executor.go
4
93.13
-1.72% pkg/qdrantgrpc/vector_index_cache.go
4
96.96
-1.35% pkg/storage/property_key_dictionary.go
3
90.07
-0.99% pkg/temporal/decay_integration.go
2
89.91
-0.16% pkg/cypher/executor.go
2
92.42
-0.76% pkg/cypher/merge_semantic_validation.go
2
90.13
-0.66% pkg/cypher/optimized_executors.go
2
87.18
0.0% pkg/cypher/pipeline_executor.go
2
83.06
-0.65% pkg/fabric/result.go
2
89.47
-3.51% pkg/nornicdb/auto_embed_inference.go
2
36.3
-0.29% pkg/storage/composite_capabilities.go
2
94.38
-0.13% pkg/storage/schema.go
1
80.76
-0.05% pkg/cypher/traversal.go
1
97.64
-0.26% pkg/temporal/tracker.go
Jobs
ID Job ID Ran Files Coverage
1 37228801453.1 04 Oct 2026 07:49PM UTC 685
87.0
GitHub Action Run
Source Files on build 37228801453
  • Tree
  • List 685
  • Changed 25
  • Source Changed 0
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b57424dd on github
  • Prev Build on main (#37224487153)
  • Next Build on main (#37229446468)
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