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