It seems that [ in 8.2.9 at least ], in a plpgsql declare block,
assignment to declared variable can use either the proper ':='
operator or the unexpected and undocumented '=' operator. See
following script. The magic handling of '=' ought to get documented at
least.
[ plpgsql-declarations.html makes no mention of '=' token handling in
either 8.3 or 8.2. docs ]
---
create or replace function test_1() returns int as
$$
declare
value int = 12; -- wow -- no colon!
begin
return value;
end;
$$ language plpgsql;
create or replace function test_2() returns int as
$$
declare
value int := 14; -- correct
begin
return value;
end;
$$ language plpgsql;
select test_1();
-- returns 12
select test_2();
-- returns 14
-----
----
James Robinson
Socialserve.com