Re: Multiple return 'columns' from postgre pl/pgsql

From: Steve Tucknott <steve(at)retsol(dot)co(dot)uk>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostGre <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Multiple return 'columns' from postgre pl/pgsql
Date: 2004-08-09 15:15:56
Message-ID: 1092064558.1119.10.camel@retsol1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Tom,
Thanks again for the reply.

We're calling the 'function' from a 4gl program - I'm just trying the
'Record' type route to make sure that the 4gl understands the returned
type. If not, then named row types will have to be the option.

Cheers again.

On Mon, 2004-08-09 at 15:23, Tom Lane wrote:

Steve Tucknott <steve(at)retsol(dot)co(dot)uk> writes:
> Does the 'rowtype' have to exist as a definition in the database?

In the form I showed, yes.

> Would returning a record type work -

Only if you're prepared to specify the actual record type in the calling
query. The point is that in

select * from myfunc(...);

the parser has to have some way of understanding what * expands to,
and it needs the info in advance of calling the function. So you
either need to return a named rowtype, or return record and specify
what you're expecting in the call. From memory it's something like

select * from myfunc(...) AS (f1 int, f2 text, ...);

but see the docs. In practice I think the named rowtype is easier in
99% of cases. The returns-record case is really meant for functions
that can actually return different rowtypes depending on the parameters
they are given, like dblink() does. If you're thinking of doing something
like that, you probably shouldn't be asking about it on the novice list ;-)

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Regards,

Steve Tucknott

ReTSol Ltd

DDI: 01903 828769

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message Eduardo Vázquez Rodríguez 2004-08-09 19:00:50 Copy query results to a file
Previous Message Sean Davis 2004-08-09 14:34:35 Re: Design question regarding arrays