public inbox for [email protected]
help / color / mirror / Atom feedFrom: Michael Paquier <[email protected]>
To: Robert Haas <[email protected]>
Cc: Lukas Fittl <[email protected]>
Cc: Jacob Champion <[email protected]>
Cc: Dian Fay <[email protected]>
Cc: Matheus Alcantara <[email protected]>
Cc: Jakub Wartak <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: pg_plan_advice
Date: Fri, 9 Jan 2026 08:29:38 +0900
Message-ID: <[email protected]> (raw)
In-Reply-To: <CA+Tgmob4PtUX=EVbhuQW8-zsmLzhyCnVwaLG71Gio=djK3Fu+g@mail.gmail.com>
References: <CAOYmi+=g+MMoOpWkk2weXWKJcKH0eKey8gKHHdH0dF4Tiawrhw@mail.gmail.com>
<CA+TgmobwaT=PXPDDrgDup+jA8KHBbkxigtziD-zNzAKKkQYVgQ@mail.gmail.com>
<CAOYmi+mOmEW=amDRQMfw6-Fb3ZmDEQFaJzwk8Bc8W8DzaP85XQ@mail.gmail.com>
<CA+TgmoaX2AMW4cdFM3OngBJxmxpkdmzF33R7-CWhvRLfucbFMg@mail.gmail.com>
<CAOYmi+njnRGcomnxTY6vsEW3wWigc0ruB0EyWFpb+PVVE8sWpw@mail.gmail.com>
<CAOYmi+k4AyWCQHK=XVF99KVDuFkqxcADao61OWGLxu0nRYMONQ@mail.gmail.com>
<CA+TgmoZ0x3ym_oueXRWzbM_=6ucKoPZVGj3rRMLBDC_FnetXDw@mail.gmail.com>
<CAP53Pkycc=7N2bLzVT3x+qE1JamvRZWev5tFjdLJ1+-AV3Di+Q@mail.gmail.com>
<CAP53PkxK=oeGySmq7AgN6pp8V0BEcuHY+d9xC640PxOT4QTUyQ@mail.gmail.com>
<CA+Tgmob4PtUX=EVbhuQW8-zsmLzhyCnVwaLG71Gio=djK3Fu+g@mail.gmail.com>
On Thu, Jan 08, 2026 at 11:07:31AM -0500, Robert Haas wrote:
> On Wed, Jan 7, 2026 at 2:04 AM Lukas Fittl <[email protected]> wrote:
>> That said, good news: After a bunch of iterations, I get a clean
>> pass on the pg_hint_plan regression tests, whilst completely
>> dropping its copying of core code and hackish re-run of
>> set_plain_rel_pathlist. See [0] for a draft PR (on my own fork of
>> pg_hint_plan) with individual patches that explain some regression
>> test differences.
>
> That sounds AWESOME.
So you are telling me that I can commit code that deletes code. Count
me in. The project has some merge requests that I've been holding on
a bit due to what's happening here and because I did not really look
at the internals that have changed. It's great to see that you have
begun an investigation, Lukas.
>> The biggest change in the regression test output was due to how the
>> "Parallel" hint worked in pg_hint_plan (basically it was setting
>> parallel_*_cost to zero, and then messed with the gucs that factor
>> into compute_parallel_worker) -- I think the only sensible thing to
>> do is to change that in pg_hint_plan, and instead rely on rejecting
>> non-partial paths with PGS_CONSIDER_NONPARTIAL if "hard"
>> enforcement of parallelism is requested. That caused some minor
>> plan changes, but I think they can still be argued to be matching
>> the user's intent of "make a scan involving this relation
>> parallel".
>
> Cool. I'm sort of curious what changed, but maybe it's not important
> enough to spend time discussing right now.
I suspect that this is going to be an incremental integration process,
and it smells to me that it is going to require more than one major
release before being able to remove the whole set of hacks that
pg_hint_plan has been using, particularly with the GUCs, the costing
and the forced update of the backend routines which is a ugly
historical hack. Saying that, I would need to look at the plan
outputs to be sure, perhaps we would be OK even with slight changes.
These happen every year, because the plans tested are complex enough
that some of the sub-paths are changed, but the hints still work
properly. This year for v19 we have at least the changes in the
expression names.
--
Michael
Attachments:
[application/pgp-signature] signature.asc (833B, 2-signature.asc)
download
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: pg_plan_advice
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox