Re: Command Triggers

Dimitri Fontaine <dimitri@2ndquadrant.fr>

From: Dimitri Fontaine <dimitri@2ndQuadrant.fr>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Dimitri Fontaine <dimitri@2ndQuadrant.fr>, Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org, Greg Smith <greg@2ndquadrant.com>, Bruce Momjian <bruce@momjian.us>, Alvaro Herrera <alvherre@commandprompt.com>
Date: 2012-01-18T09:09:34Z
Lists: pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes:
> Dimitri Fontaine <dimitri@2ndQuadrant.fr> writes:
>> I still have some cleaning to do before to prepare the next patch
>> version, such as documentation updating and dealing with rewrites of
>> CHECK and DEFAULT column constraints in CREATE TABLE.  I had to add
>> support for the T_A_Const parser node, and now I'm about to see about
>> adding support for the T_A_Expr one, but I can't help to wonder how the
>> rewriter could work without them.
>
> It doesn't, and it shouldn't have to.  If those nodes get to the
> rewriter then somebody forgot to apply parse analysis.  What's your test
> case?

I'm trying to rewrite the command string from the parse tree, and the
simple example that I use to raise an ERROR is the following:

  create table foo (id serial, foo integer default 1, primary key(id));

I don't know if the parsetree handed by ProcessUtility() has gone
through parse analysis and I don't know if that's needed to execute the
commands, so maybe I have some high level function to call before
walking the parse tree in my new rewriting support?

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