Re: [Suspect SPAM] Re: pgsql: Add pg_partition_root to display top-most parent of a partition

From: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
To: Michael Paquier <michael(at)paquier(dot)xyz>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: [Suspect SPAM] Re: pgsql: Add pg_partition_root to display top-most parent of a partition
Date: 2019-03-22 04:09:23
Message-ID: 06be11a6-fd8d-b68b-1b97-1bafb1d3185c@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Hi,

On 2019/03/22 12:55, Michael Paquier wrote:
> On Fri, Mar 22, 2019 at 12:26:12AM -0300, Alvaro Herrera wrote:
>> I noticed days ago that if you call pg_partition_root on the topmost
>> partitioned table, the server crashes :-)

I thought we already fixed that last month, but that was pg_partition_tree().

> It's when you think that the thing is actually done that another issue
> pops up. The attached fixes the issue, I suggest to return the
> top-most parent as result if the input is the top-most parent itself.
> Returning NULL does not make sense as in this case the relation can be
> part of a partition tree.

Thanks for writing the patch.

/* Fetch the top-most parent */
ancestors = get_partition_ancestors(relid);

Maybe, the patch should update this comment to say "Fetch the list of
ancestors".

+
+ /*
+ * If the listed partition is already the top-most parent, just
+ * return itself.
+ */

What does "listed partition" mean? Maybe, you mean "If the input
relation..."? How about write this as:

If the input relation is itself the top-most parent, just return itself.

Regards,
Amit

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2019-03-22 04:12:25 Re: [Suspect SPAM] Re: pgsql: Add pg_partition_root to display top-most parent of a partition
Previous Message Michael Paquier 2019-03-22 03:55:38 Re: pgsql: Add pg_partition_root to display top-most parent of a partition