Re: Reuse child_relids in try_partitionwise_join was Re: Assert failure on bms_equal(child_joinrel->relids, child_joinrelids)
David Christensen <david@pgguru.net>
From: David Christensen <david@pgguru.net>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: David Christensen <david+pg@pgguru.net>,
Robert Haas <robertmhaas@gmail.com>, Richard Guo <guofenglinux@gmail.com>,
Tom Lane <tgl@sss.pgh.pa.us>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2024-07-01T11:28:57Z
Lists: pgsql-hackers
On Jul 1, 2024, at 12:56 AM, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote:
On Wed, Jun 12, 2024 at 4:22 AM David Christensen <david+pg@pgguru.net> wrote:
On Mon, Jun 10, 2024 at 8:15 AM Robert Haas <robertmhaas@gmail.com> wrote:
>
> On Mon, Jun 10, 2024 at 3:09 AM Ashutosh Bapat
> <ashutosh.bapat.oss@gmail.com> wrote:
> > This is just one instance of measurements. If I run the experiment multiple times the results and the patterns will vary. Usually I have found planning time to vary within 5% for regular tables and within 9% for partitioned tables with a large number of partitions. Below are measurements with the experiment repeated multiple times. For a given number of partitioned tables (each with 1000 partitions) being joined, planning time is measured 10 consecutive times. For this set of 10 runs we calculate average and standard deviation of planning time. Such 10 sets are sampled. This means planning time is sampled 100 times in total with and without patch respectively. Measurements with master and patched are reported in the attached excel sheet.
>
> Well, this is fine then I guess, but if the original results weren't
> stable enough for people to draw conclusions from, then it's better
> not to post them, and instead do this work to get results that are
> stable before posting.
Just doing a quick code review of the structure and the caller, I'd
agree that this is properly hoisting the invariant, so don't see that
it should contribute to any performance regressions. To the extent
that it's called multiple times I can see that it's an improvement,
with minimal code shuffling it seems like a sensible change (even in
the single-caller case).
In short +1 from me.
Hi David,
Do you think it needs more review or we can change it to "ready for committer"?
I think it’s ready from my standpoint.
David
Commits
-
Reduce memory used by partitionwise joins
- 513f4472a4a0 18.0 landed
-
Fix calculation of relid sets for partitionwise child joins.
- f75595cd80d1 16.0 landed
- 3c90dcd03914 17.0 landed