Re: SQL Property Graph Queries (SQL/PGQ)

From: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
To: Junwang Zhao <zhjwpku(at)gmail(dot)com>
Cc: 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>, Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: SQL Property Graph Queries (SQL/PGQ)
Date: 2025-01-01 08:52:29
Message-ID: CAExHW5sM+ZGVzR1428FsDHuWc-FU2-6zQr5j91KLh6vZaWY0ow@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Dec 21, 2024 at 6:21 PM Junwang Zhao <zhjwpku(at)gmail(dot)com> wrote:
Thanks Junwang for your review.

> Here are some review opinions for 0001, I haven't seen the other
> patches, forgive me if some of the opinions have already been
> addressed.
>
> 1. In propgraph_edge_get_ref_keys, when finding a matching foreign key,
> the fk pointer will always point to last ForeignKeyCacheInfo of
> the edge relation, which is wrong. We should add another pointer
> that remembers the matched ForeignKeyCacheInfo to ref_rel. See
> attached 0001.

Nice catch. I fixed it in a slightly different way reducing overall
code by using foreach_node(). I have merged this as part of 0004 which
has fixes for several other issues. Interestingly there was a SQL that
had revealed the problem in create_property_graph.sql. But we had
accepted a wrong output. Corrected that as well.

>
> 2. Some of the TODOs seem easy to address, attached 0002 does this.

From a cursory glance those changes look useful and mostly correct. It
will be good if you can provide a SQL test for those, covering that
part of the code. Please post the whole patch-set with your changes as
a separate commit/patch.

>
> 3. Since property name and label name are unique in property graph
> scope, some of the wording are not accurate. See attached 0003.

<para>
- For each property graph element, all properties with the same name must
- have the same expression for each label. For example, this would be
+ For each property graph, all properties with the same name must
+ have the same expression. For example, this would be

Each property graph element may have a property with the same name
associated with multiple labels. But each of those properties should
have the same expression. You may see that as the same property being
defined multiple times once in each label it is associated with OR
multiple properties with the same name. Current wording uses the
latter notion, so it looks fine to me. The changes made to error
messages are not needed with this notion.

--
Best Wishes,
Ashutosh Bapat

Attachment Content-Type Size
0002-support-WHERE-clause-in-graph-pattern-20250101.patch text/x-patch 7.2 KB
0005-Access-permissions-on-property-graph-20250101.patch text/x-patch 11.9 KB
0003-Support-cyclic-path-pattern-20250101.patch text/x-patch 37.4 KB
0004-Fixes-following-issues-20250101.patch text/x-patch 34.6 KB
0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ-20250101.patch text/x-patch 504.2 KB
0007-RLS-tests-20250101.patch text/x-patch 182.0 KB
0006-Property-collation-and-edge-vertex-link-sup-20250101.patch text/x-patch 114.3 KB
0008-Document-fixes-20250101.patch text/x-patch 5.1 KB
0009-WIP-Do-not-print-empty-columns-table-for-a--20250101.patch text/x-patch 14.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ashutosh Bapat 2025-01-01 09:01:59 Re: SQL Property Graph Queries (SQL/PGQ)
Previous Message Dean Rasheed 2025-01-01 08:19:41 Re: Adding OLD/NEW support to RETURNING