Re: [PATCH] psql: Make ParseVariableDouble reject values above max
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Sven Klemm <sven@tigerdata.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-05-18T15:41:01Z
Lists: pgsql-hackers
> On 9 May 2026, at 11:44, Daniel Gustafsson <daniel@yesql.se> wrote:
>
>> On 8 May 2026, at 17:39, Sven Klemm <sven@tigerdata.com> wrote:
>>
>> Hello,
>>
>> ParseVariableDouble() in src/bin/psql/variables.c is asymmetric in how
>> it handles the [min, max] bounds it documents. The lower-bound branch
>> correctly returns false, but the upper-bound branch logs the error and
>> then falls through to assign *result and return true. The function's
>> contract ("the value must be within the range [min,max] in order to be
>> considered valid"; "if unsuccessful, *result isn't clobbered") is
>> broken on the upper-bound path.
>
> Indeed, that's a silly bug, not sure how I could have missed that. We are
> currently in freeze for the upcoming minor releases but I have this staged to
> go in directly after. Thanks for the report.
Pushed and backpatched to v18, with the addition of a test for this behaviour.
--
Daniel Gustafsson