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