Re: potential bug in trigger with boolean params

Tomas Vondra <tv@fuzzy.cz>

From: tv@fuzzy.cz
To: "Szymon Guz" <mabewlun@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2011-05-11T08:56:19Z
Lists: pgsql-hackers
> 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