Chapter System Catalogs

Table of Contents

Overview

pg_aggregate

pg_attrdef

pg_attribute

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_language

pg_namespace

pg_operator

pg_policy

pg_proc

pg_range

pg_rewrite

pg_seclabel

pg_sequence

pg_shdepend

pg_shdescription

pg_shseclabel

pg_tablespace

pg_type

System Views

pg_available_extensions

pg_indexes

pg_locks

pg_matviews

pg_prepared_statements

pg_prepared_xacts

pg_roles

pg_seclabels

pg_settings

pg_shadow

pg_tables

pg_user

pg_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. ProtonBase'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.