Re: [PATCHES] default database creation with initdb

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
Cc: Andreas Pflug <pgadmin(at)pse-consulting(dot)de>, Magnus Hagander <mha(at)sollentuna(dot)net>, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [PATCHES] default database creation with initdb
Date: 2005-06-18 14:12:02
Message-ID: 12618.1119103922@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

[ redirected back to hackers, since it seems this is far from a finished
discussion ]

Robert Treat <xzilla(at)users(dot)sourceforge(dot)net> writes:
> What is the purpose of this database? A generalized, shared resource for tool
> makers and add-on packages to store information in PostgreSQL, or a working
> database that is usable (and to be used) out of the box for new users? I
> really don't think we want the latter... I can see users connecting via psql
> and then playing around with different add/create type statements. It is all
> too common a question from newbies... "does postgresql have a default
> database to get started with?" They'll see this database and begin creating
> schema and using this as thier main database, and I think we ought to avoid
> that. If people don't like pg_system, pg_addons seem like a much safer name
> to go with imho.

pg_addons or pg_tools or something like that seems like a fine name *for
the purpose of a tools-only database* ... but that is only one of the
issues being tossed around here. To me the much more interesting aspect
of this is reducing the extent to which template1 is serving multiple
not-very-compatible purposes. I like the idea of a default database
because it would eliminate two perennial issues:
* newbies mistakenly cluttering template1 with junk
* CREATE DATABASE failing because there are other connections to the
template database.

To be newbie-friendly, such a default database *should* be writable,
I think. The whole point is to let people play without having to learn
how to create a database first. If they clutter it up, so what? They
can always drop it and recreate it --- there won't be anything at all
special about it. (Thus, Andreas' desire to have it be considered a
"system object" seems misplaced to me.)

This vision immediately brings up another issue: for most client tools
the default database-to-connect-to is *not* template1, it is the
database named after the connecting user. If we invent a default
database, should we change things to remove the username dependence
and always connect to "default" by default? I think you could argue
this either way --- it may be too much of a non-backwards-compatible
change, but if we were designing the behavior in a green field today,
I suspect that's what we'd make it do.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-06-18 14:14:49 Re: Returning Composite Types from C functions
Previous Message Robert Treat 2005-06-18 14:07:54 Re: [PATCHES] Escape handling in strings

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2005-06-18 14:20:07 Re: [PATCHES] Escape handling in strings
Previous Message Robert Treat 2005-06-18 14:07:54 Re: [PATCHES] Escape handling in strings