↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

System Catalogs / Version comparison

What changed?

System Catalogs · PostgreSQL 11 → 12

Browse PG 12

Historical documentation for a PostgreSQL version that is no longer supported.

5 added · 0 removed · 46 changed · 10 reworded · 0 with columns not listed. These are changes between the pinned reference snapshots. “Changed” means columns, their types, their order or a measured attribute such as NOT NULL; “reworded” means only the manual's descriptions.

changedpg_am
11 → 12
~ oid  hidden system column → ordinary column
changedpg_amop
11 → 12
~ oid  hidden system column → ordinary column
changedpg_amproc
11 → 12
~ oid  hidden system column → ordinary column
changedpg_attrdef
11 → 12
- adsrc  text
~ adbin  nullable → NOT NULL
~ oid  hidden system column → ordinary column
changedpg_attribute
11 → 12
+ attgenerated  "char"
changedpg_authid
11 → 12
~ oid  hidden system column → ordinary column
changedpg_cast
11 → 12
~ oid  hidden system column → ordinary column
changedpg_class
11 → 12
- relhasoids  boolean
~ oid  hidden system column → ordinary column
changedpg_collation
11 → 12
+ collisdeterministic  boolean
~ oid  hidden system column → ordinary column
changedpg_constraint
11 → 12
- consrc  text
~ oid  hidden system column → ordinary column
changedpg_conversion
11 → 12
~ oid  hidden system column → ordinary column
rewordedpg_cursors
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The pg_cursors view lists the cursors that are currently available. Cursors can be defined in several ways: via the DECLARE statement in SQL via the Bind message in the frontend/backend protocol, as described in Section 53.2.3 via the Server Programming Interface (SPI), as described in Section 47.1 The pg_cursors view displays cursors created by any of these means. Cursors only exist for the duration of the transaction that defines them, unless they have been declared WITH HOLD. Therefore non-holdable cursors are only present in the view until the end of their creating transaction.
+(relation) The pg_cursors view lists the cursors that are currently available. Cursors can be defined in several ways: via the DECLARE statement in SQL via the Bind message in the frontend/backend protocol, as described in Section 52.2.3 via the Server Programming Interface (SPI), as described in Section 46.1 The pg_cursors view displays cursors created by any of these means. Cursors only exist for the duration of the transaction that defines them, unless they have been declared WITH HOLD. Therefore non-holdable cursors are only present in the view until the end of their creating transaction.
 name: The name of the cursor
 statement: The verbatim query string submitted to declare this cursor
 is_holdable: true if the cursor is holdable (that is, it can be accessed after the transaction that declared the cursor has committed); false otherwise
changedpg_database
11 → 12
~ oid  hidden system column → ordinary column
changedpg_default_acl
11 → 12
~ defaclacl  nullable → NOT NULL
~ oid  hidden system column → ordinary column
changedpg_enum
11 → 12
~ oid  hidden system column → ordinary column
changedpg_event_trigger
11 → 12
~ oid  hidden system column → ordinary column
changedpg_extension
11 → 12
~ oid  hidden system column → ordinary column
changedpg_foreign_data_wrapper
11 → 12
~ oid  hidden system column → ordinary column
changedpg_foreign_server
11 → 12
~ oid  hidden system column → ordinary column
rewordedpg_init_privs
--- 11
+++ 12
@@ -3,4 +3,4 @@
 classoid: The OID of the system catalog the object is in
 objsubid: For a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.
 privtype: A code defining the type of initial privilege of this object; see text
