From: Bill Moran <wmoran@potentialtech.com>
To: Shridhar Daithankar <shridhar@frodo.hserus.net>
Cc: pgsql-performance@postgresql.org
Subject: Re: On the performance of views
Date: Wed, 28 Jan 2004 11:02:21 -0500
Message-ID: <4017DD0D.6040200@potentialtech.com> (raw)
In-Reply-To: <4017764B.3080903@frodo.hserus.net>
References: <40152FF2.8000007@potentialtech.com>
<4015326A.8000706@frodo.hserus.net>
<4016BE69.9050909@potentialtech.com>
<200401271207.33551.josh@agliodbs.com>
<4017764B.3080903@frodo.hserus.net>
Shridhar Daithankar wrote:
> Josh Berkus wrote:
>
>> Bill,
>>
>>> Some functions they prototyped in MSSQL even return different types,
>>> based
>>> on certian parameters, I'm not sure how I'll do this in Postgres, but
>>> I'll
>>> have to figure something out.
>>
>> We support that as of 7.4.1 to an extent; check out "Polymorphic
>> Functions".
>
> To my understanding, polymorphism means more than one function with same
> name but different signature(Sorry C++ days!!).
>
> That still can not return rwos of two types in one call. At any moment,
> rowset returned by a function call would be homogenous.
>
> Is MSSQL allows to mix rows of two types in single function invocation,
> I am sure that would be a hell lot of porting trouble..
These are two seperate problems.
1) Returning a homogenious set of rows, but the composition of those rows
will not be known until run time, as a different set of logic will be
done depending on the values of some parameters.
2) Returning what MSSQL calls "combined recordsets", which are many rows,
but the rows are not homogenious.
As I see it, #1 can be solved by polymorphism in Postgres functions.
#2 has to be solved at the application level. My solution so far has
been to create multiple Postgres functions, call each one in turn, join
the results in C, and return them as a structure via SOAP to the client.
May not be the easiest way to get it working, but it's working so far.
(although I'm always open to suggestions if someone knows of a better
way)
--
Bill Moran
Potential Technologies
http://www.potentialtech.com
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: wmoran@potentialtech.com, shridhar@frodo.hserus.net, pgsql-performance@postgresql.org
Subject: Re: On the performance of views
In-Reply-To: <4017DD0D.6040200@potentialtech.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