Confused About pg_* Tables

From: Carlos Mennens <carlos(dot)mennens(at)gmail(dot)com>
To: PostgreSQL <pgsql-general(at)postgresql(dot)org>
Subject: Confused About pg_* Tables
Date: 2011-10-14 16:06:54
Message-ID: CAAQLLO7Jr3ZH2c5+mvxe0ZEXYXcPFn+vO1w+YF9+iM0NRMgpuw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I'm confused about how I'm able to access the following pg_* tables
regardless of connected database. I thought these tables were hidden
or stored in the 'postgres' database but I'm still able to access this
data regardless of which database I'm connected to:

Code:

zoo=# SELECT * FROM pg_user;
usename | usesysid | usecreatedb | usesuper | usecatupd | userepl |
passwd | valuntil | useconfig
----------+----------+-------------+----------+-----------+---------+----------+----------+-----------
postgres | 10 | t | t | t | t |
******** | |
carlos | 16384 | t | t | t | t |
******** | |
(2 rows)

When I use my tab key in 'psql' after the 'FROM' statement, I'm
presented with a ton of what I presume to be tables however when I
check for tables in the 'postgres' database, I get nothing. I'm
confused...

Code:

psql (9.1.1, server 9.1.1)
You are now connected to database "postgres".
postgres=# \d
No relations found.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Carlos Mennens 2011-10-14 16:38:13 Postgres Account Inherit Question
Previous Message Tom Lane 2011-10-14 15:37:31 Re: information_schema.referential_constraints contains NULLs