Re: help with generation_series in pg10 - Mailing list pgsql-general

From Merlin Moncure
Subject Re: help with generation_series in pg10
Date
Msg-id CAHyXU0wh0bt-8QAjHHdH+SQQ4WdvVGWS8hT6deZMqXfenCYb-Q@mail.gmail.com
Whole thread Raw
In response to RES: help with generation_series in pg10  (Márcio A. Sepp <marcio@zyontecnologia.com.br>)
Responses RES: help with generation_series in pg10  (Márcio A. Sepp <marcio@zyontecnologia.com.br>)
List pgsql-general
On Tue, Jan 9, 2018 at 10:14 AM, Márcio A. Sepp
<marcio@zyontecnologia.com.br> wrote:
>
>> > how can i have the same in pg10 as i have had in pg 9.x?
>>
>> Move the function call to the FROM clause:
>>
>> select g, (g - 1) % 5 + 1 from generate_series(1, 10) g;
>
> thank you. That is exact what i need.
>
>
>> > I need it to date type to...  if possible.
>>
>> There is a generate_series() variant that can return dates (more
>> precisely, timestamp with time zone).  But what exactly would you like
>> returned?
>
> In the past i use querys like this to generate some timestamp field:
> select generate_series (1, 10), generate_series('2018-01-01
> 10:00'::timestamp, '2018-01-02 10:00'::timestamp, '10 hours');

With the old behavior you're lucky this ever worked at all.  Doing
this kind of stuff, you want to write it with a single generate_series
driver if you can or as a cross product:

select
  a, b,c
from generate_series(1,3) a
cross join generate_series(1,4) b
cross join generate_series(1,2) c;

The old behavior presented 'least common multiple' which was very
surprising in that it sometimes worked like cross product but
sometimes didn't depending on specific numbers chosen.

merlin


pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: help with generation_series in pg10
Next
From: Márcio A. Sepp
Date:
Subject: RES: help with generation_series in pg10