PostgreSQL 8.4 Here is a PL/pgSQL procedure:
CREATE OR REPLACE FUNCTION select_test() RETURNS void AS $BODY$ DECLARE id integer = -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.