-
Notifications
You must be signed in to change notification settings - Fork 10
Compile path variables #301
Comments
@szarnyasg Your slides from last year's Budapest DB Meetup indicate that ingraph supports paths but this issue seems to contradict that. Can you please elaborate on the current state of paths in ingraph? Thanks! |
Hello @brncsk, there are two systems here: the ingraph's incremental in-memory engine and the Cypher-to-(Postgre)SQL transpiler presented in the meetup slides. Unfortunately, neither of them received much attention during this year as we were focused on improving the LDBC benchmark suites. Anyways:
What sort of system are you looking for?
|
@szarnyasg Thank you for the prompt and in-depth reply! As a matter of fact, we are in the process of migrating away from AgensGraph (its OSS version was deemed unsuitable for production use) and towards vanilla PostgreSQL, so we're mostly interested in the The goal is to maintain (at least part of) the developer experience provided by the Cypher+SQL mix in AgensGraph. Our data is pretty low volume (n*1e4 low-degree nodes) at the moment, with queries mostly focusing on matching variable length paths1 instead of solving shortest path problems. One important challenge that remains is that we need path variables for accessing members of the matched paths (covered by #175, citing this issue as its blocker). Am I correct in assuming that 1 One such query would be: MATCH p=(s:A)-[:contains*0..]->(i:B)
WHERE id(s) = ?
RETURN DISTINCT UNNEST(nodes(p)) |
We've continuously had trouble with extracting good performance from transpiler SQL queries. The reasons behind this are manyfold (Postgres' optimization fence, too many subqueries, the difficulty of cardinality estimation for graphs, etc.). We will pick up this line of work in 2020 but that's definitely not something you can build on. How about Neo4j and Oracle PGX?
|
Path variable assignments need to be handled in the compiler, like the following excerpt from a MATCH clause:
This is currently leading to
IncompleteCompilationException
.The text was updated successfully, but these errors were encountered: