Adding a non-null column without noticeable downtime

Поиск
Список
Период
Сортировка
От Zev Benjamin
Тема Adding a non-null column without noticeable downtime
Дата
Msg-id 530C10CF.4020101@strangersgate.com
обсуждение исходный текст
Ответы Re: Adding a non-null column without noticeable downtime  (Zev Benjamin <zev-pgsql@strangersgate.com>)
Re: Adding a non-null column without noticeable downtime  (Sameer Kumar <sameer.kumar@ashnik.com>)
Re: Adding a non-null column without noticeable downtime  (Sergey Konoplev <gray.ru@gmail.com>)
Re: Adding a non-null column without noticeable downtime  (Vik Fearing <vik.fearing@dalibo.com>)
Список pgsql-general
Hi all,

I'm sure this has been answered somewhere, but I was not able to find
anything in the list archives.

I'm conceptually trying to do
ALTER TABLE "foo" ADD COLUMN "bar" boolean NOT NULL DEFAULT False;

without taking any noticeable downtime.  I know I can divide the query
up like so:

ALTER TABLE "foo" ADD COLUMN "bar" boolean;
UPDATE foo SET bar = False; -- Done in batches
ALTER TABLE "foo" ALTER COLUMN "bar" SET DEFAULT False;
ALTER TABLE "foo" ALTER COLUMN "bar" SET NOT NULL;

The first 3 queries shouldn't impact other concurrent queries on the
system.  My question is about the sequential scan that occurs when
setting the column NOT NULL.  Will that sequential scan block other
inserts or selects on the table?  If so, can it be sped up by using an
index (which would be created concurrently)?


Thanks,
Zev


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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: plans for plpython in RDS?
Следующее
От: Frank Broniewski
Дата:
Сообщение: Re: Hard upgrade (everything)