The system catalogs are the place where a relational database
management system stores schema metadata, such as information about
tables and columns, and internal bookkeeping information.
PostgreSQL's system catalogs are regular
tables. You can drop and recreate the tables, add columns, insert
and update values, and severely mess up your system that way.
Normally one should not change the system catalogs by hand, there
are always SQL commands to do that. (For example, CREATE
DATABASE inserts a row into the
pg_database catalog -- and actually
creates the database on disk.) There are some exceptions for
especially esoteric operations, such as adding index access methods.
Most system catalogs are copied from the template database during
database creation, and are thereafter database-specific. A few
catalogs are physically shared across all databases in an installation;
these are marked in the descriptions of the individual catalogs.
Table 3-1. System Catalogs
More detailed documentation of each catalog follows below.