On 08.12.22 12:16, Peter Eisentraut wrote:
> On 29.11.22 21:22, David Rowley wrote:
>> There seems to be a small bug in the pg_strtointXX functions in the
>> code that checks that there's at least 1 digit. This causes 0x to be
>> a valid representation of zero. That does not seem to be allowed by
>> the parser, so I think we should likely reject it in COPY too.
>> -- probably shouldn't work
>> postgres=# copy a from stdin;
>> Enter data to be copied followed by a newline.
>> End with a backslash and a period on a line by itself, or an EOF signal.
>>>> 0x
>>>> \.
>> COPY 1
>
> Fixed in new patch. I moved the "require at least one digit" checks
> after the loops over the digits, to make it easier to write one check
> for all bases.
>
> This patch is also incorporates your changes to the digit analysis
> algorithm. I didn't check it carefully, but all the tests still pass. ;-)
committed