Returning multiple values (but one row) in plpgsql

From: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Returning multiple values (but one row) in plpgsql
Date: 2004-09-08 18:51:33
Message-ID: 20040908135133.A9813@mofo.meme.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I want to return multiple values, but not a set, only a single row,
from a
plpgsql function and I can't seem to get it to work. (I suppose I'd be
happy to return a set, but I can't seem to make that work either.
Anyway,
what's wrong with this?)

Version is:

$ rpm -q postgresql
postgresql-7.3.4-3.rhl9
$ cat /etc/redhat-release Red Hat Linux release 9 (Shrike)

Code is:

-- Tests for returning multiple values

CREATE TYPE returntype AS (a INT, b INT);

CREATE FUNCTION return_multiple()
RETURNS returntype
LANGUAGE plpgsql
AS '

DECLARE
myvar returntype;

BEGIN
myvar.a := 1;
myvar.b := 2;

RETURN myvar;
END;
';

SELECT return_multiple();

DROP FUNCTION return_multiple();
DROP TYPE returntype CASCADE;

Errors are:

WARNING: plpgsql: ERROR during compile of return_multiple near line 9
ERROR: return type mismatch in function returning tuple at or near
"myvar"

Thanks.

Karl <kop(at)meme(dot)com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jerome Lyles 2004-09-08 18:54:04 Re: Postgresql and scripting [SOLVED]
Previous Message Paul Thomas 2004-09-08 17:37:25 Re: Need Help in interface..