From: | Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> |
---|---|
To: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: ALTER TABLE ... NOREWRITE option |
Date: | 2012-12-05 22:49:42 |
Message-ID: | m28v9ccdx5.fsf@2ndQuadrant.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Simon Riggs <simon(at)2ndQuadrant(dot)com> writes:
> On 5 December 2012 22:21, Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr> wrote:
>> Simon Riggs <simon(at)2ndQuadrant(dot)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… ?
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
AccessExclusiveLock on a relation when taken by *any* command? before
the lock is taken I suppose…
Regards,
--
Dimitri Fontaine 06 63 07 10 78
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2012-12-05 22:56:18 | Re: ALTER TABLE ... NOREWRITE option |
Previous Message | Dimitri Fontaine | 2012-12-05 22:43:05 | Re: Dumping an Extension's Script |