Re: Progress report of CREATE INDEX for nested partitioned tables - Mailing list pgsql-hackers

From Matthias van de Meent
Subject Re: Progress report of CREATE INDEX for nested partitioned tables
Date
Msg-id CAEze2Wizpeqsgu9AE3RV_ELzsJGFtz774oGGJhmimc+Mz=b=0Q@mail.gmail.com
Whole thread Raw
In response to Re: Progress report of CREATE INDEX for nested partitioned tables  (Ilya Gladyshev <ilya.v.gladyshev@gmail.com>)
Responses Re: Progress report of CREATE INDEX for nested partitioned tables
List pgsql-hackers
On Wed, 1 Feb 2023 at 15:21, Ilya Gladyshev <ilya.v.gladyshev@gmail.com> wrote:
>
> > 1 февр. 2023 г., в 16:01, Alvaro Herrera <alvherre@alvh.no-ip.org> написал(а):
> >
> > Hmm, count_leaf_partitions has to scan pg_inherits and do a syscache
> > lookup for every single element therein ... this sounds slow.
> >
> > In one of the callsites, we already have the partition descriptor
> > available.  We could just scan partdesc->is_leaf[] and add one for each
> > 'true' value we see there.
>
> The problem is that partdesc contains only direct children of the table and we need all the children down the
inheritancetree to count the total number of leaf partitions in the first callsite. 
>
> > In the other callsite, we had the table open just a few lines before the
> > place you call count_leaf_partitions.  Maybe we can rejigger things by
> > examining its state before closing it: if relkind is not partitioned we
> > know leaf_partitions=0, and only if partitioned we count leaf partitions.
> > I think that would save some work.  I also wonder if it's worth writing
> > a bespoke function for counting leaf partitions rather than relying on
> > find_all_inheritors.
>
> Sure, added this condition to avoid the extra work here.
>

>        When creating an index on a partitioned table, this column is set to
> -       the total number of partitions on which the index is to be created.
> +       the total number of leaf partitions on which the index is to be created or attached.

I think we should also add a note about the (now) non-constant nature
of the value, something along the lines of "This value is updated as
we're processing and discovering partitioned tables in the partition
hierarchy".

Kind regards,

Matthias van de Meent



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Weird failure with latches in curculio on v15
Next
From: Justin Pryzby
Date:
Subject: Re: Progress report of CREATE INDEX for nested partitioned tables