Re: Partition-wise join for join between (declaratively) partitioned tables
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
On Mon, Mar 20, 2017 at 10:26 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Mon, Mar 20, 2017 at 12:52 PM, Ashutosh Bapat > <ashutosh.bapat@enterprisedb.com> wrote: >>> Hmm. I would kind of like to move the IS_JOIN_REL() and >>> IS_OTHER_REL() stuff to the front of the series. In other words, I >>> propose that we add those macros first, each testing for only the one >>> kind of RelOptInfo that exists today, and change all the code to use >>> them. Then, when we add child joinrels, we can modify the macros at >>> the same time. The problem with doing it the way you have it is that >>> those changes will have to be squashed into the main partitionwise >>> join commit, because otherwise stuff will be broken. Doing it the >>> other way around lets us commit that bit separately. >> >> I can provide a patch with adjust_appendrel_attrs_multilevel() changed >> to child-joins, which can be applied before multi-level >> partitioin-wise support patch but after partition-wise implementation >> patch. You may consider applying that patch separately before >> multi-level partition-wise support, in case we see that multi-level >> partition-wise join support can be committed. Does that sound good? >> That way we save changing those macros twice. > > That seems different than what I suggested and I'm not sure what the > reason is for the difference? > The patch adding macros IS_JOIN_REL() and IS_OTHER_REL() and changing the code to use it will look quite odd by itself. We are not changing all the instances of RELOPT_JOINREL or RELOPT_OTHER_MEMBER_REL to use those. There is code which needs to check those kinds, instead of "all join rels" or "all other rels" resp. So the patch will add those macros, change only few places to use those macros, which are intended to be changed while applying partition-wise join support for single level partitioned table. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company
Commits
-
Basic partition-wise join functionality.
- f49842d1ee31 11.0 landed
-
Assorted preparatory refactoring for partition-wise join.
- e139f1953f29 11.0 landed
-
Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.
- 480f1f4329f1 11.0 landed
-
Stamp 10beta2.
- 42171e2cd23c 10.0 cited
-
Eat XIDs more efficiently in recovery TAP test.
- 08aed6604de2 10.0 cited
-
Abstract logic to allow for multiple kinds of child rels.
- 7a39b5e4d112 10.0 landed
-
Implement SortSupport for macaddr data type
- f90d23d0c518 10.0 cited
-
Attempt to stabilize grouping sets regression test plans.
- de4da168d57d 10.0 cited
-
Teach xlogreader to follow timeline switches
- 1148e22a82ed 10.0 cited
-
Don't scan partitioned tables.
- d3cc37f1d801 10.0 cited
-
Fix grammar.
- b4ff8609dbad 10.0 cited
-
postgres_fdw: Push down FULL JOINs with restriction clauses.
- b30fb56b07a8 10.0 cited
-
Some preliminary refactoring towards partitionwise join.
- c44c47a773bd 10.0 landed
-
contrib/amcheck needs RecentGlobalXmin to be PGDLLIMPORT'ified.
- 56018bf26eec 10.0 cited
-
Print test parameters like "foo: 123", and results like "foo = 123".
- 2a7f4f76434d 10.0 cited