Re: transactional swap of tables

Поиск
Список
Период
Сортировка
От Vincenzo Romano
Тема Re: transactional swap of tables
Дата
Msg-id CAHjZ2x5Sa+rHN-Q33B0_H1FkMB0GKfuKtUQ3tZT0ojdnuOpAmg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: transactional swap of tables  (Kevin Grittner <kgrittn@ymail.com>)
Ответы Re: transactional swap of tables  (Kevin Grittner <kgrittn@ymail.com>)
Список pgsql-general
> Vincenzo Romano <vincenzo.romano@notorand.it> wrote:
>
>> I'd like to "replace" a full table F with an empty one E.
>> In order to do this I see only one way:
>>
>> ALTER TABLE F RENAME TO T;
>> ALTER TABLE E RENAME TO F;
>> ALTER TABLE T RENAME TO E; -- optional
>>
>> This implies there's a moment when the full table doesn't exist.
>> Would a transaction enclosure ensure that the table F will be
>> always available to all clients?
>
> Yes.  What you show is safe.  What has a race condition is dropping
> the old table before all transactions which started with it have
> completed.  If you're going to drop the old table, be sure to wait
> long enough after the COMMIT for things to "settle".

Would you please elaborate more on the "wait[ing] long enough after
the COMMIT" ?


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

Предыдущее
От: "Joshua D. Drake"
Дата:
Сообщение: Re: Distributed systems and primary keys
Следующее
От: "shankar.kotamarthy@gmail.com"
Дата:
Сообщение: pg_upgrade could not create catalog dump while upgrading from 9.0 to 9.2