Re: BUG #18077: PostgreSQL server subprocess crashed by a SELECT statement with WITH clause

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Lepikhov Andrei <a.lepikhov@postgrespro.ru>
Cc: Richard Guo <guofenglinux@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, fuboat@outlook.com, pgsql-bugs@lists.postgresql.org
Date: 2023-09-07T09:46:43Z
Lists: pgsql-bugs
On Thu, Sep 07, 2023 at 03:25:36PM +0700, Lepikhov Andrei wrote:
> I invented a dummy extension "pg_extension" [1], commit 4199a0c,
> which adds  CustomScan over the first non-parameterized HashJoin at
> the pathlist. 
> The example presented in my letter earlier causes the ERROR on
> CTE. Moreover, if you remove the word 'materialized', you will find
> the same error on Subquery.
> 
> [1] https://github.com/danolivo/pg_extension/tree/main

Digressing a bit here about this point..  In the long-term I think
that it would be a good idea to have a template module in
src/test/modules/ that shows how to use a CustomScan so as it is able
to demonstrate how this stuff works, and to check if it is works as
intended.  With regression tests, of course.
--
Michael

Commits

  1. Track nesting depth correctly when drilling down into RECORD Vars.

  2. Fix get_expr_result_type() to find field names for RECORD Consts.

  3. Allow extracting fields from a ROW() expression in more cases.