Re: Command Triggers

Dimitri Fontaine <dimitri@2ndquadrant.fr>

From: Dimitri Fontaine <dimitri@2ndQuadrant.fr>
To: Andres Freund <andres@anarazel.de>
Cc: Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org, Greg Smith <greg@2ndquadrant.com>, Dimitri Fontaine <dimitri@2ndquadrant.fr>, Bruce Momjian <bruce@momjian.us>, Alvaro Herrera <alvherre@commandprompt.com>
Date: 2012-01-13T22:53:32Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> I personally think this is an error and those details should at least be 
> available on the c level (e.g. some pg_command_trigger_get_plan() function, 
> only available via C) to allow sensible playing around with that knowledge. I 
> don't really see making progress towards a nice interface unless we get 
> something to play around with out there.

If you target C coded triggers then all you need to do is provide a
pointer to the Node *parsetree, I would think.  What else?

The drawback though is still the same, the day you do that you've
proposed a public API and changing the parsetree stops being internal
refactoring.  The way around this problem is that if you want a command
trigger in C, just write an extension that implements the Process
Utility hook.  Bonus, you can have that working with already released
versions of PostgreSQL.

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support