Documentation of what schema modifications cause what level of table locking

From: Timothy Garnett <tgarnett(at)panjiva(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Documentation of what schema modifications cause what level of table locking
Date: 2011-09-23 22:52:54
Message-ID: CAPcyiQ1k_HABSJxpoZAEKHpW6Vah5P+x8_R-6j1P2hrrACzOQQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2011-09-24 00:18:46 Re: pg_dump compress
Previous Message Neil Tiffin 2011-09-23 21:33:39 Mac OS X shared_buffers not same as postgresql.conf file