Re: BUG #17450: SUBSTRING function extracting lesser characters than specified - Mailing list pgsql-bugs

From Pavel Borisov
Subject Re: BUG #17450: SUBSTRING function extracting lesser characters than specified
Date
Msg-id CALT9ZEE-kh8KufDLsohpvOw5rG9eMQXYfMTdE9dt-gawe1F+5g@mail.gmail.com
Whole thread Raw
In response to Re: BUG #17450: SUBSTRING function extracting lesser characters than specified  (hubert depesz lubaczewski <depesz@depesz.com>)
Responses Re: BUG #17450: SUBSTRING function extracting lesser characters than specified  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #17450: SUBSTRING function extracting lesser characters than specified  (Japin Li <japinli@hotmail.com>)
Re: BUG #17450: SUBSTRING function extracting lesser characters than specified  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-bugs
пн, 28 мар. 2022 г. в 15:01, hubert depesz lubaczewski <depesz@depesz.com>:
On Mon, Mar 28, 2022 at 10:30:07AM +0000, PG Bug reporting form wrote:
> The following bug has been logged on the website:
>
> Bug reference:      17450
> Logged by:          Suman Ganguly
> Email address:      ganguly.04@gmail.com
> PostgreSQL version: 10.17
> Operating system:   x86_64-pc-linux-gnu
> Description:       
>
> select substring('123456', 0 , 5)
> On running this, Postgres returns '1234'
> Expecting '12345' to be returned as per the documentation

Well, the problem is that you're trying to provide character number 0,
which is leading to bad results.

substring works on base-1 numbering.
Yes, the behavior expected in a report seems to be right. I've attached a very small fix for that issue. Probably it should be backpatched into all versions having 4bd3fad80e5c i.e. since v11.

--
Best regards,
Pavel Borisov

Postgres Professional: http://postgrespro.com
Attachment

pgsql-bugs by date:

Previous
From: hubert depesz lubaczewski
Date:
Subject: Re: BUG #17450: SUBSTRING function extracting lesser characters than specified
Next
From: Tom Lane
Date:
Subject: Re: BUG #17450: SUBSTRING function extracting lesser characters than specified