Re: plpgsql Difference in behaviour between versions? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: plpgsql Difference in behaviour between versions?
Date
Msg-id CAFj8pRAMu8dwhK_cBuwm7VNuFrrYeJ2RHQJG68_6wA71zAPD2A@mail.gmail.com
Whole thread Raw
In response to plpgsql Difference in behaviour between versions?  (Chris McDonald <chrisjonmcdonald@gmail.com>)
List pgsql-general
Hello

http://developer.postgresql.org/pgdocs/postgres/release-9-0.html

PL/pgSQL no longer allows variable names that match certain  reserved
words (Tom Lane)

use double quotes

 rec."open" = 32;

Regards

Pavel Stehule

2011/11/23 Chris McDonald <chrisjonmcdonald@gmail.com>:
> Hi,
> I am upgrading a system from postgresql 8.4.8 (fedora 13 x64) to postgresql 9.0.5 (fedora 15 x64). As I build a
databaseI've noticed that the following works on 8.4.8 but does not work on 9.0.5. Can someone tell me why this is not
legalsyntax in 9.0.5 but is legal in 8.4.8 please: 
>
> ===snip===
> create type mytype
> as
> (
>   somekey integer,
>   open numeric(14, 2)
> );
>
> CREATE OR REPLACE FUNCTION myfunc(IN INTEGER, IN NUMERIC(14, 2))
>        RETURNS VOID
> AS $$
> DECLARE
>        somekey ALIAS FOR $1;
>        rec mytype;
> BEGIN
>        rec.somekey = somekey;
>
>        -- 9.0.5 will fail at the dot character in the
>        -- following line here with syntax error sqlstate 42601
>        -- but 8.4.8 is happy.
>        rec.open = 32;
>        -- ^
>
>        RETURN;
> END;
> $$ LANGUAGE plpgsql;
> ===snip===
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

pgsql-general by date:

Previous
From: khizer
Date:
Subject: Re: pg_standby for postgresql8.2
Next
From: Jerry Sievers
Date:
Subject: Re: plpgsql Difference in behaviour between versions?