I originally sent to this to the pgsql-general mailing list as I was not sure if this was a bug or not. It seems likely that it is so I am sending it on to here.
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). Thanks in advance, Stephen Quinney ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org