Re: Online index builds

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема Re: Online index builds
Дата
Msg-id 1165458152.2048.138.camel@dogma.v10.wvs
обсуждение исходный текст
Ответ на Re: Online index builds  (Chris Browne <cbbrowne@acm.org>)
Ответы Re: Online index builds  (Ragnar <gnari@hive.is>)
Список pgsql-general
On Wed, 2006-12-06 at 15:00 -0500, Chris Browne wrote:
> Let me add another question to this; this might possibly be worthy of
> a TODO for 8.3 or so...
>
> What if I wanted to:
>     ALTER TABLE distributors ADD PRIMARY KEY CONCURRENTLY (dist_id);
> ?
>
> We have a number of cases where there isn't a true primary key on
> tables.  It would be very attractive to have a non-blocking way of
> getting one, perhaps to be combined with letting Slony-I know about
> it...
>
> Or is it a better answer to look more deeply into the index
> configuration, creating a suitably named UNIQUE index on NOT NULL
> fields, and fiddling it into being the primary key?

Interesting, I was just thinking about this today as well. I am thinking
it would be nice if we could:

ALTER TABLE SET PRIMARY KEY INDEX foo_pkey;

If it's already got a primary key we switch the primary key to be the
new primary key (throwing an error if the columns don't match up to the
existing primary key, or if it's not unique). If not, the primary key
attribute is added to the existing index and the columns in the index
now make up the primary key (throwing an error if the index is not
unique).

It makes CREATE INDEX CONCURRENTLY more useful for reindexing a primary
key on a live database: you could just create the new index, switch it
to be the primary key, and drop the old index.

Regards,
    Jeff Davis


В списке pgsql-general по дате отправления:

Предыдущее
От: "Eric Andrews"
Дата:
Сообщение: Sanity check...
Следующее
От: Ron Johnson
Дата:
Сообщение: Re: Anything I can do to speed up this query?