On 4/15/25 09:48, David G. Johnston wrote:
On Tue, Apr 15, 2025 at 9:31 AM Adrian Klaver <adrian.kla...@aklaver.com
<mailto:adrian.kla...@aklaver.com>> wrote:
Agreed.
The fact that initdb creates the template0, template1 and postgres
databases and you can't change that makes them system not user
databases.
Based on that definition there is a boundary in the system where OIDs
are considered bootstrap/system OIDs versus user OIDs. Key off of
that. Though since the names never change, and there are always/only
three, it seems pointless to use the OID aspect of initdb as a basis.
My definition of a "system database" would be a database that, if it
didn't exist, would cause the system to break. i.e., is a database
whose presence is integral to the operations of the system. None of
these qualify under that definition. Which is why there is no column in
pg_database identifying system databases - there are none.
1) Try connecting(not using single user mode) to a cluster without them.
2) Trying creating a database or databases to replace them without them
existing in the first place.
If what you say is true why does initdb lack an option to not create
them on creating a cluster?
David J.
--
Adrian Klaver
adrian.kla...@aklaver.com