Re: SQL Property Graph Queries (SQL/PGQ)
amit <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Junwang Zhao <zhjwpku@gmail.com>, Vik Fearing <vik@postgresfriends.org>, Ajay Pal <ajay.pal.k@gmail.com>, Imran Zaheer <imran.zhir@gmail.com>, Peter Eisentraut <peter@eisentraut.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-07-23T08:38:36Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix some typos and make small stylistic improvements
- 5282bf535e47 19 (unreleased) landed
-
Cleanup users and roles in graph_table_rls test
- 040a56be4bcc 19 (unreleased) landed
-
Dump labels in reproducible order
- c9babbc8816a 19 (unreleased) landed
-
SQL Property Graph Queries (SQL/PGQ)
- 2f094e7ac691 19 (unreleased) landed
-
Factor out constructSetOpTargetlist() from transformSetOperationTree()
- 8c2b30487cc7 19 (unreleased) landed
-
Sort out table_open vs. relation_open in rewriter
- d537f59fbbfc 19 (unreleased) landed
-
Rename grammar nonterminal to simplify reuse
- 8080f44f96a9 19 (unreleased) landed
-
Make ecpg parse.pl more robust with braces
- 7f88553ceaca 19 (unreleased) landed
-
Don't lock partitions pruned by initial pruning
- 525392d5727f 18.0 cited
-
Remove pg_regex_collation
- 792b2c7e6d92 18.0 cited
-
Use auxv to check for CRC32 instructions on ARM.
- aac831cafa6f 18.0 cited
-
Fix inappropriate uses of atol()
- f5a1311fccd2 18.0 cited
-
Remove unnecessary array object_classes[] in dependency.c
- ef5e2e90859a 17.0 cited
Hi Ashutosh, On Tue, Jul 22, 2025 at 8:40 PM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > Here's the patchset rebased on the latest master. Thanks for the update. I was going through the patch series today and had a few comments on the structure that might help with reviewing and eventually committing, whoever ends up doing that. :) I noticed that some functions, like graph_table_property_reference(), are introduced in one patch and then renamed or removed in a later one. It’s easier to review if such refactoring is avoided across patches -- ideally, each patch should introduce code in its final intended form. That also helps reduce the number of patches and makes each one more self-contained. One of the later patches (0004) collects several follow-up changes. While it fixes a real bug -- a crash when GRAPH_TABLE is used inside plpgsql due to a conflict with the columnref hook -- it also includes incidental cleanups like switching to foreach_node(), updating comments, and adjusting function signatures. Those would be better folded into the patches that introduced the relevant code, rather than grouped into a catch-all at the end. That keeps each patch focused and easier to review -- and easier to merge when committing. A general principle that might help: if you're refactoring existing code, a standalone preliminary patch makes sense. But if you're tweaking something just added in the same series, it’s usually better to squash that into the original patch. The rename from graph_table_property_reference() to transformGraphTablePropertyRef() may be a fair exception since it reflects a shift prompted by the bug fix -- but most other adjustments could be folded in without loss of clarity. I understand the intent to spell out each change, but if the details are incidental to the overall design, they don’t necessarily need to be split out. Explaining the reasoning in the thread is always helpful, but consolidating the patches once the design has settled makes things easier for both reviewers and committers. Finally, attaching the patches directly, with versioned names like v8-000x, instead of zipping them helps. Many folks (myself included) will casually skip a zip file because of the small hassle of unzipping just to read a patch. I once postponed reading such a patch and didn’t get back to it for quite a while. :) -- Thanks, Amit Langote