Re: Non-decimal integer literals

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: David Rowley <dgrowleyml(at)gmail(dot)com>
Cc: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Non-decimal integer literals
Date: 2022-12-08 11:16:29
Message-ID: 404b6297-a22f-afea-cdcb-848543c39193@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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. ;-)

Attachment Content-Type Size
v12-0001-Non-decimal-integer-literals.patch text/plain 42.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Melih Mutlu 2022-12-08 11:19:25 Re: [PATCH] psql: Add tab-complete for optional view parameters
Previous Message Pavel Luzanov 2022-12-08 11:15:58 Re: fix and document CLUSTER privileges