Cypher Dialect & Restrictions
DortDB's graph language is a set of implementation extensions to Cypher, based on the openCypher grammar. DortDB can parse the entire openCypher 9 grammar, but, in keeping with DortDB's data-selection focus, only the read subset is executed.
This language is derived from the openCypher grammar and is not approved by the openCypher Implementers Group, so its formal description is implementation extensions to Cypher, not "Cypher" or "openCypher". These docs and the package name use "Cypher" as shorthand for readability. Cypher® is a registered trademark of Neo4j, Inc.
Supported
- The full openCypher 9 grammar parses.
- Node and relationship pattern matching, in any direction.
- Variable-length paths, e.g.
-[:KNOWS *1..3]->. - Post-match processing:
WHERE,RETURN,ORDER BY,SKIP,LIMIT, aggregation, and so on.
Not implemented, and not planned
DortDB is read-only, so the data-writing clauses are rejected at planning time even though they parse:
CREATE,MERGESET,REMOVEDELETE,DETACH DELETE
Running one of these produces an only read operations are supported error.
Static typing and schema validation are likewise omitted by design, across all DortDB languages.
Standard library
Only a subset of the standard Cypher functions and operators is currently implemented. When a function you need is missing, supply it as an extension; this is the intended way to fill gaps in library coverage.
Cypher functions may additionally set
addAdapterCtx: true,
which passes them the queried graph and its data adapter. This is the mechanism
behind graph-aware built-ins such as
startNode.
Selecting the graph
The graph a query runs against is the source named by the language's
defaultGraph configuration. Alternatively, use the FROM graph clause to
target a different graph.
FROM social
MATCH (p:Person)
RETURN p.name AS name