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-21 19:26:02
Message-ID: CA+TgmoaDqNB68kN8OO=4rKSALrWQ8LGRpU_kKi_vr9p=YgBqYQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jan 21, 2026 at 6:52 AM Ajay Pal <ajay(dot)pal(dot)k(at)gmail(dot)com> wrote:
> Subsequent testing revealed that UNION operations involving constants
> which enforce empty subplans result in the generated partition-wise
> plan not being recognized by the planner.

Good catch, thank you. Should be fixed in this version.

Changes in v11:

- What was previously 0004 has been promoted to 0001. This is the
pgs_mask stuff to allow extensions to control the planner more easily,
which seems separately committable based on reviews to this point.
- Fixed a bug found by Jacob wherein GATHER() and some other tags
permitted multiple levels of nested sublists instead of, as intended,
only a single one.
- Added a test for that case, too.
- Fixed JOIN_ORDER(justonerel) so that it correctly reports "matched"
instead of incorrectly reporting "partially matched" even when
justonerel was part of a join problem.
- Add tests for specifying a prefix of the join order list.
- Removed an XXX comment from the join order tests that now seems bogus to me.
- Fixed a bug in pg_plan_advice_explain_text_multiline that caused it
to display nothing in text format when the label was empty, instead of
when the value was empty.
- Add COSTS OFF to various tests in syntax.sql. I initially omitted
this because I thought it wouldn't be necessary, but I should know
better.
- Add a test for EXPLAIN (PLAN_ADVICE) in non-text format.
- Add tests for SEMIJOIN_UNIQUE() and SEMIJOIN_NON_UNIQUE().
- Rewrite a bunch of buggy logic related to SEMIJOIN_UNIQUE() and
SEMIJOIN_NON_UNIQUE().
- Show the join type in pg_plan_advice.trace_mask output.
- Per this email from Ajay, apply the unique_nonjoin_rtekind() test to
elided (Merge)Append nodes as we do to non-elided ones.

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

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Matheus Alcantara 2026-01-21 19:26:14 Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint
Previous Message Álvaro Herrera 2026-01-21 19:23:50 Re: [PATCH] ternary reloption type