Re: Convert NOT IN sublinks to anti-joins when safe
wenhui qiu <qiuwenhuifx@gmail.com>
From: wenhui qiu <qiuwenhuifx@gmail.com>
To: Japin Li <japinli@hotmail.com>
Cc: Richard Guo <guofenglinux@gmail.com>,
Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-09T07:38:11Z
Lists: pgsql-hackers
HI > I just finished a final self-review and noticed a subtle issue in > query_outputs_are_not_nullable(). When preparing a target expression > for the non-nullability check, the previous code flattened join > aliases Vars before grouping Vars. However, because the parser > processes FROM/JOIN clauses before the GROUP BY clause, a grouping Var > can actually wrap a join alias Var, not the reverse. So we should > flatten grouping Vars first. > Attached is an updated patch that fixes that issue. I plan to commit > this in a week or two, barring any objections. Thanks for updating the patch. v6 path LGTM. Thanks On Mon, Mar 9, 2026 at 1:14 PM Japin Li <japinli@hotmail.com> wrote: > On Sun, 08 Mar 2026 at 17:16, Richard Guo <guofenglinux@gmail.com> wrote: > > On Thu, Mar 5, 2026 at 10:57 AM Japin Li <japinli@hotmail.com> wrote: > >> Just a quick note: I think `foreach_ptr` is more appropriate here than > `foreach`. > > > > Agreed. > > > > For homogeneous lists, it is better to use foreach_node so we get the > > additional type-safety assertions in dev builds. For heterogeneous > > lists, we should use foreach_ptr. > > > > Attached is an updated version of the patch that replaces foreach with > > foreach_ptr or foreach_node accordingly. Nothing else has changed. > > > > I plan to do one more round of self-review on this. Unless there are > > any further thoughts or concerns, I'm hoping to commit this in a week > > or two. Please let me know if anyone spots anything else I might have > > missed. > > > > Thanks for updating the patch. LGTM. > > -- > Regards, > Japin Li > ChengDu WenWu Information Technology Co., Ltd. > > >
Commits
-
Convert NOT IN sublinks to anti-joins when safe
- 383eb21ebffe 19 (unreleased) landed