Re: [POC] Allow flattening of subquery with a link to upper query - Mailing list pgsql-hackers

From Andrey Lepikhov
Subject Re: [POC] Allow flattening of subquery with a link to upper query
Date
Msg-id 946e1be9-4733-b72b-4da3-35bb78d14630@postgrespro.ru
Whole thread Raw
In response to Re: [POC] Allow flattening of subquery with a link to upper query  (Richard Guo <guofenglinux@gmail.com>)
Responses Re: [POC] Allow flattening of subquery with a link to upper query
List pgsql-hackers
On 5/9/2022 12:22, Richard Guo wrote:
> 
> On Fri, Sep 2, 2022 at 7:09 PM Andrey Lepikhov 
> <a.lepikhov@postgrespro.ru <mailto:a.lepikhov@postgrespro.ru>> wrote:
>      > Hmm, I'm not sure this patch works correctly in all cases. It
>     seems to
>      > me this patch pulls up the subquery without checking the constraints
>      > imposed by lateral references. If its quals contain any lateral
>      > references to rels outside a higher outer join, we would need to
>      > postpone quals from below an outer join to above it, which is
>     probably
>      > incorrect.
> 
>     Yeah, it's not easy-to-solve problem. If I correctly understand the
>     code, to fix this problem we must implement the same logic, as
>     pull_up_subqueries (lowest_outer_join/safe_upper_varnos). 
> 
> Yeah, I think we'd have to consider the restrictions from lateral
> references to guarantee correctness when we pull up subqueries. We need
> to avoid the situation where quals need to be postponed past outer join.
> 
> However, even if we have taken care of that, there may be other issues
> with flattening direct-correlated ANY SubLink. The constraints imposed
> by LATERAL references may make it impossible for us to find any legal
> join orders, as discussed in [1].
To resolve both issues, lower outer join passes through pull_sublinks_* 
into flattening routine (see attachment).
I've added these cases into subselect.sql

-- 
regards,
Andrey Lepikhov
Postgres Professional

Attachment

pgsql-hackers by date:

Previous
From: James Coleman
Date:
Subject: Re: Fix broken link to FreeBSD DocProj in docs
Next
From: "kuroda.hayato@fujitsu.com"
Date:
Subject: RE: Perform streaming logical transactions by background workers and parallel apply