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