Skip site navigation (1) Skip section navigation (2)

Re: \dt is listing tables from all databases

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Lonni J Friedman <netllama(at)gmail(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: \dt is listing tables from all databases
Date: 2010-01-14 20:58:10
Message-ID: 29505.1263502690@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-novice
Lonni J Friedman <netllama(at)gmail(dot)com> writes:
> I've got a postgresql server running 8.1.10 on Linux.  I've noticed
> that when i'm logged into one of the databases, and I run '\dt' its
> listing every table from every database on the server (rather than
> just the tables in the current database instance).  To make matters
> even more strange, if I log into any of the other databases and run
> '\dt' it only lists the tables in that database (as expected).  I'm
> connecting as the same user every time.

It's physically impossible for \dt to behave that way --- it simply
doesn't have access to the catalogs for other databases.

I'm going to read between the lines and guess about what really
happened, though.  By default, CREATE DATABASE clones what is in the
"template1" database.  If you thoughtlessly create some tables in that
database, they'll get copied into other databases created subsequently.
Lather, rinse, repeat enough times, and it might look like the
later-created databases contain copies of everything else.

Another possibility is you pointed a pg_restore operation at the wrong
database and it loaded up copies of tables you meant to put somewhere
else.

			regards, tom lane

In response to

Responses

pgsql-novice by date

Next:From: Lonni J FriedmanDate: 2010-01-14 21:38:58
Subject: Re: \dt is listing tables from all databases
Previous:From: Lonni J FriedmanDate: 2010-01-14 19:49:01
Subject: \dt is listing tables from all databases

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group