From: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Reduce lock levels for ADD and DROP COLUMN |
Date: | 2010-12-27 11:42:34 |
Message-ID: | 1293450154.1193.62851.camel@ebony |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Idea is to reduce lock level of ADD/DROP COLUMN from AccessExclusiveLock
down to ShareRowExclusiveLock.
To make it work, we need to recognise that we are adding a column
without rewriting the table. That's a simple test at post parse analysis
stage, but what I can't do is work out whether the column name used is a
domain name which contains a constraint.
So if we want this, then it seems we need to add a separate subcommand,
so we can then throw an error if a domain is specified.
ALTER TABLE foo
ADD [COLUMN] colname CONCURRENTLY;
Or other ideas? Do we really care?
DROP ... RESTRICT works fine at reduced lock level, assuming I'm not
missing anything...
ALTER TABLE foo
DROP [COLUMN] colname RESTRICT;
Patch needs docs, tests and a check for the domain, so just a quick hack
just to get my dev muscles back in shape after Christmas. (Jokes
please).
Comments?
--
Simon Riggs http://www.2ndQuadrant.com/books/
PostgreSQL Development, 24x7 Support, Training and Services
Attachment | Content-Type | Size |
---|---|---|
alter_adddrop.v1.patch | text/x-patch | 2.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Itagaki Takahiro | 2010-12-27 12:21:39 | Re: MULTISET patch |
Previous Message | Florian Pflug | 2010-12-27 11:42:19 | Re: Streaming replication as a separate permissions |