The following bug has been logged online:
Bug reference: 4125
Logged by: Vladimir Kanazir
Email address: vladimir@vlajko.com
PostgreSQL version: 8.2.6
Operating system: Fedora 7
Description: Strange ALTER TABLE behavior
Details:
If I execute this query:
alter table history add incoming_id bigint default 0;
the table will be locked until operation finishes (checked by executing the
select query on the same table via another connection).
But, if I do this:
alter table history add incoming_id bigint;
alter table history alter incoming_id set default 0;
update history set incoming_id=0;
the table will be locked only during alter table execution, which is very
short time.
I think that alter table with default values should work the same way.