On Sun, Mar 23, 2025 at 6:25 PM Richard Guo <guofenglinux@gmail.com> wrote: > On Sat, Mar 22, 2025 at 2:21 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > The way to make this work is what I said before: move the planner's > > collection of relation information to somewhere a bit earlier in > > the planner. But not to outside the planner.
> I'm considering moving the collection of attnotnull information before > pull_up_sublinks, in hopes of leveraging this info to pull up NOT IN > in the future, something like attached.
Here is an updated version of the patch with some cosmetic changes and a more readable commit message. I'm wondering if it's good enough to be pushed. Any comments?
The comment about notnullattnums in struct RangeTblEntry says that:
* notnullattnums is zero-based set containing attnums of NOT NULL * columns.
But in get_relation_notnullatts():
rte->notnullattnums = bms_add_member(rte->notnullattnums, i + 1);