Re: On the performance of views - Mailing list pgsql-performance

From Bill Moran
Subject Re: On the performance of views
Date
Msg-id 4017DD0D.6040200@potentialtech.com
Whole thread Raw
In response to Re: On the performance of views  (Shridhar Daithankar <shridhar@frodo.hserus.net>)
Responses Re: On the performance of views
List pgsql-performance
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


pgsql-performance by date:

Previous
From: Shridhar Daithankar
Date:
Subject: Re: On the performance of views
Next
From: Stef
Date:
Subject: postgres timeout.