set returning function

From: Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org>
To: pgsql-bugs(at)postgresql(dot)org
Cc: airbaggins(at)yahoo(dot)co(dot)uk
Subject: set returning function
Date: 2005-05-09 10:21:05
Message-ID: Pine.LNX.4.44.0505091208380.7072-100000@zigo.dhs.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

An issue came up on irc. How come that this work:

SELECT generate_series(0,1);

but

SELECT foo(0,1);

does not, where foo is my own set returning function, like this example:

CREATE FUNCTION foo(a int, b int)
RETURNS setof int
AS 'BEGIN RETURN NEXT a;
RETURN NEXT b;
RETURN;
END'
LANGUAGE plpgsql;

As far as I can tell the generate_series() example is not supposed to
work either.

Kris Jurka showed me another example that do work in the same way as
generate_series:

CREATE FUNCTION bar(int, int)
RETURNS setof int
AS 'SELECT $1 UNION ALL SELECT $2;'
LANGUAGE sql;

So it seems that it's not just the type that decide how the function can
be used, it's also the language the function is defined in.

Bug?

--
/Dennis Björklund

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kris Jurka 2005-05-09 10:55:48 Re: set returning function
Previous Message Dave Page 2005-05-09 07:27:03 Re: BUG #1654: can't run SQL commands