Re: Add generate_series(numeric, numeric)

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Add generate_series(numeric, numeric)
Дата
Msg-id CAB7nPqS_JN8PxD=5VBkqPK61qWWB=erggfTU8-fiE_8i7hj4aQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Add generate_series(numeric, numeric)  (Ali Akbar <the.apaan@gmail.com>)
Ответы Re: Add generate_series(numeric, numeric)
Список pgsql-hackers


On Tue, Oct 7, 2014 at 8:38 AM, Ali Akbar <the.apaan@gmail.com> wrote:
2014-10-06 22:51 GMT+07:00 Marti Raudsepp <marti@juffo.org>:

 
> the one that tests values just before numeric overflow

Actually I don't know if that's too useful. I think you should add a
test case that causes an error to be thrown.
 
Actually i added the test case because in the code, when adding step into current for the last value, i expected it to overflow:

/* increment current in preparation for next iteration */
add_var(&fctx->current, &fctx->step, &fctx->current);

where in the last calculation, current is 9 * 10^131071. Plus 10^131071, it will be 10^131072, which i expected to overflow numeric type (in the doc, numeric's range is "up to 131072 digits before the decimal point").

In attached patch, i narrowed the test case to produce smaller result.
 
Well, as things stand now, the logic relies on cmp_var and the sign of the stop and current values. it is right that it would be better to check for overflow before going through the next iteration, and the cleanest and cheapest way to do so would be to move the call to make_result after add_var and save the result variable in the function context, or something similar, but honestly I am not sure it is worth the complication as it would mean some refactoring on what make_result actually already does.

I looked at this patch again a bit and finished with the attached, adding an example in the docs, refining the error messages and improving a bit the regression tests. I have nothing more to comment, so I am marking this patch as "ready for committer".
Regards,
--
Michael
Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Wait free LW_SHARED acquisition - v0.9
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Typo in bgworker.sgml