I see this behavior with CVS tip:
CREATE TABLE wibble (a integer, b integer); INSERT INTO wibble VALUES (1,1); ALTER TABLE wibble ADD COLUMN c BIGINT; UPDATE wibble SET c = b; ALTER TABLE wibble DROP COLUMN b; ALTER TABLE wibble RENAME c TO b; CREATE FUNCTION foobar() RETURNS SETOF wibble AS 'SELECT * FROM wibble' LANGUAGE SQL;
regression=# SELECT * FROM wibble; a | b ---+--- 1 | 1 (1 row)
regression=# select * from foobar(); a | b ---+--- 1 | (1 row)
The example comes from a complaint in January 2004, at which time it would instead throw an ERROR:
ERROR: query-specified return row and actual function return row do not match
I'll start digging into this, but any hints on where to look would be greatly appreciated.
Thanks,
Joe
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html