agensgraph icon indicating copy to clipboard operation
agensgraph copied to clipboard

OpenCypher support

Open j616 opened this issue 5 years ago • 1 comments

Is there any documentation for what parts of openCypher Agensgraph does/doesn't support? The README and other docs state it supports openCypher but as far as I can see, it doesn't support the following (possibly incomplete) list of features:

  • Multiple labels (see #343 and #509 )
  • CALL syntax (EXECUTE...INTO...USING seems similar but not identical and uses different keywords)
  • Multiple relationship types (e.g. (a)-[r:TYPE1|TYPE2]->(b))

Agensgraph seems to implement neither a superset nor a subset of openCypher but more a derivative of it. Is that correct?

j616 avatar Oct 05 '20 14:10 j616

As mentioned in #514, in clauses seem to expect the postgres jsonb type. This breaks queries of the form

WHERE ALL(
  r in relationships(p) WHERE ((type(r) = 'Contributes') OR (type(r) = 'Produces'))
)

You can cast the result of relationships() function with the postgres function to_jsonb but this then means the wrong type argument is being passed to type(). The required query also requires a mix of postgres SQL and cypher rather than pure cypher.

For context, this was discovered in an attempt to work around the lack of support for (a)-[r:TYPE1|TYPE2]->(b).

I'm becoming increasingly frustrated at the lack of support for even basic opencypher syntax. I'd appreciate a reply to this issue.

j616 avatar Oct 21 '20 10:10 j616