triggers vs. 'NEW in non-rule query' -- SOLVED? - Mailing list pgsql-general

From will trillich
Subject triggers vs. 'NEW in non-rule query' -- SOLVED?
Date
Msg-id 20010304104945.B3610@mail.serensoft.com
Whole thread Raw
Responses Re: triggers vs. 'NEW in non-rule query' -- SOLVED?  (Jan Wieck <janwieck@Yahoo.com>)
List pgsql-general
On Sat, Mar 03, 2001 at 11:50:03PM -0500, Ron Peterson wrote:
>
> Could you provide an example of what *doesn't* work?
>

i THINK i've got it! MWAAH HA HA...

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';

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?

--
It is always hazardous to ask "Why?" in science, but it is often
interesting to do so just the same.
        -- Isaac Asimov, 'The Genetic Code'

will@serensoft.com
http://groups.yahoo.com/group/newbieDoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: postgres locks...
Next
From: Boulat Khakimov
Date:
Subject: How to Describe a field in the table???