Table of Contents
pg_aggregatepg_ampg_amoppg_amprocpg_attrdefpg_attributepg_authidpg_auth_memberspg_castpg_classpg_collationpg_constraintpg_conversionpg_databasepg_db_role_settingpg_default_aclpg_dependpg_descriptionpg_enumpg_event_triggerpg_extensionpg_foreign_data_wrapperpg_foreign_serverpg_foreign_tablepg_indexpg_inheritspg_init_privspg_languagepg_largeobjectpg_largeobject_metadatapg_namespacepg_opclasspg_operatorpg_opfamilypg_partitioned_tablepg_policypg_procpg_publicationpg_publication_relpg_rangepg_replication_originpg_rewritepg_seclabelpg_sequencepg_shdependpg_shdescriptionpg_shseclabelpg_statisticpg_statistic_extpg_statistic_ext_datapg_subscriptionpg_subscription_relpg_tablespacepg_transformpg_triggerpg_ts_configpg_ts_config_mappg_ts_dictpg_ts_parserpg_ts_templatepg_typepg_user_mappingpg_available_extensionspg_available_extension_versionspg_configpg_cursorspg_file_settingspg_grouppg_hba_file_rulespg_indexespg_lockspg_matviewspg_policiespg_prepared_statementspg_prepared_xactspg_publication_tablespg_replication_origin_statuspg_replication_slotspg_rolespg_rulespg_seclabelspg_sequencespg_settingspg_shadowpg_shmem_allocationspg_statspg_stats_extpg_tablespg_timezone_abbrevspg_timezone_namespg_userpg_user_mappingspg_views
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.