Re: Convert NOT IN sublinks to anti-joins when safe

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Japin Li <japinli@hotmail.com>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-08T08:16:58Z
Lists: pgsql-hackers

Attachments

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.

- Richard

Commits

  1. Convert NOT IN sublinks to anti-joins when safe