Thread: RE: [SQL] Function returning multiple rows?

RE: [SQL] Function returning multiple rows?

From
"Jackson, DeJuan"
Date:
Not currently.

> -----Original Message-----
> From: Patrik Kudo [mailto:kudo@partitur.se]
> Sent: Friday, February 05, 1999 9:54 AM
> To: pgsql-sql@postgreSQL.org
> Subject: [SQL] Function returning multiple rows?
>
>
> Hello,
>
> I've been trying to create a function which returns multiple
> rows, but I
> can't get it working. I'm I doing something wrong, or is it not
> possible? This is my setup:
>
> create table groups (userid int4, grp int4);
>
> CREATE FUNCTION usersingroup(int4) RETURNS int4 AS 'SELECT userid FROM
> groups WHERE grp = $1;' LANGUAGE 'sql';
>
>
> When doing a
>
> SELECT usersingroup(100);
>
> I only get the first row. Is there any way to get all the rows?
>
> Regards,
> Patrik Kudo
> kudo@partitur.se
>

Re: [SQL] Function returning multiple rows?

From
jwieck@debis.com (Jan Wieck)
Date:
>
> Not currently.

    Partly  right.  We cannot return multiple row's (at least the
    return values aren't useful). But an  SQL  language  function
    can return multiple results.

    Only works for SQL language, not C or PL.

>
> > -----Original Message-----
> > From: Patrik Kudo [mailto:kudo@partitur.se]
> > Sent: Friday, February 05, 1999 9:54 AM
> > To: pgsql-sql@postgreSQL.org
> > Subject: [SQL] Function returning multiple rows?
> >
> >
> > Hello,
> >
> > I've been trying to create a function which returns multiple
> > rows, but I
> > can't get it working. I'm I doing something wrong, or is it not
> > possible? This is my setup:
> >
> > create table groups (userid int4, grp int4);
> >
> > CREATE FUNCTION usersingroup(int4) RETURNS int4 AS 'SELECT userid FROM
> > groups WHERE grp = $1;' LANGUAGE 'sql';

    CREATE FUNCTION usersingroup(int4) RETURNS SETOF int4 AS '
        SELECT userid FROM groups WEHRE grp = $1;
    ' LANGUAGE 'sql';

> >
> >
> > When doing a
> >
> > SELECT usersingroup(100);
> >
> > I only get the first row. Is there any way to get all the rows?

    With the above you'll get multiple results. The magic word
    is SETOF.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #