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.

GF01

Enhanced numeric functions

GQL supports CEILING() as a synonym to the CEIL() function. Cypher only supports ceil().

GF03

Logarithmic functions

GF04

Enhanced path functions

GQL’s PATH_LENGTH() function is equivalent to Cypher’s length() function.

GF10

Advanced aggregate functions: general set functions

  • GQL’s COLLECT_LIST() function is equivalent to Cypher’s collect() function.

  • GQL’s STDEV_SAMP() function is equivalent to Cypher’s stDev() function.

  • GQL’s STDEV_POP() function is equivalent to Cypher’s stDevP() function.

GF11

Advanced aggregate functions: binary set functions

  • GQL’s PERCENTILE_CONT() function is equivalent to Cypher’s percentileCont() function.

  • GQL’s PERCENTILE_DISC() function is equivalent to Cypher’s percentileDisc() function.

GQ08

FILTER statement

Selects a subset of the records of the current working table. Cypher uses WITH instead.

GQ09

LET statement

Adds columns to the current working table. Cypher uses WITH instead.

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.

GV39

Cypher supports GQL’s local temporal types, with the following exceptions:

  • GQL defines a parameterless version of the date() function not in Cypher: CURRENT_DATE.

  • GQL’s LOCAL_TIME() function is equivalent to Cypher’s localtime() function. GQL also defines a parameterless version of the function not in Cypher: LOCAL_TIME.

  • GQL’s LOCAL_DATETIME() function is equivalent to Cypher’s localdatetime() function. GQL also defines a parameterless version of the function not in Cypher: LOCAL_DATETIME.

GV40

Cypher supports GQL’s zoned temporal types, with the following exceptions:

  • GQL’s ZONED_TIME() function is equivalent to Cypher’s time() function. GQL also defines a parameterless version of the function not in Cypher: CURRENT_TIME.

  • GQL’s ZONED_DATETIME() function is equivalent to Cypher’s datetime() function. GQL also defines a parameterless version of the function not in Cypher: CURRENT_TIMESTAMP.

GV45

Record types

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