System Catalogs / Version comparison
What changed?
System Catalogs · PostgreSQL 11 → 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