Odd behavior of SELECT INTO in PL/pgSQL

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