Odd behavior of SELECT INTO in PL/pgSQL

Поиск
Список
Период
Сортировка
От
Тема Odd behavior of SELECT INTO in PL/pgSQL
Дата
Msg-id 29F36C7C98AB09499B1A209D48EAA615B49FD184A1@mail2a.alliedtesting.com
обсуждение исходный текст
Ответы Re: Odd behavior of SELECT INTO in PL/pgSQL  (Pavel Stehule <pavel.stehule@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: BUG #5566: High levels of savepoint nesting trigger stack overflow in AssignTransactionId
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: Odd behavior of SELECT INTO in PL/pgSQL