-initprivs: The initial access privileges; see GRANT and REVOKE for details
+initprivs: The initial access privileges; see Section 5.7 for details
changedpg_language
11 → 12
~ oid  hidden system column → ordinary column
changedpg_largeobject_metadata
11 → 12
~ oid  hidden system column → ordinary column
changedpg_namespace
11 → 12
~ oid  hidden system column → ordinary column
changedpg_opclass
11 → 12
~ oid  hidden system column → ordinary column
changedpg_operator
11 → 12
~ oid  hidden system column → ordinary column
changedpg_opfamily
11 → 12
~ oid  hidden system column → ordinary column
changedpg_policy
11 → 12
~ polroles  nullable → NOT NULL
~ oid  hidden system column → ordinary column
changedpg_proc
11 → 12
+ prosupport  regproc
- protransform  regproc
~ oid  hidden system column → ordinary column
changedpg_publication
11 → 12
~ oid  hidden system column → ordinary column
changedpg_publication_rel
11 → 12
~ oid  hidden system column → ordinary column
rewordedpg_replication_origin
--- 11
+++ 12
@@ -1,3 +1,3 @@
-(relation) The pg_replication_origin catalog contains all replication origins created. For more on replication origins see Chapter 50. Unlike most system catalogs, pg_replication_origin is shared across all databases of a cluster: there is only one copy of pg_replication_origin per cluster, not one per database.
+(relation) The pg_replication_origin catalog contains all replication origins created. For more on replication origins see Chapter 49. Unlike most system catalogs, pg_replication_origin is shared across all databases of a cluster: there is only one copy of pg_replication_origin per cluster, not one per database.
 roident: A unique, cluster-wide identifier for the replication origin. Should never leave the system.
 roname: The external, user defined, name of a replication origin.
rewordedpg_replication_origin_status
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The pg_replication_origin_status view contains information about how far replay for a certain origin has progressed. For more on replication origins see Chapter 50.
+(relation) The pg_replication_origin_status view contains information about how far replay for a certain origin has progressed. For more on replication origins see Chapter 49.
 local_id: internal node identifier
 external_id: external node identifier
 remote_lsn: The origin node's LSN up to which data has been replicated.
rewordedpg_replication_slots
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The pg_replication_slots view provides a listing of all replication slots that currently exist on the database cluster, along with their current state. For more on replication slots, see Section 26.2.6 and Chapter 49.
+(relation) The pg_replication_slots view provides a listing of all replication slots that currently exist on the database cluster, along with their current state. For more on replication slots, see Section 26.2.6 and Chapter 48.
 slot_name: A unique, cluster-wide identifier for the replication slot
 plugin: The base name of the shared object containing the output plugin this logical slot is using, or null for physical slots.
 slot_type: The slot type - physical or logical
changedpg_rewrite
11 → 12
~ ev_action  nullable → NOT NULL
~ ev_qual  nullable → NOT NULL
~ oid  hidden system column → ordinary column
rewordedpg_roles
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The view pg_roles provides access to information about database roles. This is simply a publicly readable view of pg_authid that blanks out the password field. This view explicitly exposes the OID column of the underlying table, since that is needed to do joins to other catalogs.
+(relation) The view pg_roles provides access to information about database roles. This is simply a publicly readable view of pg_authid that blanks out the password field.
 rolname: Role name
 rolsuper: Role has superuser privileges
 rolinherit: Role automatically inherits privileges of roles it is a member of
@@ -9,6 +9,6 @@
 rolconnlimit: For roles that can log in, this sets maximum number of concurrent connections this role can make. -1 means no limit.
 rolpassword: Not the password (always reads as ********)
 rolvaliduntil: Password expiry time (only used for password authentication); null if no expiration
-rolbypassrls: Role bypasses every row level security policy, see Section 5.7 for more information.
+rolbypassrls: Role bypasses every row level security policy, see Section 5.8 for more information.
 rolconfig: Role-specific defaults for run-time configuration variables
 oid: ID of role
rewordedpg_seclabel
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The catalog pg_seclabel stores security labels on database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 52.83. See also pg_shseclabel, which performs a similar function for security labels of database objects that are shared across a database cluster.
+(relation) The catalog pg_seclabel stores security labels on database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 51.84. See also pg_shseclabel, which performs a similar function for security labels of database objects that are shared across a database cluster.
 objoid: The OID of the object this security label pertains to
 classoid: The OID of the system catalog this object appears in
 objsubid: For a security label on a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.
