Optional GQL features and analogous Cypher

This page lists optional GQL features that have analogous but not identical Cypher® features.

Optional GQL features are assigned a feature ID code. These codes order the features in the table below.

GQL Feature ID Description Comment and similar Cypher® functionality

G100

ELEMENT_ID function

GQL’s ELEMENT_ID() function is equivalent to Cypher’s elementId() function.

GF04

Enhanced path functions

Cypher provides the path_length() function, which is an alias to Cypher’s length() function

GF07

Temporal duration functions

Cypher provides the GQL naming alias duration_between() function, which is an alias to Cypher’s duration.between().. In GQL, if either argument is not a temporal instant type, a data exception is raised (22G03). In Cypher, a different error (e.g. invalid call signature) may be reported, but with the same severity. Cypher returns the date difference in years, months, and days; GQL returns the date difference in days only. For the same interval the results can therefore differ (e.g. P1M1D in Cypher vs P29D in GQL for 2026-02-01 to 2026-03-02).

GF10

Advanced aggregate functions: general set functions

GF11

Advanced aggregate functions: binary set functions

GQ10, GQ11, GQ23, GQ24

FOR statement: list value support, binding table support, WITH ORDINALITY, WITH OFFSET

Unnests a list or a binding table by expanding the current working table. Cypher uses UNWIND instead. Unlike the FOR statement, UNWIND does not support yielding indexes and offsets.

GV12

64-bit signed integer numbers

GQL’s SIGNED INTEGER64 (alternatively: INTEGER64, INT64) type is equivalent to Cypher’s INTEGER type.

GV23

Floating point type name synonyms

GQL’s DOUBLE type is equivalent to Cypher’s FLOAT type.

GV24

64-bit floating number

GQL’s FLOAT64 type is equivalent to Cypher’s FLOAT type.

GV45

Record types

GQL’s open RECORD type is equivalent to the MAP type in Cypher.