Odd behavior of SELECT INTO in PL/pgSQL - Mailing list pgsql-bugs

From
Subject Odd behavior of SELECT INTO in PL/pgSQL
Date
Msg-id 29F36C7C98AB09499B1A209D48EAA615B49FD184A1@mail2a.alliedtesting.com
Whole thread Raw
Responses Re: Odd behavior of SELECT INTO in PL/pgSQL
List pgsql-bugs
PostgreSQL 8.4

Here is a PL/pgSQL procedure:

CREATE OR REPLACE FUNCTION select_test()
  RETURNS void AS
$BODY$
DECLARE
id integer =3D -1;
BEGIN
select max(id) into id from test_table;
END
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

test_table is some table with an integer column 'id'.

The above procedure has an obvious mistake: the variable 'id' has the same =
name as a column in test_table. The select statement should have generated =
an error, preferably at function creation time.

What actually happens is that no error is thrown, the select result is not =
assigned to the variable 'id', and the function always returns -1.

pgsql-bugs by date:

Previous
From: Andres Freund
Date:
Subject: Re: BUG #5566: High levels of savepoint nesting trigger stack overflow in AssignTransactionId
Next
From: Pavel Stehule
Date:
Subject: Re: Odd behavior of SELECT INTO in PL/pgSQL