PG Bug reporting form <noreply@postgresql.org> writes:
> I've try to execute CREATE DATABASE command on Postgresql 15.0 instance
> manually and got the same error.
> ^
> Command was:
> CREATE DATABASE "rc16mo_r1_trg_taxcommitmentreporter_fzsymvlz" WITH TEMPLATE
> = template0 OID = 4236896942 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE
> = 'en_US.UTF-8';"
> I truncated OID parameter to 42362 and succesfully executed command
> CREATE DATABASE "rc16mo_r1_trg_taxcommitmentreporter_fzsymvlz" WITH TEMPLATE
> = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'en_US.UTF-8'
> OID=42362;
Yeah, that evidently is a parser bug: can't handle OIDs above INT_MAX.
I thought maybe we could tweak pg_dump to quote the OID value, but nope:
# CREATE DATABASE "rc16mo_r1_trg_taxcommitmentreporter_fzsymvlz" WITH TEMPLATE
= template0 OID = '4236896942' ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE
= 'en_US.UTF-8';
ERROR: oid requires an integer value
Somebody really worked at it to make this this broken :-(.
I'll see if I can get it fixed in time for 15.1. Thanks for the
report!
regards, tom lane