changedpg_shadow
11 → 12
~ valuntil  abstime → timestamp with time zone
rewordedpg_shseclabel
--- 11
+++ 12
@@ -1,4 +1,4 @@
-(relation) The catalog pg_shseclabel stores security labels on shared database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 52.83. See also pg_seclabel, which performs a similar function for security labels involving objects within a single database. Unlike most system catalogs, pg_shseclabel is shared across all databases of a cluster: there is only one copy of pg_shseclabel per cluster, not one per database.
+(relation) The catalog pg_shseclabel stores security labels on shared database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 51.84. See also pg_seclabel, which performs a similar function for security labels involving objects within a single database. Unlike most system catalogs, pg_shseclabel is shared across all databases of a cluster: there is only one copy of pg_shseclabel per cluster, not one per database.
 objoid: The OID of the object this security label pertains to
 classoid: The OID of the system catalog this object appears in
 provider: The label provider associated with this label.
rewordedpg_stat_activity
--- 11
+++ 12
@@ -13,7 +13,7 @@
 query_start: Time when the currently active query was started, or if state is not active, when the last query was started
 state_change: Time when the state was last changed
 wait_event_type: The type of event for which the backend is waiting, if any; otherwise NULL. Possible values are: LWLock: The backend is waiting for a lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain a name identifying the purpose of the lightweight lock. (Some locks have specific names; others are part of a group of locks each with a similar purpose.) Lock: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited. BufferPin: The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question. Activity: The server process is idle. This is used by system processes waiting for activity in their main processing loop. wait_event will identify the specific wait point. Extension: The server process is waiting for activity in an extension module. This category is useful for modules to track custom waiting points. Client: The server process is waiting for some activity on a socket from user applications, and that the server expects something to happen that is independent from its internal processes. wait_event will identify the specific wait point. IPC: The server process is waiting for some activity from another process in the server. wait_event will identify the specific wait point. Timeout: The server process is waiting for a timeout to expire. wait_event will identify the specific wait point. IO: The server process is waiting for a IO to complete. wait_event will identify the specific wait point.
-wait_event: Wait event name if backend is currently waiting, otherwise NULL. See Table 28.4 for details.
+wait_event: Wait event name if backend is currently waiting, otherwise NULL. See Table 27.4 for details.
 state: Current overall state of this backend. Possible values are: active: The backend is executing a query. idle: The backend is waiting for a new client command. idle in transaction: The backend is in a transaction, but is not currently executing a query. idle in transaction (aborted): This state is similar to idle in transaction, except one of the statements in the transaction caused an error. fastpath function call: The backend is executing a fast-path function. disabled: This state is reported if track_activities is disabled in this backend.
 backend_xid: Top-level transaction identifier of this backend, if any.
 backend_xmin: The current backend's xmin horizon.
changedpg_stat_database
11 → 12
+ checksum_failures  bigint
+ checksum_last_failure  timestamp with time zone
addedpg_stat_gssapi
--- 11
+++ 12
@@ -0,0 +1,4 @@
+pid  integer
+gss_authenticated  boolean
+principal  text
+encrypted  boolean
addedpg_stat_progress_cluster
--- 11
+++ 12
@@ -0,0 +1,12 @@
+pid  integer
+datid  oid
+datname  name
+relid  oid
+command  text
+phase  text
+cluster_index_relid  oid
+heap_tuples_scanned  bigint
+heap_tuples_written  bigint
+heap_blks_total  bigint
+heap_blks_scanned  bigint
+index_rebuild_count  bigint
addedpg_stat_progress_create_index
--- 11
+++ 12
@@ -0,0 +1,16 @@
+pid  integer
+datid  oid
+datname  name
+relid  oid
+index_relid  oid
+command  text
+phase  text
+lockers_total  bigint
+lockers_done  bigint
+current_locker_pid  bigint
+blocks_total  bigint
+blocks_done  bigint
+tuples_total  bigint
+tuples_done  bigint
+partitions_total  bigint
+partitions_done  bigint
rewordedpg_stat_progress_vacuum
--- 11
+++ 12
@@ -1,9 +1,9 @@
-(relation) Whenever VACUUM is running, the pg_stat_progress_vacuum view will contain one row for each backend (including autovacuum worker processes) that is currently vacuuming. The tables below describe the information that will be reported and provide information about how to interpret it. Progress reporting is not currently supported for VACUUM FULL and backends running VACUUM FULL will not be listed in this view.
+(relation) Whenever VACUUM is running, the pg_stat_progress_vacuum view will contain one row for each backend (including autovacuum worker processes) that is currently vacuuming. The tables below describe the information that will be reported and provide information about how to interpret it. Progress for VACUUM FULL commands is reported via pg_stat_progress_cluster because both VACUUM FULL and CLUSTER rewrite the table, while regular VACUUM only modifies it in place. See Section 27.4.3.
 pid: Process ID of backend.
 datid: OID of the database to which this backend is connected.
 datname: Name of the database to which this backend is connected.
 relid: OID of the table being vacuumed.
