Strange behavior of plpgsql. - Mailing list pgsql-novice

From Alex du Plessis
Subject Strange behavior of plpgsql.
Date
Msg-id f63442d70911040705t53691bf4of220732e0bd9e33c@mail.gmail.com
Whole thread Raw
Responses Re: Strange behavior of plpgsql.  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-novice
Hello list

I just noticed a strange quirk of plpgsql.  It gave me an error when trying to access a member of a complex field in NEW.  Error reported was: "ERROR:  NEW used in query that is not in a rule".

However, it seems that plsql rather has a problem with the double dot i.e. NEW.amount.direction and could not parse that (or did not have any knowledge of the complex type). 

I found a workaround by first declaring a local variable to the complex type DECLARE amnt tlx_actamount;
and then assigning the complex field to this variable.  It seems plpgsql is quite happy to accept such a consstruct.

As an example :

plpgsql will not accept
NEW.amount.direction ..and give the error listed above

It will however be happy with:

DECLARE amnt tlx_amount;

...
amnt:=NEW.amount;

Hope this sheds some light for a guru

Regards

--
Alex du Plessis

pgsql-novice by date:

Previous
From: Victor Jason
Date:
Subject: the database system is starting up
Next
From: CBoone@SperianProtection.com
Date:
Subject: Postgre 8.1.11 and Windows 7 (64-bit)