Re: Add generate_series(numeric, numeric)

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Add generate_series(numeric, numeric)
Дата
Msg-id CAB7nPqSjBFVbUJSeaxQrfdSy6ve3dvkwmfEp5Jrg-O=qGEZ+hA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Add generate_series(numeric, numeric)  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: Add generate_series(numeric, numeric)  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers


On Mon, Sep 29, 2014 at 4:19 PM, Michael Paquier <michael.paquier@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

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: jsonb format is pessimal for toast compression
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: Add generate_series(numeric, numeric)