Re: triggers vs. 'NEW in non-rule query' -- SOLVED?
От | Jan Wieck |
---|---|
Тема | Re: triggers vs. 'NEW in non-rule query' -- SOLVED? |
Дата | |
Msg-id | 200103080654.BAA13596@jupiter.jw.home обсуждение исходный текст |
Ответ на | triggers vs. 'NEW in non-rule query' -- SOLVED? (will trillich <will@serensoft.com>) |
Ответы |
Re: triggers vs. 'NEW in non-rule query' -- SOLVED?
|
Список | pgsql-general |
will trillich wrote: > > i THINK i've got it! MWAAH HA HA... > Congrats > i follow the example from the postgresql-doc/html/user/c4*40.html > document and define a function to be called via TRIGGER... > > CREATE FUNCTION easy() RETURNS OPAQUE AS ' > DECLARE > x CHAR(1) := NEW.somefield FROM 1 FOR 1; > BEGIN > -- whatever, yada yada, bada bing bada boom > RETURN NEW; > END; > ' language 'plpgsql'; Grmpf - exactly that's missing in the "#option dump" output - the calculation of default values for variable initialization. I was looking at your log-snippent over and over again and couldn't see it :-) > > and this results in "ERROR: use of NEW in non-rule procedure" > when actually called via TRIGGER. i change it instead to > > CREATE FUNCTION easy() RETURNS OPAQUE AS ' > DECLARE > x CHAR(1); -- no := assignment here > BEGIN > x := NEW.somefield FROM 1 FOR 1; > -- whatever, yada yada, bada bing bada boom > RETURN NEW; > END; > ' language 'plpgsql'; > > and suddenly all is right with the world. so i can't refer to the > NEW (or probably OLD) pseudotables WITHIN THE DECLARE section. > apparently. > > Q: is this a bug? is this a feature? A missing feature, and something that should be on 7.2's TODO. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
В списке pgsql-general по дате отправления: