A.10.1 PGQL Features Supported in Property Graph Schema

PGQL is a SQL-like query language for querying property graph data. It is based on the concept of graph pattern matching and allows you to specify, among other things, topology constraints, paths, filters, sorting and aggregation.

The Java API for PGQL defined in the oracle.pg.rdbms.pgql package supports the PGQL specification with a few exceptions. (Refer to the PGQL Specification).

The following table describes the list of supported and unsupported PGQL features:

Table A-1 Supported PGQL Features and Limitations for PG Schema Graphs

Feature PG Schema
CREATE PROPERTY GRAPH Supported
DROP PROPERTY GRAPH Supported
Fixed-length pattern matching Supported
Variable-length pattern matching goals Supported:
  • Reachability

Limitations:

  • ANY
  • ANY SHORTEST
  • TOP k SHORTEST
  • ALL SHORTEST
  • ANY CHEAPEST
  • TOP k CHEAPEST
  • ALL
Variable-length pattern matching quantifiers Supported:
  • *
  • +
  • ?
  • { n }
  • { n, }
  • { n, m }
  • { , m }
Variable-length path unnesting Not supported
GROUP BY Supported
HAVING Supported
Aggregations Supported:
  • COUNT
  • MIN, MAX, AVG, SUM

Limitations:

  • LISTAGG
  • ARRAY_AGG
DISTINCT
  • SELECT DISTINCT
  • Aggregation with DISTINCT (such as, COUNT(DISTINCT e.prop))
Supported
SELECT v.* Not Supported
ORDER BY (+ASC/DESC), LIMIT, OFFSET Supported
Data Types Supported:
  • NVARCHAR2(15000)
  • NUMBER
  • BOOLEAN (stored like NVARCHAR)
  • TIMESTAMP(6) WITH TIME ZONE
JSON No built-in JSON support. However, JSON strings (VARCHAR2) can be mapped into NVARCHAR2(15000) data type.
Operators Supported:
  • Relational: +, -, *, /, %, - (unary minus)
  • Arithmetic: =, <>, <, >, <=, >=
  • Logical: AND, OR, NOT

Limitations:

  • String: || (concat)
Functions and predicates Supported:
  • IS NULL, IS NOT NULL
  • JAVA_REGEXP_LIKE (based on CONTAINS)
  • ABS, CEIL/CEILING, FLOOR, ROUND
  • EXTRACT
  • ID
  • LABEL, HAS_LABEL
  • ALL_DIFFERENT
  • IN_DEGREE, OUT_DEGREE
  • CAST
  • CASE
  • IN and NOT IN

Limitations:

  • LOWER, UPPER
  • SUBSTRING
  • LABELS
User-defined functions Not supported
Subqueries:
  • Scalar subqueries
  • EXISTS and NOT EXISTS subqueries
Supported
INSERT/UPDATE/DELETE Supported for Oracle Database 19c and later
INTERVAL literals and operations Not supported

The following explains a few PGQL features that require special consideration.