Thread: [17+] check after second call to pg_strnxfrm is too strict, relax it

I noticed this comment in selfuncs.c regarding strxfrm():

    /*
     * Some systems (e.g., glibc) can return a smaller value from the
     * second call than the first; thus the Assert must be <= not ==.
     */

Some callers of pg_strnxfrm() are not allowing for that possibility.

Patch attached, which should be backported to 17.

Regards,
    Jeff Davis


Attachment

Re: [17+] check after second call to pg_strnxfrm is too strict, relax it

From
Heikki Linnakangas
Date:
On 30/07/2024 22:31, Jeff Davis wrote:
> I noticed this comment in selfuncs.c regarding strxfrm():
> 
>      /*
>       * Some systems (e.g., glibc) can return a smaller value from the
>       * second call than the first; thus the Assert must be <= not ==.
>       */
> 
> Some callers of pg_strnxfrm() are not allowing for that possibility.
> 
> Patch attached, which should be backported to 17.

+1. A comment in the pg_strnxfrm() function itself would be good too.

-- 
Heikki Linnakangas
Neon (https://neon.tech)




On Tue, 2024-07-30 at 23:01 +0300, Heikki Linnakangas wrote:
> +1. A comment in the pg_strnxfrm() function itself would be good too.

Committed, thank you. Backported to 16 (original email said 17, but
that was a mistake).

Regards,
    Jeff Davis