Re: low performance on functions returning setof record - Mailing list pgsql-performance

From Tom Lane
Subject Re: low performance on functions returning setof record
Date
Msg-id 3693.1223580651@sss.pgh.pa.us
Whole thread Raw
In response to low performance on functions returning setof record  ("Sabin Coanda" <sabin.coanda@deuromedia.ro>)
Responses Re: low performance on functions returning setof record  (Dimitri Fontaine <dfontaine@hi-media.com>)
List pgsql-performance
"Sabin Coanda" <sabin.coanda@deuromedia.ro> writes:
> I use different functions returning setof record, and they are working well.
> The problem is the performance when I use those functions in joins, for
> instance:

>         SELECT *
>         FROM "Table1" t1
>                 JOIN "Function1"( a1, a2, ... aN ) AS f1( ColA int4, ColB
> varchar, ... )
>                         ON t1.ColX = f1.ColA

> The problem is I'm not able to make indexes on the function, even inside I
> have just another select statement from different permanent tables, with
> some where clauses depending on the function arguments.

There's not a lot you can do about that at the moment.  8.4 will have
the ability to inline functions returning sets, if they're SQL-language
and consist of just a single SELECT, but existing releases won't do it.

You might consider trying to refactor your stuff to use views ...

            regards, tom lane

pgsql-performance by date:

Previous
From: "Sabin Coanda"
Date:
Subject: low performance on functions returning setof record
Next
From: Dimitri Fontaine
Date:
Subject: Re: low performance on functions returning setof record