Re: BUG #18576: Using EXPLAIN (VERBOSE) in information_schema.element_types returns ERROR: failed to find plan for

Andrei Lepikhov <lepihov@gmail.com>

From: Andrei Lepikhov <lepihov@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Richard Guo <guofenglinux@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2024-08-19T19:16:22Z
Lists: pgsql-bugs
On 19/8/2024 19:26, Tom Lane wrote:
> Andrei Lepikhov <lepihov@gmail.com> writes:
>> On 19/8/2024 18:36, Tom Lane wrote:
>>> This seems like it's making assumptions it shouldn't about what
>>> CustomScan does.  If there's an argument for doing this, it should
>>> be added to the adjacent comments.
> The main reason I'm being sticky about this is that if we need to
> allow CustomScan, then it seems likely that we also need to allow
> ForeignScan, and maybe some other things, and then I start to
> wonder if we should have any assertion at all about the child
> plan type.  So I want to actually understand what is the scenario
> in which this will happen.
I understand your point — the origins of ForeignScan and CustomScan are 
the same.
However, we also have a difference: CustomScan can be executed locally 
and sometimes may allow volatile functions, CTE, and many other things 
in the underlying subtree. That's why we can't replay some cases with 
ForeignScan stuff.
But ok, it make sense. I'll try to reproduce the case by employing 
ForeignScan.

-- 
regards, Andrei Lepikhov




Commits

  1. Fix "failed to find plan for subquery/CTE" errors in EXPLAIN.

  2. Make the upper part of the planner work by generating and comparing Paths.