Re: Problem with looping on a table function result - Mailing list pgsql-sql

From Christoph Haller
Subject Re: Problem with looping on a table function result
Date
Msg-id 3F2E26AF.627C4763@rodos.fzk.de
Whole thread Raw
In response to Problem with looping on a table function result  ("Alexander M. Pravking" <fduch@antar.bryansk.ru>)
List pgsql-sql
>
> I've met the following problem.
> I had successfully written a function divide_into_days(timestamp,
timestamp)
> which returns setof (timestamp, timestamp) pairs - a list of days the
> given interval is divided into.
>
> What I want is to use each record from resultset to pass to another
> function, something like:
>
> SELECT        days.*, summary_stats(days.day_start, days.day_end)
> FROM  divide_into_days('2003-06-01', '2003-07-01') days;
>
> The problem is that summary_stats function returns a record, so I have

> to use SELECT * FROM summary_stats(...). I can't use the following
too:
>
> SELECT        *
> FROM  summary_stats(days.day_start, days.day_end) stats,
>       divide_into_days('2003-06-01', '2003-07-01') days;
>
> (there was a discussion a few days ago about using subselects,
> but here's a slightly different case).
>
> I wonder if where's a way to do the trick without writing one more
> PL/PgSQL table function doing FOR row IN SELECT ... LOOP or using
> client-side loop?
>
Did you see

http://techdocs.postgresql.org/guides/SetReturningFunctions

Regards, Christoph




pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: join optimization problem
Next
From: Scott Cain
Date:
Subject: Re: [PERFORM] EXTERNAL storage and substring on long strings