Documentation of what schema modifications cause what level of table locking - Mailing list pgsql-general

From Timothy Garnett
Subject Documentation of what schema modifications cause what level of table locking
Date
Msg-id CAPcyiQ1k_HABSJxpoZAEKHpW6Vah5P+x8_R-6j1P2hrrACzOQQ@mail.gmail.com
Whole thread Raw
Responses Re: Documentation of what schema modifications cause what level of table locking
List pgsql-general
Hi all,

I was wondering if there was some good documentation on what kinds of schema modifications block reads vs. which ones don't.  For ex. we recently had an issue where someone ran as part of a migration

ALTER TABLE tname ALTER COLUMN cname SET NOT NULL;

on a large table that is not inserted to or updated.  While we'd expect such an operation to block inserts/updates (writes) to the table, we were surprised to observe that it also blocked selects (reads) from the table as well, which we would not have naively expected (and caused a great deal of headache).  On the other hand creating an index on a table blocks writes, but still allows reads (even a unique index), as documented in the create index docs.  Is there a list somewhere of what operations block selects (reads) to a table that we should watch out for?

We are currently using PostgreSQL 9.0.3.

Thanks!
Tim

pgsql-general by date:

Previous
From: Roger Niederland
Date:
Subject: Re: pg_dump compress
Next
From: "E-Blokos"
Date:
Subject: Re: about synchronous_standby_names or sync replic