Re: Memory consumed by child SpecialJoinInfo in partitionwise join planning
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Richard Guo <guofenglinux@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-09-20T11:54:24Z
Lists: pgsql-hackers
Hi Ashutosh, On Wed, Aug 16, 2023 at 2:28 PM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > On Fri, Aug 4, 2023 at 2:11 PM Ashutosh Bapat > <ashutosh.bapat.oss@gmail.com> wrote: > > > > Attached patchset fixing those. > > 0001 - patch to report planning memory, with to explain.out regression output fix. We may consider committing this as well. > > 0002 - with your comment addressed above. > > 0003 - Added this patch for handling SpecialJoinInfos for inner joins. > These SpecialJoinInfos are created on the fly for parent joins. They > can be created on the fly for child joins as well without requiring > any translations. Thus they do not require any new memory. This patch > is intended to be merged into 0002 finally. I read this thread and have been reading the latest patch. At first glance, it seems quite straightforward to me. I agree with Richard that pfree()'ing 4 bitmapsets may not be a lot of added overhead. I will study the patch a bit more. 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)? -- Thanks, Amit Langote EDB: http://www.enterprisedb.com
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