Table of Contents
pg_aggregate
pg_am
pg_amop
pg_amproc
pg_attrdef
pg_attribute
pg_attrmask
pg_authid
pg_auth_members
pg_cast
pg_class
pg_collation
pg_constraint
pg_conversion
pg_database
pg_db_role_setting
pg_default_acl
pg_depend
pg_description
pg_enum
pg_event_trigger
pg_extension
pg_foreign_data_wrapper
pg_foreign_server
pg_foreign_table
pg_index
pg_inherits
pg_init_privs
pg_language
pg_largeobject
pg_largeobject_metadata
pg_namespace
pg_opclass
pg_operator
pg_opfamily
pg_parameter_acl
pg_partitioned_table
pg_policy
pg_proc
pg_publication
pg_publication_namespace
pg_publication_rel
pg_range
pg_replication_origin
pg_rewrite
pg_seclabel
pg_sequence
pg_shdepend
pg_shdescription
pg_shseclabel
pg_statistic
pg_statistic_ext
pg_statistic_ext_data
pg_subscription
pg_subscription_rel
pg_tablespace
pg_transform
pg_trigger
pg_ts_config
pg_ts_config_map
pg_ts_dict
pg_ts_parser
pg_ts_template
pg_type
pg_user_mapping
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 normally 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
particularly esoteric operations, but many of those have been made
available as SQL commands over time, and so the need for direct manipulation
of the system catalogs is ever decreasing.