GQL Conformance
ArcFlow implements ISO/IEC 39075:2024 (GQL Edition 1 + V2 accepted proposals) at conformance level full.
At a glance#
| Surface | Result | Detail | |
|---|---|---|---|
| ✅ | openCypher TCK | 3881 / 3881 | release 2024.3, full suite |
| 🟡 | ISO GQL features | 57 / 60 supported | 3 unsupported (vendor choice — see below) |
| 🔌 | ArcFlow extensions | 13 documented | beyond-standard surface; opt-in only |
| 🏷️ | Engine version | 0.8.0 | current release |
Vendor choices#
ISO GQL leaves several decisions to implementations. ArcFlow's:
| Decision | Choice | |
|---|---|---|
| ⚙️ | label_cardinality_nodes | exactly_one |
| ⚙️ | label_cardinality_edges | exactly_one |
| ⚙️ | edge_directionality | directed_by_default |
| ⚙️ | identifier_domain_nodes | u64 |
| ⚙️ | identifier_domain_edges | u64 |
| ⚙️ | property_value_type | PropertyValue_dynamic_union |
GQLSTATUS codes#
Every query result carries a 5-digit GQLSTATUS code per the standard.
| Code | Meaning | |
|---|---|---|
| ✅ | 00000 | successful completion with data |
| ℹ️ | 02000 | no data |
| ⚠️ | 22G01 | numeric value out of range |
| ⚠️ | 40001 | serialization failure |
| ⚠️ | 42000 | syntax error |
| 🔥 | 53000 | insufficient resources |
| 🛑 | 57014 | query cancelled |
| 🔥 | 58000 | system error |
| ❌ | G1000 | general error |
| ❌ | G1001 | constraint violation |
| ❌ | G1002 | type mismatch |
| ❌ | G1003 | invalid argument |
Conformance phases#
Conformance was achieved across these phases:
| Phase | Name | Status | |
|---|---|---|---|
| ✅ | GQL-0001 | gap analysis | COMPLETE |
| ✅ | GQL-0002 | type system syntax basics | COMPLETE |
| ✅ | GQL-0003 | pattern matching label expressions | COMPLETE |
| ✅ | GQL-0004 | execution model formalization | COMPLETE |
| ✅ | GQL-0005 | conditional execution gql v2 | COMPLETE |
| ✅ | GQL-0006 | primary keys constraints merge gql v2 | COMPLETE |
| ✅ | GQL-0007 | conformance statement | COMPLETE |
❌ Unsupported features (vendor choice)#
ISO GQL allows implementations to opt out of specific features. ArcFlow's 3 unsupported:
| Feature ID | Why opted out | |
|---|---|---|
| ❌ | multiple_labels_per_node | Schema model uses exactly_one label cardinality (see vendor choices above); multi-label support would change graph semantics |
| ❌ | gql_directories | Multi-graph directories deferred; ArcFlow targets single-graph-per-store deployments |
| ❌ | gql_flagger | GQL flagger linter not provided; ArcFlow's own parser carries equivalent diagnostics through GQLSTATUS codes |
The other 57 / 60 ISO features are supported at conformance level full. The full feature inventory ships in the engine repo's conformance corpus and is verified continuously by the regression suite (see TCK + Regressions below).
🔌 ArcFlow extensions beyond GQL#
ArcFlow ships extensions beyond the ISO standard. Each extension is documented in the capability page it belongs to:
| Extension (GQL keyword) | Canonical page |
|---|---|
CREATE LIVE VIEW / LIVE MATCH | /docs/live-queries |
MATCH ASOF (temporal joins) | /docs/temporal |
HNSW vector index (CREATE VECTOR INDEX) | /docs/vector-search |
| Graph embedding algorithms (PageRank, Louvain, …) | /docs/algorithms |
CREATE SKILL ... WHEN ... ON ... (event-driven skills) | /docs/skills |
| GPU GraphBLAS dispatch | /docs/gpu |
| Evidence algebra (confidence + provenance operators) | /docs/concepts/evidence-model |
| Z-set incremental view maintenance | /docs/live-queries (Z-set is the underlying mechanism) |
| Live write-back views | /docs/live-queries |
Extensions do not affect ISO conformance — they are opt-in syntax the standard explicitly leaves to implementations.
🧪 Test corpus#
The full openCypher TCK (3881/3881) plus ArcFlow's regression corpus runs on every engine release. See openCypher TCK Results and Extension Regressions.