----- "Adrian Klaver" <aklaver@xxxxxxxxxxx> wrote: > ----- "Andreas Moeller" <a.moeller@xxxxxxx> wrote: > > > Following lines produce an error message under 8.3. - but not under > > 8.1. > > Why? > > > > CREATE OR REPLACE FUNCTION dodi() RETURNS boolean AS > > $$ > > BEGIN > > SELECT 'abc' INTO TEMPORARY foonana; > > RETURN FALSE; > > END; > > $$ > > LANGUAGE 'plpgsql'; > > > > > > FEHLER: syntax error at "TEMPORARY" > > DETAIL: Expected record variable, row variable, or list of scalar > > variables following INTO. > > CONTEXT: compile of PL/pgSQL function "dodi" near line 2 > > > > ********** Fehler ********** > > > > FEHLER: syntax error at "TEMPORARY" > > SQL Status:42601 > > Detail:Expected record variable, row variable, or list of scalar > > variables following INTO. > > Kontext:compile of PL/pgSQL function "dodi" near line 2 > > Are you sure this worked in 8.1? SELECT INTO in plpgsql needs to point > to a variable as noted by the error message. You need to declare a > variable. > > -- Out of curiosity I went back to 8.0 and ran the function and got: production=> SELECT dodi(); WARNING: column "?column?" has type "unknown" DETAIL: Proceeding with relation creation anyway. CONTEXT: SQL statement "SELECT 'abc' INTO TEMPORARY foonana" PL/pgSQL function "dodi" line 2 at SQL statement dodi ------ f (1 row) Seems it ignores the unknown type and returns the False value. Type casting has been tightened up in 8.3, so this qualifies as an error now. Adrian Klaver aklaver@xxxxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general