Just testing pl/pgsql functions in 8.1beta4, I see failures for syntax that 
works in 8.0.3. The simplest test case for this is:

create table ptest(foo int, bar varchar(10));
create or replace function modify_ptest(
        foo int,
        bar varchar)
returns numeric as $$
declare 
        res numeric;
begin
        update ptest
        set bar = modify_ptest.bar
        where foo = modify_ptest.foo;
        res := 0;
return res;
end;
$$ LANGUAGE plpgsql;

The error message from psql is:

ERROR:  syntax error at or near "$1" at character 19
QUERY:  update ptest set  $1  = modify_ptest.bar where  $2  = modify_ptest.foo
CONTEXT:  SQL statement in PL/PgSQL function "modify_ptest" near line 7
LINE 1: update ptest set  $1  = modify_ptest.bar where  $2  = modify...
                          ^

I assume what I'm trying should still work, though I couldn't find comparable 
examples in the doco. Looks to me like a problem with parameter aliasing.

Regards, Philip.

-----------------
Utiba Pty Ltd 
This message has been scanned for viruses and
dangerous content by Utiba mail server and is 
believed to be clean.


---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to