pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alexander M. Pravking <fduch@antar.bryansk.ru>
To: pgsql-sql@postgresql.org
Subject: Problem with looping on a table function result
Date: Fri, 1 Aug 2003 02:32:33 +0400
Message-ID: <20030731223233.GJ86626@dyatel.antar.bryansk.ru> (raw)

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?

Thanks for your help.

-- 
Fduch M. Pravking



view thread (2+ messages)  latest in thread

Message-ID: <20030731223233.GJ86626@dyatel.antar.bryansk.ru>
Permalink:  ../20030731223233.GJ86626@dyatel.antar.bryansk.ru/
Also on:    postgresql.org/message-id/20030731223233.GJ86626@dyatel.antar.bryansk.ru

 · 

reply

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: fduch@antar.bryansk.ru
  Subject: Re: Problem with looping on a table function result
  In-Reply-To: <20030731223233.GJ86626@dyatel.antar.bryansk.ru>

* 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