Re: ALTER TABLE ... NOREWRITE option

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема Re: ALTER TABLE ... NOREWRITE option
Дата
Msg-id CA+U5nMJ0Oc2G7dSw8_v4UaepY3hY2tc4P+f19J_R4Y1K83+zoQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: ALTER TABLE ... NOREWRITE option  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
Список pgsql-hackers
On 5 December 2012 22:49, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
>> On 5 December 2012 22:21, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
>>> Simon Riggs <simon@2ndQuadrant.com> writes:
>>>>> CREATE EVENT TRIGGER my_event_trigger
>>>>>     ON table_rewrite
>>>>>     EXECUTE PROCEDURE consider_whether_to_throw_an_error();
>>>>
>>>> +1, I was just thinking that myself.
>>>
>>> +1, and I think that can happen for 9.3, as soon as we agree on the list
>>> of code points where we want that event to fire. ALTER TABLE variants
>>> that are rewriting the heap, sure. CLUSTER? VACUUM FULL? TRUNCATE?
>>
>> Events needed
>> * Table rewrite
>> * Index rebuild
>> * Relation scan (index/table/toast etc)
>> * AccessExclusiveLock
>
> For each of those events we need to find the exact code location from
> where to call the registered user defined function, if any. I would like
> us to at least devise which commands are going to fire the events here.
>
>   Table Rewrite:  ALTER TABLE, CLUSTER, VACUUM… ?
>   Index Rebuild:  ALTER TABLE, REINDEX, CLUSTER, VACUUM FULL… ?

yes please

>   Relation scan:  SELECT, ALTER TABLE … ADD CHECK …, etc
>
>                   maybe targeting index/seq scan from the executor code
>                   directly would be enough in that case? I'm not sure I
>                   can call into src/backend/commands/event_trigger.c
>                   from anywhere in the executor though, I need advice

Not SELECT - DDL only - for things like CREATE INDEX, so IndexBuildScan() IIRC

> AccessExclusiveLock on a relation when taken by *any* command? before
> the lock is taken I suppose…

At end of Lock Acquire, same place we already WAL-log the action.

-- Simon Riggs                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services



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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Enabling Checksums
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: ALTER TABLE ... NOREWRITE option