On Mon, Sep 29, 2014 at 4:19 PM, Michael Paquier <michael.paqu...@gmail.com> wrote:
> > Michael > Btw, while looking at your patch, I actually hacked it a bit and finished > with the attached: > - changed process to use NumericVar instead of Numeric > - addition of custom step values with a function > generate_series(numeric,numeric,numeric) > - some cleanup and some comments here and there > That's still WIP, but feel free to use it for future work. If you are able > to add documentation and regression tests to this patch, I would recommend > that you register it to the next commit fest, where it would get more > review, and hopefully it will get committed. > Oops, it seems that I have been too hasty here. With a fresh mind I looked at my own patch again and found two bugs: - Incorrect initialization of step variable with const_one - Incorrect calculation of each step's value, making stuff crash, it is necessary to switch to the context of the function to perform operations on a temporary variable first. Platon (am I writing your name correctly??), feel free to pick up the attached version, it works for me: =# SELECT * FROM generate_series(0.8, -4, -0.7); generate_series ----------------- 0.8 0.1 -0.6 -1.3 -2.0 -2.7 -3.4 (7 rows) =# SELECT * FROM generate_series(0.8, 5, 1.2); generate_series ----------------- 0.8 2.0 3.2 4.4 (4 rows) =# SELECT * FROM generate_series(0.8, 5); generate_series ----------------- 0.8 1.8 2.8 3.8 4.8 (5 rows) =# SELECT * FROM generate_series(0.8, 5, 0); ERROR: 22023: step size cannot equal zero LOCATION: generate_series_numeric, numeric.c:1271 This could be polished more, but I'm sure you'll deal with that well. If you are able to have a more accompished version for the next commit fest I'll have a look at it. Regards, -- Michael