Package org. partiql. lang. graph
Types
A validator and reader for external graphs represented in Ion in accordance with the graph.isl schema.
Translate an AST graph pattern into a "plan spec" to be executed by the graph engine. Currently, the only non-trivial aspect is making sure (in normalizeElemList) that node and edge elements alternate. This (as well as the plan specs) is expected to become more sophisticated as more graph pattern features are supported (esp. quantifiers and alternation).
This is an "external" interface to a graph data value, providing functionality needed for a pattern-matching processor. The intent is to come up with something that can be implemented by different "platforms" in different ways. There are only minimal assumptions about the underlying implementation of graph nodes and edges: they must provide access to labels and payloads and the == equality must distinguish and equate them properly. In particular, there is no node-edge-node "pointer" navigation. The graph's structure is exposed only through the "scan" functions for getting adjacent nodes and edges satisfying certain criteria.
Translation of a graph match pattern -- a collection of path patterns -- into a "plan" for GraphEngine.
A straightforward implementation of in-memory graphs.
A stride is a sequence like node, edge, node, edge, ..., node that is, strictly alternating nodes and edges, starting and ending with a node. It is used as an intermediate step in computing path matches.
Translation of a path pattern into a "plan" for GraphEngine.
A StrideTree is a plan for computing matches for a stride. Joins needed to compute a stride can be performed in different orders; a StrideTree represents a chosen order.