Re: TRAP: failed Assert("outerPlan != NULL") in postgres_fdw.c

From: Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com>
To: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>, kristianlejao(at)gmail(dot)com
Subject: Re: TRAP: failed Assert("outerPlan != NULL") in postgres_fdw.c
Date: 2025-10-03 11:00:16
Message-ID: CAPmGK16fkr0QhnV0dvX_car_tx9fe2JGTyWpH3zG0N41w-vqVQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Fri, Oct 3, 2025 at 7:21 AM Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
> I've updated the patch based on your comments. Please find the attached patch.

Thanks for updating the patch!

+step "s1_tuplock" {
+ EXPLAIN (COSTS OFF, ANALYZE ON, TIMING OFF, SUMMARY OFF, BUFFERS OFF)
+ SELECT a.i,
+ (SELECT 1 FROM fb, fc WHERE a.i = fb.i AND fb.i = fc.i)
+ FROM a as a
+ FOR UPDATE;
+}

Maybe my comment about this step was not enough, but I'm wondering we
should run EXPLAIN and then SELECT here like below, rather than
running EXPLAIN ANALYZE, as that seems more usual to me:

step "s1_tuplock" {
EXPLAIN (VERBOSE, COSTS OFF)
SELECT a.i,
(SELECT 1 FROM fb, fc WHERE a.i = fb.i AND fb.i = fc.i)
FROM a
FOR UPDATE;
SELECT a.i,
(SELECT 1 FROM fb, fc WHERE a.i = fb.i AND fb.i = fc.i)
FROM a
FOR UPDATE;
}

I added the VERBOSE option to show the remote query, and removed the
alias for a.

BTW: you added quotation marks around a name for each session or step
like "s1_tuplock". Do we really need them? This is nitpicking,
though.

Best regards,
Etsuro Fujita

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2025-10-03 14:31:12 Re: [BUGS] BUG #11500: PRIMARY KEY index not being used
Previous Message PG Bug reporting form 2025-10-03 10:11:17 BUG #19071: commit b448f1c8d broke LEFT JOIN pushdown