From: Josh Berkus <josh@agliodbs.com>
To: Bill Moran <wmoran@potentialtech.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: [PERFORM] Set-Returning Functions WAS: On the performance of views
Date: Thu, 29 Jan 2004 15:17:19 -0800
Message-ID: <200401291517.19647.josh@agliodbs.com> (raw)
In-Reply-To: <4019629C.3040307@potentialtech.com>
References: <40152FF2.8000007@potentialtech.com>
<200401291121.54048.josh@agliodbs.com>
<4019629C.3040307@potentialtech.com>
Bill,
> I don't understand at all. If I do "SELECT * FROM
> set_returning_function()" and all I'm going to do is iterate through the
> columns and rows, adding them to a two dimensional array that will be
> marshalled as a SOAP message, what about not knowing the nature of the
> return set can cause me to get no data?
Because that's not the syntax for a function that returns SETOF RECORD.
The syntax is:
SELECT *
FROM set_returning_function(var1, var2) AS alias (col1 TYPE, col2 TYPE);
That is, if the function definition does not contain a clear row structure,
the query has to contain one.
This does not apply to functions that are based on a table or composite type:
CREATE FUNCTION .... RETURNS SETOF table1 ...
CREATE FUNCTION .... RETURNS SETOF comp_type
Can be called with:
SELECT * FROM some_function(var1, var2) as alias;
What this means is that you have to know the structure of the result set,
either at function creation time or at function execution time.
>
> One of the things I love about working with open source databases is I
> don't see a lot of that. The people on these lists are almost always
> smarter than me, and I find that comforting ;)
Flattery will get you everywhere.
--
Josh Berkus
Aglio Database Solutions
San Francisco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: josh@agliodbs.com, wmoran@potentialtech.com
Subject: Re: [PERFORM] Set-Returning Functions WAS: On the performance of views
In-Reply-To: <200401291517.19647.josh@agliodbs.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox