Re: a column definition list is required for functions returning "record" - Mailing list pgsql-general

From Pavel Stehule
Subject Re: a column definition list is required for functions returning "record"
Date
Msg-id CAFj8pRDtbAj5tLEH3161-xpSqLy5CeUyqKVCyEG8-Szs85ydng@mail.gmail.com
Whole thread Raw
In response to Re: a column definition list is required for functions returning "record"  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
Responses Re: a column definition list is required for functions returning "record"  (Alexander Farber <alexander.farber@gmail.com>)
Re: a column definition list is required for functions returning "record"  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general


2016-08-29 1:59 GMT+02:00 Jim Nasby <Jim.Nasby@bluetreble.com>:
On 8/26/16 10:32 AM, Alexander Farber wrote:
Thank you, I was just wondering if there is a simpler way... but ok

It would be nice if there was a way to pass dynamically formed records around, similar to how you can pass the results of row() around. Someone else has actually be asking about this at https://github.com/decibel/pg_lambda/issues/1.

Probably there is a space to be PLpgSQL more flexible - but there are limits - PLpgSQL is black box for SQL engine, and when output is any record type, then SQL engine knows zero about returning data structure in preprocessing time. It is reason, why exists statement CALL (not implemented in Postgres) - where these information should not be necessary.
 

BTW, there's no advantage I can think of to using plpgsql just to return the output of a query. You'd be better off using a SQL function instead.

Actually, I guess the plan for the plpgsql version would be cached; I'm not sure if the same is true for SQL functions. But you'd probably need a more complex query for that to be a win over the lighter weight nature of SQL functions.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)   mobile: 512-569-9461


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: LOG: could not fork new process for connection: Cannot allocate memory
Next
From: Johannes
Date:
Subject: create roles as normal user