Re: pg_plan_advice
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Jakub Wartak <jakub.wartak@enterprisedb.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-11-04T19:54:44Z
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 →
-
Add pg_plan_advice contrib module.
- 5883ff30b02c 19 (unreleased) landed
-
Store information about Append node consolidation in the final plan.
- 7358abcc6076 19 (unreleased) landed
-
Store information about elided nodes in the final plan.
- 0d4391b265f8 19 (unreleased) landed
-
Store information about range-table flattening in the final plan.
- adbad833f3d9 19 (unreleased) landed
-
Allow for plugin control over path generation strategies.
- 4020b370f214 19 (unreleased) landed
-
Allow passing a pointer to GetNamedDSMSegment()'s init callback.
- 48d4a1423d2e 19 (unreleased) cited
-
Don't reset the pathlist of partitioned joinrels.
- 014f9a831a32 19 (unreleased) cited
Attachments
- v2-0005-Allow-for-plugin-control-over-path-generation-str.patch (application/octet-stream) patch v2-0005
- v2-0003-Store-information-about-Append-node-consolidation.patch (application/octet-stream) patch v2-0003
- v2-0002-Store-information-about-elided-nodes-in-the-final.patch (application/octet-stream) patch v2-0002
- v2-0001-Store-information-about-range-table-flattening-in.patch (application/octet-stream) patch v2-0001
- v2-0004-Temporary-hack-to-unbreak-partitionwise-join-cont.patch (application/octet-stream) patch v2-0004
- v2-0006-WIP-Add-pg_plan_advice-contrib-module.patch (application/octet-stream) patch v2-0006
On Fri, Oct 31, 2025 at 5:59 AM Jakub Wartak <jakub.wartak@enterprisedb.com> wrote: > My gcc-13 was nitpicking a little bit (see > compilation_warnings_v1.txt), so attached is just a tiny diff to fix > some of those issues. After that, clang-20 run was clean too. Here's v2. Change log: - Attempted to fix the compiler warnings. I didn't add elog() before pg_unreachable() as you suggested; instead, I added a dummy return afterwards. Let's see if that works. Also, I decided after reading the comment for list_truncate() that what I'd done there was not going to be acceptable, so I rewrote the code slightly. It now copies the list when adding to it, instead of relying on the ability to use list_truncate() to recreate the prior tstate. - Deleted the SQL-callable pg_parse_advice function and related code. That was useful to me early in development but I don't think anyone will need it at this point; if you want to test whether an advice string can be parsed, just try setting pg_plan_advice.advice. - Fixed a couple of dumb bugs in pgpa_trove.c. - Added a few more regression test scenarios. - Fixed a couple of typos/thinkos. -- Robert Haas EDB: http://www.enterprisedb.com