Cypher Support Reference

GraphQLite implements a substantial subset of openCypher. This page is a quick-reference index; details are in the sub-pages.

Clauses

ClauseStatusNotes
MATCHSupportedNode, relationship, variable-length, named path patterns
OPTIONAL MATCHSupportedLeft outer join semantics
CREATESupportedNodes and relationships
MERGESupportedON CREATE SET, ON MATCH SET
SETSupportedProperty assign, map replace (=), map merge (+=), label add
REMOVESupportedProperty removal, label removal
DELETESupportedNodes and relationships
DETACH DELETESupportedCascading edge removal
RETURNSupportedAS, DISTINCT, ORDER BY, LIMIT, SKIP, *
WITHSupportedAggregation, filtering, projection between clauses
WHERESupportedAll predicates; pattern predicates
UNWINDSupportedList expansion
FOREACHSupportedMutation inside list iteration
UNION / UNION ALLSupported
LOAD CSV WITH HEADERS FROMSupportedLocal file paths
FROMSupportedMulti-graph queries (GraphQLite extension)
CALL {} subqueriesNot supported
CALL procedureNot supportedNo procedure registry
CREATE INDEXNot supportedSchema is managed automatically
CASE in SETNot supportedUse CASE in RETURN/WITH instead
Nested FOREACHNot supported
EXPLAIN / PROFILENot supported

Functions

CategoryFunctions
StringtoUpper, toLower, trim, ltrim, rtrim, btrim, substring, replace, reverse, left, right, split, toString, size, isEmpty, char_length, character_length
Mathabs, ceil, floor, round, sqrt, sign, log, log10, exp, e, pi, rand, toInteger, toFloat
Trigonometrysin, cos, tan, asin, acos, atan, atan2, degrees, radians, cot, haversin, sinh, cosh, tanh, coth, isNaN
Listsize, head, tail, last, range, collect, keys, reduce, [expr FOR x IN list [WHERE cond]]
Aggregationcount, sum, avg, min, max, collect, stdev, stdevp
Entityid, elementId, labels, type, properties, startNode, endNode, nodes, relationships, length
Type conversiontoString, toInteger, toFloat, toBoolean, toStringOrNull, toIntegerOrNull, toFloatOrNull, toBooleanOrNull, valueType
Temporaldate, time, datetime, localdatetime, duration, datetime.fromepoch, datetime.fromepochmillis, duration.inDays, duration.inSeconds, date.truncate
Spatialpoint, distance, point.withinBBox
Predicateexists, coalesce, nullIf
CASECASE WHEN … THEN … END, CASE expr WHEN v THEN … END
Graph algorithmspageRank, labelPropagation, louvain, dijkstra, astar, degreeCentrality, betweennessCentrality, closenessCentrality, eigenvectorCentrality, weaklyConnectedComponents, stronglyConnectedComponents, bfs, dfs, nodeSimilarity, knn, triangleCount, apsp, shortestPath

Operators

CategoryOperators
Arithmetic+, -, *, /, %
Comparison=, <>, <, >, <=, >=
BooleanAND, OR, NOT, XOR
StringSTARTS WITH, ENDS WITH, CONTAINS, =~ (regex)
ListIN, + (concat), [index], [start..end] (slice)
NullIS NULL, IS NOT NULL
Property access. (dot notation), ['key'] (subscript)

Not Supported

  • CALL {} correlated subqueries
  • CALL procedure(...) procedure invocations
  • CREATE INDEX ON :Label(prop)
  • EXPLAIN / PROFILE
  • CASE expressions on the left-hand side of SET
  • Nested FOREACH

Sub-pages

  • Clauses — syntax, description, and examples for every clause
  • Functions — signature, return type, and example for every function
  • Operators — all operators with precedence table