Record with a field consisting of table rows - Mailing list pgsql-general

From Jon Smark
Subject Record with a field consisting of table rows
Date
Msg-id 611127.80007.qm@web112816.mail.gq1.yahoo.com
Whole thread Raw
Responses Re: Record with a field consisting of table rows  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: Record with a field consisting of table rows  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Record with a field consisting of table rows  (Alban Hertroys <dalroi@solfertje.student.utwente.nl>)
List pgsql-general
Hi,

I am trying to create a PL/pgSQL function whose return type is a tuple
consisting of an integer and a list of table rows.  I emulate the tuple
by defining a record 'page_t' with the two fields; however, the naïve
approach of doing a SELECT INTO one the record's fields does not work
(see function 'get_page') below.  Am I missing something obvious here?

Thanks in advance!
Jon


create table users
        (
        uid     int4 not null,
        name    text not null,
        age     int4 not null,
        primary key (uid)
        );

create type user_t AS
        (
        uid     int4,
        name    text,
        age     int4
        );

create type page_t AS
        (
        total   int4,
        users   user_t[]
        );

create function get_page ()
returns page_t
language plpgsql as
$$
declare
        _page   page_t;
begin
        _page.total := select count (*) from users;
        select * into _page.users from users limit 10;
        return _page;
end
$$;





pgsql-general by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: Case Sensitivity
Next
From: Christian Walter
Date:
Subject: Re: Optimal settings for embedded system running PostgreSQL