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 WHERE clause.

    See Example 6-25.

  • VERTEX_ID and EDGE_ID functions that uniquely identify a vertex and an edge respectively can be used within a SQL graph query.
  • VERTEX_EQUAL and EDGE_EQUAL predicates for matching vertex and edge identifiers are supported.
  • SQL and JSON expressions are supported inside WHERE and COLUMNS clauses.

    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 WHERE or COLUMNS clause.

    See Example 6-26.

  • Graph algorithm functions (GAFs) can be invoked from within the GRAPH_TABLE operator in a SQL graph query.

    See Running Graph Algorithm Functions in SQL Graph Queries.

  • Single line and multi-line comments are supported within a graph query.
  • All identifiers within the GRAPH_TABLE operator 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 COST and TOTAL_COST are not supported.
  • Inline subqueries and LATERAL inline views are not supported.
  • SQL Macros are not supported.
  • The following limitations apply when calling a graph algorithm function (GAF) from within the GRAPH_TABLE operator 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.