Re: how to create index concurrently on paritioned table

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: 李杰(慎追) <adger(dot)lj(at)alibaba-inc(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, 曾文旌(义从) <wenjing(dot)zwj(at)alibaba-inc(dot)com>
Subject: Re: how to create index concurrently on paritioned table
Date: 2020-06-07 18:04:48
Message-ID: 20200607180448.GL22473@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Jun 06, 2020 at 09:23:32AM -0500, Justin Pryzby wrote:
> On Wed, Jun 03, 2020 at 08:22:29PM +0800, 李杰(慎追) wrote:
> > Partitioning is necessary for very large tables.
> > However, I found that postgresql does not support create index concurrently on partitioned tables.
> > The document show that we need to create an index on each partition individually and then finally create the partitioned index non-concurrently.
> > This is undoubtedly a complex operation for DBA, especially when there are many partitions.
>
> > Therefore, I wonder why pg does not support concurrent index creation on partitioned tables?
> > What are the difficulties of this function?
> > If I want to implement it, what should I pay attention?
>
> Maybe I'm wrong, but I don't think there's any known difficulty - just that
> nobody did it yet.

I said that but I was actually thinking about the code for "REINDEX
CONCURRENTLY" (which should also handle partitioned tables).

I looked at CIC now and came up with the attached. All that's needed to allow
this case is to close the relation before recursing to partitions - it needs to
be closed before calling CommitTransactionCommand(). There's probably a better
way to write this, but I can't see that there's anything complicated about
handling partitioned tables.

--
Justin

Attachment Content-Type Size
v1-0001-Allow-CREATE-INDEX-CONCURRENTLY-on-partitioned-ta.patch text/x-diff 5.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2020-06-07 19:05:03 Re: [Patch] pg_rewind: options to use restore_command from recovery.conf or command line
Previous Message Tom Lane 2020-06-07 15:06:27 Re: Debian Sid broke Perl