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@meme.com >
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postg resql.org so that your
message can get through to the mailing list cleanly
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@meme.com >
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postg resql.org so that your
message can get through to the mailing list cleanly
Comment