Databases & Storage

Exploring SQL/PGQ graph querying in PostgreSQL

Key Takeaway

The SQL/PGQ standard allows defining property graphs over existing relational tables to enable pattern-based querying.

Summary

A technical deep dive explores how PostgreSQL can function as a graph database using the SQL/PGQ extension from the SQL:2023 standard. The article compares traditional recursive SQL queries with the more concise pattern-matching syntax of SQL/PGQ. It also discusses the implementation status and the complexities of modeling graph structures like shortest paths and trails within a relational engine.

SQL vs. SQL/PGQ for graph patterns

  • SQL/PGQ is an extension of the SQL:2023 standard that enables property graph definitions over existing tables.
  • Traditional SQL requires WITH RECURSIVE and manual bookkeeping (like tracking paths in arrays to avoid cycles) for multi-hop queries.
  • SQL/PGQ uses a GRAPH_TABLE syntax with pattern matching similar to Cypher.
  • The implementation in PostgreSQL has faced challenges, leading to previous reverts, with further features still in development.

Why it matters

As SQL/PGQ moves toward standardization, PostgreSQL users may gain native graph capabilities without migrating to specialized graph databases.

Original reference: postgr.es →