On Sun, Aug 4, 2013 at 4:26 PM, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
>> I remind you that event triggers are not fired for global objects
>> such as databases and roles. Do you intend to lift that restriction?
>
> That's not on my TODO list for 9.4. My understanding about implementing
> that is:
>
> - we agree that it would be nice to have,
> - it requires a separate *shared* catalog for event triggers.
>
> What I'm yet unsure about is that there's a consensus that the use cases
> are worthy of a new shared catalog in the system. Also I didn't look how
> hard it is to actually provide for it.
A new shared catalog wouldn't actually help, because the actual
procedure to be run has to live in pg_proc, which is not shared. And
that has references to all sorts of other things (like pg_language)
that aren't shared either.
I think the question isn't really a technical one so much as one of
policy. We could quite easily allow event triggers on shared objects.The reason I suggested that we NOT allow that is
becausethen
operations on those objects would behave differently depending on
which database you've attached. If you've attached a database with an
event trigger, you get the special behavior; otherwise, you don't. I
feared creating user confusion, there, and the use cases seemed
marginal anyway. But if there's a sufficient consensus that such a
thing is useful and non-confusing, I'll give way.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company