Re: pg_plan_advice

From: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>
Cc: 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-16 18:14:19
Message-ID: CAOYmi+n1mkLbZZmw8Bw2czik7jOMswRKWJKszQV8xjJGK_6M-Q@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jan 14, 2026 at 2:23 PM Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> With that fixed, plan_advice.advice =
> 'join_order(f/d1 (d1 d2))' produces this:

Nice! With v10, the next crash comes from pgpa_walker_would_advise()
(from a code branch that has its own copy of the "cannot determine RTI
for advice target" error, so I assume it's a similar issue?).

Reproducing query:

SET pg_plan_advice.advice = 'gather( ( ( orders ) ) )';
EXPLAIN (COSTS OFF, PLAN_ADVICE)
SELECT o_year FROM (
SELECT extract(year FROM o_orderdate) AS o_year FROM orders
);

results in

TRAP: failed Assert("child_target->ttype ==
PGPA_TARGET_IDENTIFIER"), File:
"../contrib/pg_plan_advice/pgpa_walker.c", Line: 679, PID: 451047

--

I'm going to change my fuzzing focus over to Jakub's TPC-H schema for
a bit, because it doesn't require the corpus to adapt to new
identifiers for each new query, and I can fuzz the interesting queries
he finds directly. :D

--Jacob

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Antonin Houska 2026-01-16 18:18:16 Re: Adding REPACK [concurrently]
Previous Message Tomas Vondra 2026-01-16 18:03:47 Re: Parallel CREATE INDEX for GIN indexes