Skip to content

Roadmap to ISO GQL Compliance (GQL Standard vs. Cypher 25) #3365

@lvca

Description

@lvca

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: Support INSERT as the primary clause for creating nodes/edges (replacing or aliasing CREATE).
  • Implement FOR: Support FOR item IN list loop syntax (replacing or aliasing UNWIND).
  • Strict FINISH Clause: Implement FINISH to 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_SCHEMA support.

3. Type System & Logic

Handling of strict GQL data types and truth values.

  • Trinary Logic (UNKNOWN): Implement the UNKNOWN truth value (distinct from just NULL propagation in boolean logic).
  • Strict Numeric Types: Support for GQL-defined numeric precisions (e.g., FLOAT32 vs FLOAT64, 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 TYPE to 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 with CALL { ... } 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 RETURN clauses.

References

  • ISO/IEC 39075:2024 (GQL Standard)
  • openCypher 9 vs Cypher 25 Migration Guide

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions