ALTER TABLE ... DISABLE TRIGGER vs. AccessExclusiveLock

Поиск
Список
Период
Сортировка
От James Robinson
Тема ALTER TABLE ... DISABLE TRIGGER vs. AccessExclusiveLock
Дата
Msg-id 3A53054C-E654-4E18-9F5E-07B313029910@socialserve.com
обсуждение исходный текст
Ответы Re: ALTER TABLE ... DISABLE TRIGGER vs. AccessExclusiveLock  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Hackers,

Experience and a read through backend/commands/tablecmds.c's  
AlterTable() indicate that ALTER TABLE ... DISABLE TRIGGER obtains an  
exclusive lock on the table (as does any ALTER TABLE).

Blocking other readers from a table when we've, within the body of a  
transaction performing a bulk update operation where we don't want /  
need triggers to fire, seems at first glance to be over-kill. I can  
see how AlterTable()'s complex logic is made less complex through 'get  
and keep a big lock', since most of its operational modes really do  
need exclusive access, but is it strictly required for ... DISABLE /  
REENABLE TRIGGER?

Could, say, RowExclusiveLock hypothetically provide adequate  
protection, allowing concurrent reads, but blocking out any other  
writers (for ENABLE / DISABLE TRIGGER) -- such as if driven through a  
new statement other than ALTER TABLE -- such as "DISABLE TRIGGER foo  
ON tbar" ?

Thanks!
----
James Robinson
Socialserve.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: git config user.email
Следующее
От: Robert Haas
Дата:
Сообщение: Re: do we need to postpone beta4?