Thread: Funky template1 problem?

Funky template1 problem?

From
Jerry LeVan
Date:
Hi,

I have a bunch of small dbs (levan, pictures, and a couple of others).

I have had these db's over many upgrades and I have just noticed that
template1 seems to be a bit munged...

testuser=> \c template1
You are now connected to database "template1".
template1=> \d
              List of relations
Schema |      Name      |   Type   | Owner
--------+----------------+----------+-------
public | lo_shadow      | table    | levan
public | my_description | table    | levan
public | person         | table    | levan
public | person_id_seq  | sequence | levan
public | pics           | table    | levan
public | pics_ident_seq | sequence | levan
(6 rows)

This is the same as...
template1=> \c pictures
You are now connected to database "pictures".
pictures=> \d
              List of relations
Schema |      Name      |   Type   | Owner
--------+----------------+----------+-------
public | lo_shadow      | table    | levan
public | my_description | table    | levan
public | person         | table    | levan
public | person_id_seq  | sequence | levan
public | pics           | table    | levan
public | pics_ident_seq | sequence | levan
(6 rows)

I found this out when I tried to create a new user
testuser for testing a totally none privileged user.
When I recreate the testuser db using template1
I found the tables from the picture db were in
the newly created db.

Is it safe to simple drop the db's from the template1
db?  ( I have no idea of how the tables became part
of template1.)

Jerry

Re: Funky template1 problem?

From
"Qingqing Zhou"
Date:
"Jerry LeVan" <jerry.levan@eku.edu> wrote in message
news:DF90ADCC-643E-4EA7-AB6C-423815301EF5@eku.edu...
> Hi,
>
> I have a bunch of small dbs (levan, pictures, and a couple of others).
>
> I have had these db's over many upgrades and I have just noticed that
> template1 seems to be a bit munged...
>
> testuser=> \c template1
> You are now connected to database "template1".
> template1=> \d
>              List of relations
> Schema |      Name      |   Type   | Owner
> --------+----------------+----------+-------
> public | lo_shadow      | table    | levan
> public | my_description | table    | levan
> public | person         | table    | levan
> public | person_id_seq  | sequence | levan
> public | pics           | table    | levan
> public | pics_ident_seq | sequence | levan
> (6 rows)
>

Can you show the relfilenode (the physical file name of the relation) of
these tables like this:

select relname, relfilenode from pg_class, pg_namespace where relnamespace =
pg_namespace.oid and nspname = 'public';

And check if they are really in the template1?

Regards,
Qingqing



Re: Funky template1 problem?

From
Tom Lane
Date:
"Qingqing Zhou" <zhouqq@cs.toronto.edu> writes:
> "Jerry LeVan" <jerry.levan@eku.edu> wrote in message
>> I have had these db's over many upgrades and I have just noticed that
>> template1 seems to be a bit munged...

> ... And check if they are really in the template1?

I'm sure they are.  Probably Jerry just mistakenly created the tables
while connected to template1 at some point.  I see no evidence here
of anything but pilot error.

            regards, tom lane

Re: Funky template1 problem?

From
Qingqing Zhou
Date:

On Wed, 21 Dec 2005, Tom Lane wrote:

> > "Jerry LeVan" <jerry.levan@eku.edu> wrote in message
> >> I have had these db's over many upgrades and I have just noticed that
> >> template1 seems to be a bit munged...
>
> I'm sure they are.

Oh right -- since CREATE DATABASE just copied the whole directory.

Regards,
Qingqing

Re: Funky template1 problem?

From
Richard Huxton
Date:
Jerry LeVan wrote:
> Hi,
>
> I have a bunch of small dbs (levan, pictures, and a couple of others).
>
> I have had these db's over many upgrades and I have just noticed that
> template1 seems to be a bit munged...
[snip]
> I found this out when I tried to create a new user
> testuser for testing a totally none privileged user.
> When I recreate the testuser db using template1
> I found the tables from the picture db were in
> the newly created db.

Yep - that's a feature. It applies to functions etc. too.

> Is it safe to simple drop the db's from the template1
> db?  ( I have no idea of how the tables became part
> of template1.)

Deleting the tables is fine. You should be able to drop the template1
database altogether and recreate it using template0 as it's template.
That's why there's two of them, for exactly this circumstance. Have a
look in the mailing-list archives for details.

--
   Richard Huxton
   Archonet Ltd