-phase: Current processing phase of vacuum. See Table 28.22.
+phase: Current processing phase of vacuum. See Table 27.25.
 heap_blks_total: Total number of heap blocks in the table. This number is reported as of the beginning of the scan; blocks added later will not be (and need not be) visited by this VACUUM.
 heap_blks_scanned: Number of heap blocks scanned. Because the visibility map is used to optimize scans, some blocks will be skipped without inspection; skipped blocks are included in this total, so that this number will eventually become equal to heap_blks_total when the vacuum is complete. This counter only advances when the phase is scanning heap.
 heap_blks_vacuumed: Number of heap blocks vacuumed. Unless the table has no indexes, this counter only advances when the phase is vacuuming heap. Blocks that contain no dead tuples are skipped, so the counter may sometimes skip forward in large increments.
changedpg_stat_replication
11 → 12
+ reply_time  timestamp with time zone
changedpg_stat_ssl
11 → 12
+ client_dn  text
+ client_serial  numeric
+ issuer_dn  text
- clientdn  text
changedpg_statistic
11 → 12
+ stacoll1  oid
+ stacoll2  oid
+ stacoll3  oid
+ stacoll4  oid
+ stacoll5  oid
changedpg_statistic_ext
11 → 12
- stxndistinct  pg_ndistinct
- stxdependencies  pg_dependencies
~ oid  hidden system column → ordinary column
addedpg_statistic_ext_data
--- 11
+++ 12
@@ -0,0 +1,4 @@
+stxoid  oid
+stxdndistinct  pg_ndistinct
+stxddependencies  pg_dependencies
+stxdmcv  pg_mcv_list
addedpg_stats_ext
--- 11
+++ 12
@@ -0,0 +1,13 @@
+schemaname  name
+tablename  name
+statistics_schemaname  name
+statistics_name  name
+statistics_owner  oid
+attnames  name[]
+kinds  text[]
+n_distinct  pg_ndistinct
+dependencies  pg_dependencies
+most_common_vals  anyarray
+most_common_val_nulls  anyarray
+most_common_freqs  real[]
+most_common_base_freqs  real[]
changedpg_subscription
11 → 12
~ oid  hidden system column → ordinary column
changedpg_tablespace
11 → 12
~ oid  hidden system column → ordinary column
changedpg_transform
11 → 12
~ oid  hidden system column → ordinary column
changedpg_trigger
11 → 12
~ oid  hidden system column → ordinary column
changedpg_ts_config
11 → 12
~ oid  hidden system column → ordinary column
changedpg_ts_dict
11 → 12
~ oid  hidden system column → ordinary column
changedpg_ts_parser
11 → 12
~ oid  hidden system column → ordinary column
changedpg_ts_template
11 → 12
~ oid  hidden system column → ordinary column
changedpg_type
11 → 12
~ oid  hidden system column → ordinary column
changedpg_user
11 → 12
~ valuntil  abstime → timestamp with time zone
changedpg_user_mapping
11 → 12
~ oid  hidden system column → ordinary column