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

From: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
To: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Rafia Sabih <rafia(dot)sabih(at)enterprisedb(dot)com>, Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Partition-wise join for join between (declaratively) partitioned tables
Date: 2017-03-27 12:36:06
Message-ID: CAFjFpRc4-3Saz0fHbfzCwn3qif8Yws=r7r-nCHheYnMP=bxE3w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Mar 24, 2017 at 4:18 PM, Amit Langote
<Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> Hi Ashutosh,
>
> On 2017/03/23 21:48, Ashutosh Bapat wrote:
>>>> I have fixed all the issues reported till now.
>
> I've tried to fix your 0012 patch (Multi-level partitioned table
> expansion) considering your message earlier on this thread [1].
> Especially the fact that no AppendRelInfo and RelOptInfo are allocated for
> partitioned child tables as of commit d3cc37f1d [2]. I've fixed
> expand_inherited_rtentry() such that AppendRelInfo *is* allocated for a
> partitioned child RTEs whose rte->inh is set to true. Such an RTE is
> recursively expanded with that RTE the parent.
>
> Also as I mentioned elsewhere [3], the multi-level inheritance expansion
> of partitioned table will break update/delete for partitioned table, which
> is because inheritance_planner() is not ready to handle inheritance sets
> structured that way. I tried to refactor inheritance_planner() such that
> its core logic can be recursively invoked for partitioned child RTEs. The
> resulting child paths and other auxiliary information related to planning
> across the hierarchy are maintained in one place using a struct to hold
> the same in a few flat lists. The refactoring didn't break any existing
> tests and a couple of new tests are added to check that it indeed works
> for multi-level partitioned tables expanded using new multi-level structure.
>
> There is some test failure in 0014 (Multi-level partition-wise join
> tests), probably because of the changes I made to 0012, which I didn't get
> time to check why, although I've checked using an example that multi-level
> join planning still works, so it's not completely broken either.
>

I have gone through the patch, and it looks good to me. Here's the set
of patches with this patch included. Fixed the testcase failures.
Rebased the patchset on de4da168d57de812bb30d359394b7913635d21a9.

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

Attachment Content-Type Size
pg_dp_join_patches_v15.zip application/zip 68.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2017-03-27 12:42:49 Re: Monitoring roles patch
Previous Message David Steele 2017-03-27 12:34:55 Re: patch proposal