Interpreted GSQL Limitations

GSQL features not yet supported in Interpreted Mode

Currently, interpreted mode cannot be combined with distributed query execution model, i.e., a query defined with CREATE DISTRIBUTED QUERY cannot be run in interpreted mode. However, interpreted queries can still run on a distributed graph with a regular, non-distributed execution model.

The table below lists additional limitations. These limitations are expected to be temporary. We are continuing to expand the capabilities of Interpreted Mode.

The "Not Supported" column is intended to be comprehensive, but the "Supported" column is not. Rather it gives examples to show the contrast with what is not supported.

Category

Supported (highlights, not a full list)

Not Supported

Modes

Queries in regular (non-distributed) mode

Distributed mode

Statement types

  • TYPEDEF tuple

  • SELECT ... FROM <edge_set>

  • SELECT ... FROM <vertex_set>

  • CASE ... WHEN ... THEN

  • IF ... ELSE ... THEN

  • WHILE

  • BREAK, CONTINUE

  • FOREACH, FOREACH... RANGE+

  • Assignment for accumulators or local variables

  • PRINT

  • UPDATE

  • INSERT

  • DELETE

  • LOG

  • Exceptions:

    • RAISE

    • TRY

SELECT block clauses

  • ACCUM

  • POST-ACCUM

  • WHERE

  • HAVING

  • ORDER BY (but output will not be sorted)

  • LIMIT

  • SAMPLE clause in SELECT

Attributes and Accumulators

  • Global and local accumulators

  • Global and local variables

  • Most accumulator types

  • Attributes cannot be accessed outside of the ACCUM or POST-ACCUM clauses

  • ArrayAccum

  • Previous value of accumulator with ' operator, e.g., @@acc'

Functions and Operators

  • Math operators

  • Comparison operators

  • Boolean operators

  • to_vertex(), to_vertex_set()

  • Math functions

  • Most string functions: to_string(), float_to_int(), str_to_int(), lower(), upper()

  • IN, NOT IN

  • LIKE

  • BETWEEN ... AND

  • IS NULL, IS NOT NULL (checking whether parameters are absent/present)

  • built-in functions

  • Set functions: COUNT(), MAX(), .FILTER(), etc.

  • isDirected()

  • trim()

  • neighbor(), neighborAttribute()

  • COALESCE()

  • evaluate()

  • selectVertex()

  • LOADACCUM()

  • User-Defined Functions

Data types

Explicit lists, e.g., [1, 3, 2]

  • JSONOBJECT, JSONARRAY

  • STRING COMPRESS as accumulator type

  • Built-in Constants GSQL_INT_MAX, GSQL_INT_MIN, GSQL_UINT_MAX

  • Explicit sets, e.g., (1, 3, 2)

  • BAG type parameters

Output options

  • JSON format V1

  • PRINT ... WHERE

  • PRINT TO_CSV

  • FILE objects