On 11 May 2011 10:56, <t...@fuzzy.cz> wrote:

> > Hi,
> > I was trying to create a trigger with parameters. I've found a potential
> > bug
> > when the param is boolean.
> >
> > Here is code replicating the bug:
> >
> > CREATE TABLE x(x TEXT);
> >
> > CREATE OR REPLACE FUNCTION trigger_x() RETURNS TRIGGER AS $$
> > BEGIN
> >         RETURN NEW;
> > END; $$ LANGUAGE PLPGSQL;
> >
> > CREATE TRIGGER trig_x_text BEFORE INSERT ON x FOR EACH ROW EXECUTE
> > PROCEDURE
> > trigger_x('text');
> > CREATE TRIGGER trig_x_int BEFORE INSERT ON x FOR EACH ROW EXECUTE
> > PROCEDURE
> > trigger_x(10);
> > CREATE TRIGGER trig_x_float BEFORE INSERT ON x FOR EACH ROW EXECUTE
> > PROCEDURE trigger_x(42.0);
> > CREATE TRIGGER trig_x_bool BEFORE INSERT ON x FOR EACH ROW EXECUTE
> > PROCEDURE
> > trigger_x(true);
> >
> > ERROR:  syntax error at or near "true"
> > LINE 1: ... 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
>
> regards
> Tomas
>
>
Well... no.

In the link you've provided there is something different:


Valid literal values for the "true" state are:

TRUE't''true''y''yes''on''1'

so I could use 'true'... and this doesn't work.

And SQL is not case sensitive... but I will check it for you anyway:

CREATE TRIGGER trig_x_2 BEFORE INSERT ON x FOR EACH ROW EXECUTE PROCEDURE
trigger_x(TRUE);

ERROR:  syntax error at or near "TRUE"
LINE 1: ... INSERT ON x FOR EACH ROW EXECUTE PROCEDURE trigger_x(TRUE);

regards
Szymon

Reply via email to