-
-
Notifications
You must be signed in to change notification settings - Fork 90
Description
As we move ArcadeDB towards modern graph standards, we need to track gaps between our current implementation, Cypher 25 (aligned), and full ISO/IEC 39075 (GQL) compliance. While Cypher 25 implements key GQL features (like QPP), it relies on legacy patterns and driver-level logic for features that GQL mandates within the query language itself.
This issue tracks the specific mandatory GQL features currently missing or implemented via legacy Cypher syntax.
1. Core Syntax & DML
Alignment with GQL keywords and control flow.
- Implement
INSERT: SupportINSERTas the primary clause for creating nodes/edges (replacing or aliasingCREATE). - Implement
FOR: SupportFOR item IN listloop syntax (replacing or aliasingUNWIND). - Strict
FINISHClause: ImplementFINISHto explicitly terminate queries that do not return data (updates). - Quantified Path Patterns (QPP): Full support for GQL-style complex path patterns (e.g.,
((:A)-[:REL]->(:B))+). - Grouped Path Assignments: Ability to assign variables to repeated path groups.
2. Infrastructure & Environment
GQL mandates these controls exist within the query language, not just the driver/API.
-
Transaction Control Syntax:
-
START TRANSACTION -
COMMIT -
ROLLBACK -
Session Management:
-
SESSION SET <parameter> -
SESSION RESET -
SESSION CLOSE -
Schema Context:
-
USE <graph_name>(Standard GQL syntax) -
AT SCHEMA/CURRENT_SCHEMAsupport.
3. Type System & Logic
Handling of strict GQL data types and truth values.
- Trinary Logic (
UNKNOWN): Implement theUNKNOWNtruth value (distinct from justNULLpropagation in boolean logic). - Strict Numeric Types: Support for GQL-defined numeric precisions (e.g.,
FLOAT32vsFLOAT64,SIGNED INTEGER). - Type Predicates: Support standard GQL type checking syntax:
x IS TYPED <Label>.
4. DDL & Schema Objects
GQL standardizes how graph structures are defined.
- Graph Types: Implement
CREATE GRAPH TYPEto define schema templates. - Graph Creation: Implement
CREATE GRAPH ... LIKE <graph_type>. - Catalog Queries: Support standard GQL catalog introspection (listing graphs/schemas via query).
5. Deprecations / Cleanup (Cypher 25 Strictness)
Removing legacy Cypher syntax that violates GQL.
- Deprecate
PERIODIC COMMIT: Replace withCALL { ... } IN TRANSACTIONS. - Deprecate Legacy Parameters: Remove support for
{param}syntax in favor of$param. - Enforce Grouping Keys: Raise errors for ambiguous aggregation grouping (implicit keys) in
RETURNclauses.
References
- ISO/IEC 39075:2024 (GQL Standard)
- openCypher 9 vs Cypher 25 Migration Guide