Re: Partition-wise join for join between (declaratively) partitioned tables

Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>

From: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-02-10T12:53:20Z
Lists: pgsql-hackers

Attachments

Here is set of patches with support for partition-wise join between
multi-level partitioned tables.


On Fri, Feb 10, 2017 at 11:19 AM, Ashutosh Bapat
<ashutosh.bapat@enterprisedb.com> wrote:
> Fixed a problem with the way qsort was being used in the earlier set
> of patches. Attached PFA the set of patches with that fixed.

This fix is included.

>
> On Thu, Feb 9, 2017 at 4:20 PM, Ashutosh Bapat
> <ashutosh.bapat@enterprisedb.com> wrote:
>> Per your suggestion I have split the patch into many smaller patches.
>>
>> 0001-Refactor-set_append_rel_pathlist.patch
>> 0002-Refactor-make_join_rel.patch
>> 0003-Refactor-adjust_appendrel_attrs.patch
>> 0004-Refactor-build_join_rel.patch
>> 0005-Add-function-find_param_path_info.patch
>>
>> These four refactor existing code.
>>
>> 0006-Canonical-partition-scheme.patch
>> 0007-Partition-wise-join-tests.patch -- just tests, they fail
>> 0008-Partition-wise-join.patch -- actual patch implementing
>> partition-wise join, still some tests fail\
>>
>> 0009-Adjust-join-related-to-code-to-accept-child-relation.patch
>> 0010-Parameterized-path-fixes.patch
>> 0011-Use-IS_JOIN_REL-instead-of-RELOPT_JOINREL.patch
>>

patch to translate partition hierarchy into inheritance hierarchy
without flattening

0012-Multi-level-partitioned-table-expansion.patch

patches for multi-level partition-wise join support

0013-Multi-level-partition-wise-join-tests.patch
0014-Multi-level-partition-wise-join-support.patch

-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

Commits

  1. Basic partition-wise join functionality.

  2. Assorted preparatory refactoring for partition-wise join.

  3. Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.

  4. Stamp 10beta2.

  5. Eat XIDs more efficiently in recovery TAP test.

  6. Abstract logic to allow for multiple kinds of child rels.

  7. Implement SortSupport for macaddr data type

  8. Attempt to stabilize grouping sets regression test plans.

  9. Teach xlogreader to follow timeline switches

  10. Don't scan partitioned tables.

  11. Fix grammar.

  12. postgres_fdw: Push down FULL JOINs with restriction clauses.

  13. Some preliminary refactoring towards partitionwise join.

  14. contrib/amcheck needs RecentGlobalXmin to be PGDLLIMPORT'ified.

  15. Print test parameters like "foo: 123", and results like "foo = 123".