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

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: fuboat(at)outlook(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18077: PostgreSQL server subprocess crashed by a SELECT statement with WITH clause
Date: 2023-09-18 02:23:39
Message-ID: CAMbWs4-PrvGJKs_OFSWu+LrB8-cxsObXrnA_7Wf40cmBrcZ4bQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sat, Sep 16, 2023 at 2:38 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> > Here is v3 patch which is v2 + fix for this issue.
>
> This seems not quite right yet: we need to pass the correct
> parent-namespaces list to set_deparse_for_query, else set_rtable_names
> might make unexpected choices. I think the net effect of what you
> have would only be to make generated table-alias names more unique
> than necessary (i.e, avoiding collisions with names that are not
> really in scope), but still this could be confusingly inconsistent.
> So we should do more like the attached.

Yes, you're right. And we need to do the same for the RTE_CTE case.

> I set about back-patching this, and discovered that your deparse
> test case exposes additional problems in the back branches. We
> get "record type has not been registered" failures in deparsing,
> or even in trying to parse the view to begin with, unless we
> back-patch d57534740 into pre-v14 branches and also 8b7a0f1d1
> into pre-v13 branches. At the time I'd thought d57534740's bug
> could not be exposed without SEARCH BREADTH FIRST, but that was
> clearly a failure of imagination. As for 8b7a0f1d1, I'd judged
> it too narrow of a corner case to be worth back-patching, and
> maybe it still is: I don't think it's reachable without attempting
> to fetch a ".fN" field out of an anonymous record type. Still,
> we do document that ".fN" is what the generated names are, so
> it seems like people ought to be able to use them. On balance,
> therefore, I'm inclined to back-patch both of those.

Agreed. Thanks for pushing and back-patching this.

Thanks
Richard

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Richard Guo 2023-09-18 06:44:07 Re: BUG #18103: bugs of concurrent merge into when use different join plan
Previous Message David Rowley 2023-09-18 00:22:55 Re: group by true now errors with non-integer constant in GROUP BY