Re: BUG #19493: Assertion failure in pg_plan_advice with EXISTS subquery and DO_NOT_SCAN advice

From: Ayush Tiwari <ayushtiwari(dot)slg01(at)gmail(dot)com>
To: Tender Wang <tndrwang(at)gmail(dot)com>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org, Калинин Никита <n(dot)kalinin(at)postgrespro(dot)ru>, Michael Paquier <michael(at)paquier(dot)xyz>, Pierre Forstmann <pierre(dot)forstmann(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: BUG #19493: Assertion failure in pg_plan_advice with EXISTS subquery and DO_NOT_SCAN advice
Date: 2026-05-27 07:16:24
Message-ID: CAJTYsWUsW6zm_5thDsmV=c9VLs-O==r1RusDDF7kCekV0AECDA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On Wed, 27 May 2026 at 09:20, Tender Wang <tndrwang(at)gmail(dot)com> wrote:

> Hi, all
>
> I find an easier way as follows:
> diff --git a/contrib/pg_plan_advice/pgpa_trove.c
> b/contrib/pg_plan_advice/pgpa_trove.c
> index ca69f3bd3df..64af4b1435b 100644
> --- a/contrib/pg_plan_advice/pgpa_trove.c
> +++ b/contrib/pg_plan_advice/pgpa_trove.c
> @@ -179,7 +179,6 @@ pgpa_build_trove(List *advice_items)
> * but in the future this
> might not be true, e.g. a custom
> * scan could replace a join.
> */
> - Assert(target->ttype ==
> PGPA_TARGET_IDENTIFIER);
>
> pgpa_trove_add_to_slice(&trove->scan,
>
> item->tag, target);
> }
>

Thanks for checking this.

I agree that removing the assertion looks like the better approach.

Keeping the original target tree seems preferable. As you noted,
pgpa_identifier_matches_target() already handles non-identifier targets by
checking their descendants. pgpa_trove_add_to_hash() does the same when
building the lookup table, so a grouped target such as ((a)) should still be
indexed and matched through its child identifier while preserving the
original
shape for output.

So I think the assertion in pgpa_build_trove() is too strict, and the nearby
comment should be adjusted to avoid saying/implying that scan advice always
has a direct identifier target.

Regards,
Ayush

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2026-05-27 09:06:45 Re: BUG #19490: Streaming standby on 16.14 stops applying WAL on MultiXactOffsetSLRU when primary is 16.8
Previous Message PG Bug reporting form 2026-05-27 05:24:37 BUG #19496: Assert("ItemPointerIsValid(pointer)") when using pageinspect