Re: Partition-wise join for join between (declaratively) partitioned tables
Robert Haas <robertmhaas@gmail.com>
On Fri, Sep 8, 2017 at 1:38 PM, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> wrote: >> I also confirmed that the partition-pruning patch set works fine with this >> patch instead of the patch on that thread with the same functionality, >> which I will now drop from that patch set. Sorry about the wasted time. > > Thanks a lot. Please review the patch in the updated patchset. In set_append_rel_size(), I don't find the comment too clear (and this part was taken from Amit's patch, right?). I suggest: + /* + * Associate the partitioned tables which are descendents of the table + * named in the query with the topmost append path (i.e. the one where + * rel->reloptkind is RELOPT_BASEREL). This ensures that they get properly + * locked at execution time. + */ I'm a bit suspicious about the fact that there are now executor changes related to the PlanRowMarks. If the rowmark's prti is now the intermediate parent's RT index rather than the top-parent's RT index, it'd seem like that'd matter somehow. Maybe it doesn't, because the code that cares about prti seems to only care about whether it's different from rti. But if that's true everywhere, then why even change this? I think we might be well off not to tinker with things that don't need to be changed. Apart from that concern, now that I understand (from my own failed attempt and some off-list discussion) why this patch works the way it does, I think this is in fairly good shape. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Add test for partitionwise join involving default partition.
- 4513d3a4be0b 12.0 landed
-
Rewrite the code that applies scan/join targets to paths.
- 11cf92f6e2e1 11.0 cited
-
Fix code related to partitioning schemes for dropped columns.
- cf7ab13bfb45 11.0 landed
-
Copy information from the relcache instead of pointing to it.
- 45866c75507f 11.0 landed
-
Basic partition-wise join functionality.
- f49842d1ee31 11.0 landed
-
Associate partitioning information with each RelOptInfo.
- 9140cf8269b0 11.0 landed
-
Expand partitioned table RTEs level by level, without flattening.
- 0a480502b092 11.0 landed
-
Set partitioned_rels appropriately when UNION ALL is used.
- 448aa36e8b96 10.0 landed
- 1555566d9ee1 11.0 landed
-
Remove dedicated B-tree root-split record types.
- 0c504a80cf2e 11.0 cited
-
Assorted preparatory refactoring for partition-wise join.
- e139f1953f29 11.0 cited
-
Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.
- 480f1f4329f1 11.0 cited
-
Avoid unnecessary single-child Append nodes.
- d57929afc706 11.0 cited
-
Revisit handling of UNION ALL subqueries with non-Var output columns.
- dd4134ea56cb 9.2.0 cited