Re: CREATE INDEX CONCURRENTLY on partitioned index

From: Alexander Pyhalov <a(dot)pyhalov(at)postgrespro(dot)ru>
To: Ilya Gladyshev <ilya(dot)v(dot)gladyshev(at)gmail(dot)com>
Cc: Justin Pryzby <pryzby(at)telsasoft(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, 李杰(慎追) <adger(dot)lj(at)alibaba-inc(dot)com>
Subject: Re: CREATE INDEX CONCURRENTLY on partitioned index
Date: 2024-05-28 06:05:02
Message-ID: df5e91946320d4c3aade07898d4ba728@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Ilya Gladyshev писал(а) 2024-05-28 02:52:

>> Also I'd like to note that in new patch version there's a strange
>> wording in documentation:
>>
>> "This can be very convenient as not only will all existing partitions
>> be
>>  indexed, but any future partitions will be as well.
>>  <command>CREATE INDEX ... CONCURRENTLY</command> can incur long lock
>> times
>>  on huge partitioned tables, to avoid that you can
>>  use <command>CREATE INDEX ON ONLY</command> the partitioned table,
>> which
>>  creates the new index marked as invalid, preventing automatic
>> application
>>  to existing partitions."
>>
>> All the point of CIC is to avoid long lock times. So it seems this
>> paragraph should be rewritten in the following way:
>>
>> "To avoid long lock times, you can use CREATE INDEX CONCURRENTLY or
>> CREATE INDEX ON ONLY</command> the partitioned table..."
>
>
> True, the current wording doesn't look right. Right now CREATE INDEX ON
> ONLY is described as a workaround for the missing CIC. I think it
> rather makes sense to say that it gives more fine-grained control of
> partition locking than both CIC and ordinary CREATE INDEX. See the
> updated patch.

Hi.

Not sure if it's worth removing mentioning of CIC in

creates the new index marked as invalid, preventing automatic
application
to existing partitions. Instead, indexes can then be created
individually
- on each partition using <literal>CONCURRENTLY</literal> and
+ on each partition and
<firstterm>attached</firstterm> to the partitioned index on the
parent
using <command>ALTER INDEX ... ATTACH PARTITION</command>. Once
indexes for
all the partitions are attached to the parent index, the parent
index will

but at least now it looks better.
--
Best regards,
Alexander Pyhalov,
Postgres Professional

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2024-05-28 06:16:24 Re: GUC names in messages
Previous Message Alexander Pyhalov 2024-05-28 05:57:39 Re: Partial aggregates pushdown