Re: potential bug in trigger with boolean params - Mailing list pgsql-hackers

From Andres Freund
Subject Re: potential bug in trigger with boolean params
Date
Msg-id 201105111129.08449.andres@anarazel.de
Whole thread Raw
In response to Re: potential bug in trigger with boolean params  (Andres Freund <andres@anarazel.de>)
Responses Re: potential bug in trigger with boolean params  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Wednesday, May 11, 2011 11:21:34 AM Andres Freund wrote:
> On Wednesday, May 11, 2011 11:01:56 AM Andreas Joseph Krogh wrote:
> > På onsdag 11. mai 2011 kl 10:56:19 skrev <tv@fuzzy.cz>:
> > > > CREATE TRIGGER trig_x_bool BEFORE INSERT ON x FOR EACH ROW EXECUTE
> > > > PROCEDURE
> > > > trigger_x(true);
> > >
> > > The docs clearly state what the valid values are and the literal 'true'
> > > is not one of them (TRUE is). See this:
> > >
> > > http://www.postgresql.org/docs/9.0/interactive/datatype-boolean.html
> >
> > What are you trying to accomplish? "CREATE OR REPLACE FUNCTION
> > trigger_x()" does not declare any formal-parameters, so calling it with
> > arguments doesn't make sense. I'm surprised creating the other triggers
> > didn't produce an error stating "No function defined with the name
> > trigger_ix and the given argument-type".
>
> Read the docs. Parameters for triggers are not passed as normal function
> parameters. Thats why you access them via via TG_ARGV in plpgsql.
>
> The grammar accepts only a very limited amount of parameters there:
Err....

TriggerFuncArg:        Iconst            {                char buf[64];                snprintf(buf, sizeof(buf), "%d",
$1);               $$ = makeString(pstrdup(buf));            }        | FCONST                                { $$ =
makeString($1);}        | Sconst                                { $$ = makeString($1); }        | BCONST
               { $$ = makeString($1); }        | XCONST                                { $$ = makeString($1); }
|ColId                                { $$ = makeString($1); } 

That is integers, floating point, strings, bitstrings, hexstrings and column references (???).

How that exact list came to exist I do not know.

Andres


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: time-delayed standbys
Next
From: Szymon Guz
Date:
Subject: Re: potential bug in trigger with boolean params