I really cannot tell if this is a bug or I am just doing something
stupid.
I create a table called wibble:
CREATE TABLE wibble (a integer, b integer);
I insert some data:
INSERT INTO wibble VALUES (1,1);
I decide that actually I want column b to be a BIGINT, so I do:
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;
I have written a function which shows fairly simply my problem.
CREATE FUNCTION foobar() RETURNS SETOF wibble AS
'SELECT * FROM wibble' LANGUAGE SQL;
Doing 'select * from foobar();' gives me the error:
ERROR: query-specified return row and actual function return row do not
match
I have tested it on other tables where I have not messed around with
any columns like this and it does not occur for them.
I am using postgresql 7.4.1 on Debian sid/unstable (i386).
I would love to know what I have done wrong here, if this is not a bug.
Thanks in advance,
Stephen Quinney