Re: pg_plan_advice

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Ajay Pal <ajay(dot)pal(dot)k(at)gmail(dot)com>
Cc: Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, Lukas Fittl <lukas(at)fittl(dot)com>, Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>, Dian Fay <di(at)nmfay(dot)com>, Matheus Alcantara <matheusssilv97(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_plan_advice
Date: 2026-01-26 16:07:55
Message-ID: CA+Tgmoa6EvDrqOfwyBwoVOWL7-y34=FUTwV62Rx32bN0RkDVOQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here is v12.

The big change in this version is that I've added extensive SGML
documentation for v0005. If the README was a little too low-level for
you, this might work better. If you'd like to view it without
downloading the patch set, I've put it up here:

https://robertmhaas.github.io/postgresql-static/html-pgpa-v12/pgplanadvice.html

Aside from that:

* Added a new GUC pg_plan_advice.always_store_advice_details. Without
that, you can't generate advice or see feedback on supplied advice
when using prepared queries, because we don't know at plan time that
it's right to incur the overhead of generating that stuff, and most of
the time it won't be.
* Revoked privileges on pg_clear_collected_shared_advice() as I had
already done on pg_get_collected_shared_advice().
* Removed a bogus elog(ERROR) in pgpa_walker_would_advise() in favor
of returning 0. I think somebody, likely Jakub, pointed this out
earlier, but I didn't quite absorb what I was being told until I
rediscovered the problem.
* Added a bunch more tests. I think the test coverage is getting
pretty decent now, but it could still use some tests targeting more
complex scenarios and corner cases. If you are curious about the
coverage report, see here:

https://robertmhaas.github.io/postgresql-static/coveragereport-pgpa-v12/contrib/pg_plan_advice/index.html

The low number for pgpa_scanner.l is basically bogus, but I don't know
of a way to make it not bogus. The low number for pgpa_ast.c is due to
a bunch of things related to bitmap scans not being right, which at
this point is, I think, the largest outstanding issue with the patch.
It's probably more interesting to look into ways of covering a few
more lines from pgpa_planner.c and pgpa_walker.c, which is where a lot
of the complexity in this code lives. Also, it would be nice to have
coverage of foreign scan cases, but I'm not quite sure what I need to
do to create tests for this module that also depend on postgres_fdw.
Any tips appreciated.

--
Robert Haas
EDB: http://www.enterprisedb.com

Attachment Content-Type Size
v12-0004-Store-information-about-Append-node-consolidatio.patch application/octet-stream 40.5 KB
v12-0001-Allow-for-plugin-control-over-path-generation-st.patch application/octet-stream 56.1 KB
v12-0002-Store-information-about-range-table-flattening-i.patch application/octet-stream 7.8 KB
v12-0003-Store-information-about-elided-nodes-in-the-fina.patch application/octet-stream 9.8 KB
v12-0005-WIP-Add-pg_plan_advice-contrib-module.patch application/octet-stream 482.9 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Previous Message Nathan Bossart 2026-01-26 15:41:35 Re: refactor architecture-specific popcount code