Re: Memory consumed by child SpecialJoinInfo in partitionwise join planning
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Richard Guo <guofenglinux@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-09-21T04:20:19Z
Lists: pgsql-hackers
On Thu, Sep 21, 2023 at 6:37 AM Amit Langote <amitlangote09@gmail.com> wrote: > > On Wed, Sep 20, 2023 at 10:24 PM Ashutosh Bapat > <ashutosh.bapat.oss@gmail.com> wrote: > > On Wed, Sep 20, 2023 at 5:24 PM Amit Langote <amitlangote09@gmail.com> wrote: > > > Just one comment on 0003: > > > > > > + /* > > > + * Dummy SpecialJoinInfos do not have any translated fields and hence have > > > + * nothing to free. > > > + */ > > > + if (child_sjinfo->jointype == JOIN_INNER) > > > + return; > > > > > > Should this instead be Assert(child_sjinfo->jointype != JOIN_INNER)? > > > > try_partitionwise_join() calls free_child_sjinfo_members() > > unconditionally i.e. it will be called even SpecialJoinInfos of INNER > > join. Above condition filters those out early. In fact if we convert > > into an Assert, in a production build the rest of the code will free > > Relids which are referenced somewhere else causing dangling pointers. > > You're right. I hadn't realized that the parent SpecialJoinInfo > passed to try_partitionwise_join() might itself be a dummy. I guess I > should've read the whole thing before commenting. Maybe there's something to improve in terms of readability, I don't know. -- Best Wishes, Ashutosh Bapat
Commits
-
Code review for 6190d828cd2
- 0f7863afef67 17.0 landed
-
Do not translate dummy SpecialJoinInfos for child joins
- 6190d828cd25 17.0 landed
-
Reduce memory used by partitionwise joins
- 5278d0a2e870 17.0 landed
-
Remove dummy_spinlock
- 55627ba2d334 17.0 cited