Re: date range to set of dates expansion - Mailing list pgsql-sql

From Samuel Gendler
Subject Re: date range to set of dates expansion
Date
Msg-id CAEV0TzBOpA+VdkQ-NeW5dhEc5EWOxFASsoogF0FCL1K_P_q_cA@mail.gmail.com
Whole thread Raw
In response to Re: date range to set of dates expansion  (Adrian Klaver <adrian.klaver@gmail.com>)
Responses Re: date range to set of dates expansion  (Adrian Klaver <adrian.klaver@gmail.com>)
List pgsql-sql


On Thu, Jan 19, 2012 at 8:20 AM, Adrian Klaver <adrian.klaver@gmail.com> wrote:
On Thursday, January 19, 2012 7:59:27 am Gary Stainburn wrote:
> The following code works in 8.4 but not 8.3.
> Anyone know why, or what I need to do to change it?
>
> SELECT aid, asid,
>        date_range (asdate, afdate)::date AS asdate,
>        acomments
> FROM availability
>
> In 8.4 it returns the expanded dataset as required. In 8.3 I get:
>
> ERROR:  set-valued function called in context that cannot accept a set
> CONTEXT:  PL/pgSQL function "date_range" line 4 at RETURN NEXT

As to why it works in 8.4 vs 8.3

http://www.postgresql.org/docs/8.4/interactive/release-8-4.html

"Support set-returning functions in SELECT result lists even for functions that
return their result via a tuplestore (Tom)

In particular, this means that functions written in PL/pgSQL and other PL
languages can now be called this way.'

In 8.3- I believe you could only call it as

SELECT * from date_range (asdate, afdate)::date AS asdate;

I don't think you can have that cast there when it is in the from-clause.  You can refer to its values in the select clause explicitly if you alias the the results:

select r.range_date::date from date_range(asfdate, afdate) as r(range_date); Presumably, you can fashion something that satisfies your needs by putting something like this in a subquery which refers to the start and end date in each row of the outer query.  I'm in a rush, so no time to figure out a working demo for you.

--sam

pgsql-sql by date:

Previous
From: Steve Crawford
Date:
Subject: Re: date range to set of dates expansion
Next
From: Adrian Klaver
Date:
Subject: Re: date range to set of dates expansion