Skip site navigation (1) Skip section navigation (2)

Re: Change lock requirements for adding a trigger

From: Decibel! <decibel(at)decibel(dot)org>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: PG Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Change lock requirements for adding a trigger
Date: 2008-06-04 13:31:46
Message-ID: 85B9C2D2-76F8-467F-958B-A1B8324A74FA@decibel.org (view raw or flat)
Thread:
Lists: pgsql-hackers
On Jun 3, 2008, at 5:04 PM, Simon Riggs wrote:
> On Tue, 2008-06-03 at 16:48 -0500, Decibel! wrote:
>> On May 30, 2008, at 9:51 AM, Simon Riggs wrote:
>>> On Thu, 2008-05-29 at 19:18 -0500, Decibel! wrote:
>>>> Is there a reason that we can't add a trigger to a table while a
>>>> select is running? This is a serious pain when trying to setup
>>>> londiste or slony.
>>>
>>> This is constrained by locking.
>>>
>>> There are a subset of DDL commands that might be able to be  
>>> performed
>>> with just an ExclusiveLock or ShareLock rather than an
>>> AccessExclusiveLock. Nobody has studied which sub-statements this
>>> might
>>> apply to, but its do-able since CREATE INDEX already does this.
>>
>> Is there a good way to determine this other than depending on
>> knowledge of the source code?
>
> The source doesn't know yet. So just analysis and thinking.
>
> The mechanism to hold less than an AccessExclusiveLock it doesn't  
> exist
> yet, but it never will unless we have a list of the things that  
> might be
> performed correctly with a lower level of lock.

Ok, I'll take a stab at such a list. Can anyone think of any reasons  
why CREATE TRIGGER couldn't get by with ShareLock?
-- 
Decibel!, aka Jim C. Nasby, Database Architect  decibel(at)decibel(dot)org
Give your computer some brain candy! www.distributed.net Team #1828


In response to

Responses

pgsql-hackers by date

Next:From: Andreas PflugDate: 2008-06-04 14:19:47
Subject: Re: Overhauling GUCS
Previous:From: Decibel!Date: 2008-06-04 13:21:26
Subject: Re: rfc: add pg_dump options to dump output

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group