Hi Alena,

Thanks for v8. The walker is much easier to follow now, and all of Peter's points look addressed to me.

I compared the results of random EXISTS/NOT EXISTS queries with and without the pull-up (adding OFFSET 0 to the sub-select blocks it). The queries had nested inner and outer joins in the sub-select, correlated and uncorrelated quals in the ON clauses, and NULLs in the data. About 13.5k queries ran, and about 1250 of them go through the new code path. I found no wrong results and no assertion failures, so the approach looks correct to me.

My main comment is about the regression tests. A few things are missing in the regression tests:

1. anti join cases
2. query results not only EXPLAIN output
3. An EXISTS sublink in the ON clause of an outer join in the parent query, where the moved qual interacts with the available_rels check.

--
Best regards,
Ilia Evdokimov,
Tantor Labs LLC,
https://tantorlabs.com/



Reply via email to