Subject: Low OIDs (< 16384) when creating databases in single user mode

From: Arnold Hendriks <[email-masked]>
Date: Fri, 6 Jun 2025 11:16:15 +0200

When creating a new database using the following script:

PGBINDIR="/opt/homebrew/Cellar/postgresql@16/16.9/bin/"
rm -rf /tmp/db
"$PGBINDIR/initdb" -U postgres -D /tmp/db --auth-local=trust
--encoding 'UTF-8' --locale='C'
"$PGBINDIR/postgres" --single -D /tmp/db postgres <<HERE
CREATE DATABASE test;
select oid,datname from pg_database;
HERE

The id 14022 is assigned. This then confuses pgAdmin which expects
databases to have an ID >= 16384 (unless named postgres/edb)

Am I wrong in creating the database this way? Or is pgAdmin wrong in
assuming ids have to be >=16384 ?

Is there a way to ensure new IDs are in the usual range when starting
in in single user mode?

---

From: Tom Lane <[email-masked]>
Date: Fri, 06 Jun 2025 10:32:11 -0400

> Is there a way to ensure new IDs are in the usual range when starting

No.  Start the DB in normal mode, then create objects that you
want to be considered user-defined.

			regards, tom lane