On 01.11.21 07:09, Peter Eisentraut wrote: > Here is an updated patch for this. It's the previous patch polished a > bit more, and it contains changes so that numeric literals reject > trailing identifier parts without whitespace in between, as discussed. > Maybe I should split that into incremental patches, but for now I only > have the one. I don't have a patch for the underscores in numeric > literals yet. It's in progress, but not ready.
Here is a progressed version of this work, split into more incremental patches. The first three patches are harmless code cleanups. Patch 3 has an interesting naming conflict, noted in the commit message; ideas welcome. Patches 4 and 5 handle the rejection of trailing junk after numeric literals, as discussed. I have expanded that compared to the v4 patch to also cover non-integer literals. It also comes with more tests now. Patch 6 is the titular introduction of non-decimal integer literals, unchanged from before.
Hi,
For patch 3,
+int64
+pg_strtoint64(const char *s)
How about naming the above function pg_scanint64()?
pg_strtoint64xx() can be named pg_strtoint64() - this would align with existing function:
pg_strtouint64(const char *str, char **endptr, int base)