# Chapter 52. System Catalogs

Table of Contents

52.1. Overview

52.2. pg_aggregate

52.3. pg_am

52.4. pg_amop

52.5. pg_amproc

52.6. pg_attrdef

52.7. pg_attribute

52.8. pg_authid

52.9. pg_auth_members

52.10. pg_cast

52.11. pg_class

52.12. pg_collation

52.13. pg_constraint

52.14. pg_conversion

52.15. pg_database

52.16. pg_db_role_setting

52.17. pg_default_acl

52.18. pg_depend

52.19. pg_description

52.20. pg_enum

52.21. pg_event_trigger

52.22. pg_extension

52.23. pg_foreign_data_wrapper

52.24. pg_foreign_server

52.25. pg_foreign_table

52.26. pg_index

52.27. pg_inherits

52.28. pg_init_privs

52.29. pg_language

52.30. pg_largeobject

52.31. pg_largeobject_metadata

52.32. pg_namespace

52.33. pg_opclass

52.34. pg_operator

52.35. pg_opfamily

52.36. pg_partitioned_table

52.37. pg_policy

52.38. pg_proc

52.39. pg_publication

52.40. pg_publication_rel

52.41. pg_range

52.42. pg_replication_origin

52.43. pg_rewrite

52.44. pg_seclabel

52.45. pg_sequence

52.46. pg_shdepend

52.47. pg_shdescription

52.48. pg_shseclabel

52.49. pg_statistic

52.50. pg_statistic_ext

52.51. pg_statistic_ext_data

52.52. pg_subscription

52.53. pg_subscription_rel

52.54. pg_tablespace

52.55. pg_transform

52.56. pg_trigger

52.57. pg_ts_config

52.58. pg_ts_config_map

52.59. pg_ts_dict

52.60. pg_ts_parser

52.61. pg_ts_template

52.62. pg_type

52.63. pg_user_mapping

52.64. System Views

52.65. pg_available_extensions

52.66. pg_available_extension_versions

52.67. pg_backend_memory_contexts

52.68. pg_config

52.69. pg_cursors

52.70. pg_file_settings

52.71. pg_group

52.72. pg_hba_file_rules

52.73. pg_indexes

52.74. pg_locks

52.75. pg_matviews

52.76. pg_policies

52.77. pg_prepared_statements

52.78. pg_prepared_xacts

52.79. pg_publication_tables

52.80. pg_replication_origin_status

52.81. pg_replication_slots

52.82. pg_roles

52.83. pg_rules

52.84. pg_seclabels

52.85. pg_sequences

52.86. pg_settings

52.87. pg_shadow

52.88. pg_shmem_allocations

52.89. pg_stats

52.90. pg_stats_ext

52.91. pg_stats_ext_exprs

52.92. pg_tables

52.93. pg_timezone_abbrevs

52.94. pg_timezone_names

52.95. pg_user

52.96. pg_user_mappings

52.97. 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. 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.