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
|
Список | 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 allowedMinimally 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:
integer
4 bytes typical 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 по дате отправления: