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