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

Reply via email to