Re: pull-up subquery if JOIN-ON contains refs to upper-query

Alena Rybakina <lena.ribackina@yandex.ru>

From: Alena Rybakina <lena.ribackina@yandex.ru>
To: solaimurugan vellaipandiyan <drsolaimurugan.v@gmail.com>
Cc: Alena Rybakina <a.rybakina@postgrespro.ru>, Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>, David Rowley <dgrowleyml@gmail.com>, Ranier Vilela <ranier.vf@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Petr Petrov <p.petrov@postgrespro.ru>
Date: 2026-05-12T17:19:27Z
Lists: pgsql-hackers
Hi, thank you for your valuable feedback. If you have time you can test 
it on sqlsmith (https://github.com/anse1/sqlsmith) -
it will give some corner cases that should be observed.

On 11.05.2026 08:20, solaimurugan vellaipandiyan wrote:
> Hi Alena,
>
> I did some additional testing on the latest patch and the behavior
> looks good in my environment so far.
>
> I verified the original EXISTS pull-up case and confirmed that after
> applying the patch the planner generates optimized Semi Join plans
> instead of EXISTS(SubPlan).
> I also tested several additional cases discussed in the thread, including:
> 1.NOT EXISTS queries
> 2. constant qual conditions
> 3. ANY array conditions
> 4. LEFT JOIN cases
> 5. FULL JOIN cases
> For the FULL JOIN scenarios, I checked both the execution plans and
> actual query results. In one case the planner simplified the query
> into a Hash Join plan, but the final query results remained correct.
> I additionally ran:
>   - make check
>   - make -C contrib check
> Both completed successfully in my environment and I did not observe
> planner crashes or incorrect query results during testing.
> Overall, the patch seems to improve planner behavior consistently for
> these EXISTS pull-up scenarios.
>
> Regards,
> Solaimurugan V
>
>
-- 
-----------
Best regards,
Alena Rybakina