Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument
Дата
Msg-id CAFj8pRCuBWsi=Hf3pmbN8kJHu+y+O8-Hn+XEp_R7Yn3TOQBj0A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument  (Jerry Sievert <jerry@legitimatesounding.com>)
Ответы Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs


po 4. 1. 2021 v 20:25 odesílatel Jerry Sievert <jerry@legitimatesounding.com> napsal:
Hi,

On Jan 4, 2021, at 11:21 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:



po 4. 1. 2021 v 19:44 odesílatel PG Bug reporting form <noreply@postgresql.org> napsal:
> select substring('string' from 2 for 2147483646);

Actual result:

2021-01-04 12:43:13.145 EST [85734] ERROR:  negative substring length not
allowed
2021-01-04 12:43:13.145 EST [85734] STATEMENT:s
negative substring length not allowed

Minimally this is a bug and it should raise an error "integer out of range". Probably in this case we can use MAX_INT as a special value of unlimited length, although it is a little bit scary, because length is an optional value. The attached patch should fix this issue. I do not have access to Oracle to check the behaviour of this case there.

Except according to the pg docs, it’s not out of range, it’s one less than MAX_INT.

The manual calls for it to be an integer, which is defined as:

integer4 bytestypical choice for integer-2147483648 to +2147483647

The original bug report is one less than +2147483647, and thus should be a valid value, no?

yes, so the implementation patch is really correct.

Regards

Pavel


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

Предыдущее
От: Jerry Sievert
Дата:
Сообщение: Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #16804: substring() function returns "negative substring length" error when using a large length argument