Re: SQL Property Graph Queries (SQL/PGQ)

From: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
To: assam258(at)gmail(dot)com
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, Amit Langote <amitlangote09(at)gmail(dot)com>, Junwang Zhao <zhjwpku(at)gmail(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org>, Ajay Pal <ajay(dot)pal(dot)k(at)gmail(dot)com>, Imran Zaheer <imran(dot)zhir(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: SQL Property Graph Queries (SQL/PGQ)
Date: 2026-01-05 04:15:24
Message-ID: CAExHW5u8FhriXtRemrPjR=8L=mB6rsmsne=L5h0HBRb54-CGZA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jan 2, 2026 at 6:53 PM Henson Choi <assam258(at)gmail(dot)com> wrote:
>
> When I raise issues about differences from Cypher, even when I sense my suggestions
> might be overreaching, I do so for two reasons: (a) I don't have access to the
> SQL/PGQ standard document, and (b) my implementation-level experience is primarily
> with Cypher. However, if I feel this dissonance, users coming from Cypher will
> likely experience the same confusion. I hope you'll consider this user perspective
> valuable, even when the technical decisions differ.

I think all these issues are worth raising on pgsql-hackers. Many
users who are using Cypher may want to use PostgreSQL + SQL/PGQ as
their graph database. All these inputs are valuable. Let me summarise
my thoughts briefly over here.

IMO, at a higher level, we could leverage Apache/AGE-like extensions
to provide Cypher compatibility on top of SQL/PGQ. The required
functionality from SQL/PGQ (directly or indirectly) can be implemented
in the core. For example, the core will throw an error when a label is
not defined, but Apache/AGE may detect such labels beforehand, avoid
translating the query to SQL/PGQ and return 0 rows in such a case. Or
Apache/AGE may add stable functions for labels() and property_names(),
but use SQL/PGQ catalogs for implementation.

I envision the relation between Apache/AGE and SQL/PGQ evolving
similarly to how the relation between pg_partman and built-in
partitioning evolved. Others may have different opinions. We may even
want to weigh each feature/functionality separately. How to support
Cypher queries on PostgreSQL in the context of SQL/PGQ seems to be a
broader topic worth a discussion of its own.

--
Best Wishes,
Ashutosh Bapat

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chengpeng Yan 2026-01-05 04:15:25 Re: Add a greedy join search algorithm to handle large join problems
Previous Message Michael Paquier 2026-01-05 03:59:30 Re: [PROPOSAL] Termination of Background Workers for ALTER/DROP DATABASE