Bug in functions returning setof where table has dropped column?

From: Stephen Quinney <stephen(dot)quinney(at)computing-services(dot)oxford(dot)ac(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Bug in functions returning setof where table has dropped column?
Date: 2004-01-10 18:12:28
Message-ID: 20040110181228.GA17882@computing-services.oxford.ac.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


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

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruno Wolff III 2004-01-10 18:19:36 Re: no space left on device
Previous Message Joe Conway 2004-01-10 17:57:14 Re: Hierarchical queries