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)
|
Список | pgsql-hackers |
On Mon, Sep 29, 2014 at 4:19 PM, Michael Paquier <michael.paquier@gmail.com> wrote:
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:MichaelBtw, 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.
- 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
=# 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
Michael
В списке pgsql-hackers по дате отправления: