Chapter 49. System Catalogs
Table of Contents
- 49.1. Overview
- 49.2.
pg_aggregate
- 49.3.
pg_am
- 49.4.
pg_amop
- 49.5.
pg_amproc
- 49.6.
pg_attrdef
- 49.7.
pg_attribute
- 49.8.
pg_authid
- 49.9.
pg_auth_members
- 49.10.
pg_cast
- 49.11.
pg_class
- 49.12.
pg_collation
- 49.13.
pg_constraint
- 49.14.
pg_conversion
- 49.15.
pg_database
- 49.16.
pg_db_role_setting
- 49.17.
pg_default_acl
- 49.18.
pg_depend
- 49.19.
pg_description
- 49.20.
pg_enum
- 49.21.
pg_event_trigger
- 49.22.
pg_extension
- 49.23.
pg_foreign_data_wrapper
- 49.24.
pg_foreign_server
- 49.25.
pg_foreign_table
- 49.26.
pg_index
- 49.27.
pg_inherits
- 49.28.
pg_language
- 49.29.
pg_largeobject
- 49.30.
pg_largeobject_metadata
- 49.31.
pg_namespace
- 49.32.
pg_opclass
- 49.33.
pg_operator
- 49.34.
pg_opfamily
- 49.35.
pg_pltemplate
- 49.36.
pg_policy
- 49.37.
pg_proc
- 49.38.
pg_range
- 49.39.
pg_replication_origin
- 49.40.
pg_rewrite
- 49.41.
pg_seclabel
- 49.42.
pg_shdepend
- 49.43.
pg_shdescription
- 49.44.
pg_shseclabel
- 49.45.
pg_statistic
- 49.46.
pg_tablespace
- 49.47.
pg_transform
- 49.48.
pg_trigger
- 49.49.
pg_ts_config
- 49.50.
pg_ts_config_map
- 49.51.
pg_ts_dict
- 49.52.
pg_ts_parser
- 49.53.
pg_ts_template
- 49.54.
pg_type
- 49.55.
pg_user_mapping
- 49.56. System Views
- 49.57.
pg_available_extensions
- 49.58.
pg_available_extension_versions
- 49.59.
pg_cursors
- 49.60.
pg_file_settings
- 49.61.
pg_group
- 49.62.
pg_indexes
- 49.63.
pg_locks
- 49.64.
pg_matviews
- 49.65.
pg_policies
- 49.66.
pg_prepared_statements
- 49.67.
pg_prepared_xacts
- 49.68.
pg_replication_origin_status
- 49.69.
pg_replication_slots
- 49.70.
pg_roles
- 49.71.
pg_rules
- 49.72.
pg_seclabels
- 49.73.
pg_settings
- 49.74.
pg_shadow
- 49.75.
pg_stats
- 49.76.
pg_tables
- 49.77.
pg_timezone_abbrevs
- 49.78.
pg_timezone_names
- 49.79.
pg_user
- 49.80.
pg_user_mappings
- 49.81.
pg_views
- 49.2.
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 particularly esoteric operations, such as adding index access methods.