6.12 Supported Features and Limitations When Querying a SQL Property Graph
This section provides the list of supported and unsupported features when querying a SQL Property Graph.
Supported Features
- Single label, no label, label disjunction and label conjunction are supported in label expressions inside a graph pattern. For more information, see:
- Any directed edge patterns (
MATCH (a)-[e]-(b) are supported.See Example 6-7.
- Anonymous vertex (
MATCH ()-[e]->()) and edge (MATCH (a)-[]->(b)) variables are supported.See Example 6-8.
- Complex path pattern queries are supported.
See Example 6-9, Example 6-10 and Example 6-11.
- Bounded recursive path pattern queries are supported.
See Example 6-16.
- Bind variables are supported inside a
WHEREclause.See Example 6-25.
VERTEX_IDandEDGE_IDfunctions that uniquely identify a vertex and an edge respectively can be used within a SQL graph query.- See Vertex and Edge Identifiers.
- See Example 6-29.
VERTEX_EQUALandEDGE_EQUALpredicates for matching vertex and edge identifiers are supported.- See Vertex and Edge Identifiers.
- See Example 6-30.
- SQL and JSON expressions are supported inside
WHEREandCOLUMNSclauses.See Example 5-10.
- JSON simplified syntax is supported to access properties of type
JSON.See Example 5-10.
- PL/SQL functions are supported inside a
WHEREorCOLUMNSclause.See Example 6-26.
- Graph algorithm functions (GAFs) can be invoked from within the
GRAPH_TABLEoperator in a SQL graph query. - Single line and multi-line comments are supported within a graph query.
- All identifiers within the
GRAPH_TABLEoperator in a SQL graph query, such as graph names, alias names, graph element pattern variable names, labels and property names follow the standard SQL rules about case sensitivity:- Identifiers within double quotes are case sensitive.
- Identifiers not enclosed in double quotes are implicitly converted to uppercase and enclosed in double quotes.
- SQL hints are supported inside and outside the SQL graph query for
tuning.
See Tuning SQL Property Graph Queries for more information.
- You can query a graph defined in another schema if you have the
required privileges.
See Granting System and Object Privileges for SQL Property Graphs for more information.
Limitations
- Variable-length pattern matching goals (such as
ANY,ALL,ALL SHORTEST,ANY CHEAPEST, and so on) are not supported. - Path pattern variables (
MATCH p = (n)-[e]->(m)) are not supported. - Clauses such as
COSTandTOTAL_COSTare not supported. - Inline subqueries and
LATERALinline views are not supported. - SQL Macros are not supported.
- The following limitations apply when calling a
graph algorithm function (GAF) from within the
GRAPH_TABLEoperator in a SQL graph query:- Running a GAF can consume a significant amount of undo tablespace. The minimum undo required is approximately equal to the size of the graph. If the undo tablespace is configured with AUTOEXTEND ON, growth of the undo data files is managed automatically. If the undo tablespace has a fixed size, ensure the configured undo capacity is at least the size of the graph before running the algorithm. This consideration commonly applies to on-premises deployments and Active Data Guard (ADG) standby databases.
- GAF cannot run if there is an open transaction with uncommitted changes that could impact the graph.
- GAF cannot run on graphs whose element tables are protected by a row-level security policy, including when the policy is applied indirectly through views.
- In an Oracle Real Application Clusters (RAC) environment, GAF runs on a single RAC instance only; it cannot run across multiple instances in the cluster.
- A GAF cannot run on graphs that use a redacted column as an input property. During execution, GAF issues DML statements that can reference input properties. DML statements using redacted columns as a source are not supported. See Oracle Data Redaction and DML and DDL Operations in Oracle AI Database Data Redaction Guide for more information.
Parent topic: SQL Graph Queries