Re: BUG #19493: Assertion failure in pg_plan_advice with EXISTS subquery and DO_NOT_SCAN advice
Ayush Tiwari <ayushtiwari.slg01@gmail.com>
From: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
To: Tender Wang <tndrwang@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org, Калинин Никита <n.kalinin@postgrespro.ru>, Michael Paquier <michael@paquier.xyz>, Pierre Forstmann <pierre.forstmann@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2026-05-27T07:16:24Z
Lists: pgsql-bugs
Hi, On Wed, 27 May 2026 at 09:20, Tender Wang <tndrwang@gmail.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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
pg_plan_advice: DO_NOT_SCAN is a simple tag, not a generic one.
- b1901e2895e0 19 (unreleased) landed
-
doc: add comma to UPDATE docs, for consistency
- 9a41b34a2870 19 (unreleased) cited
-
Add stack depth check to QueueFKConstraintValidation().
- 61ea5cc6a61f 19 (unreleased) cited