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 |
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 |