System Catalogs / Version comparison
What changed?
System Catalogs · PostgreSQL 15 → 16
1 added · 0 removed · 22 changed · 8 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_attribute
15 → 16 ~ attinhcount integer → smallint ~ attndims integer → smallint ~ attstattarget integer → smallint ~ column order changed
changedpg_auth_members
15 → 16 + oid oid + inherit_option boolean + set_option boolean
changedpg_collation
15 → 16 + collicurules text
changedpg_constraint
15 → 16 ~ coninhcount integer → smallint
changedpg_database
15 → 16 + daticurules text
changedpg_hba_file_rules
15 → 16 + rule_number integer + file_name text
changedpg_ident_file_mappings
15 → 16 + map_number integer + file_name text
rewordedpg_locks
--- 15 +++ 16 @@ -1,11 +1,11 @@ (relation) The view pg_locks provides access to information about the locks held by active processes within the database server. See Chapter 13 for more discussion of locking. pg_locks contains one row per active lockable object, requested lock mode, and relevant process. Thus, the same lockable object might appear many times, if multiple processes are holding or waiting for locks on it. However, an object that currently has no locks on it will not appear at all. There are several distinct types of lockable objects: whole relations (e.g., tables), individual pages of relations, individual tuples of relations, transaction IDs (both virtual and permanent IDs), and general database objects (identified by class OID and object OID, in the same way as in pg_description or pg_depend). Also, the right to extend a relation is represented as a separate lockable object, as is the right to update pg_database.datfrozenxid. Also, “advisory” locks can be taken on numbers that have user-defined meanings. -locktype: Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 28.11.) +locktype: Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory, or applytransaction. (See also Table 28.11.) database: OID of the database in which the lock target exists, or zero if the target is a shared object, or null if the target is a transaction ID relation: OID of the relation targeted by the lock, or null if the target is not a relation or part of a relation page: Page number targeted by the lock within the relation, or null if the target is not a relation page or tuple tuple: Tuple number targeted by the lock within the page, or null if the target is not a tuple -virtualxid: Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID -transactionid: ID of the transaction targeted by the lock, or null if the target is not a transaction ID +virtualxid: Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 74 +transactionid: ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 74 classid: OID of the system catalog containing the lock target, or null if the target is not a general database object objid: OID of the lock target within its system catalog, or null if the target is not a general database object objsubid: Column number targeted by the lock (the classid and objid refer to the table itself), or zero if the target is some other general database object, or null if the target is not a general database object
changedpg_prepared_statements
15 → 16 + result_types regtype[]
changedpg_replication_slots
15 → 16 + conflicting boolean
rewordedpg_shmem_allocations
--- 15 +++ 16 @@ -1,5 +1,5 @@ (relation) The pg_shmem_allocations view shows allocations made from the server's main shared memory segment. This includes both memory allocated by PostgreSQL itself and memory allocated by extensions using the mechanisms detailed in Section 38.10.10. Note that this view does not include memory allocated using the dynamic shared memory infrastructure. name: The name of the shared memory allocation. NULL for unused memory and <anonymous> for anonymous allocations. off: The offset at which the allocation starts. NULL for anonymous allocations, since details related to them are not known. -size: Size of the allocation -allocated_size: Size of the allocation including padding. For anonymous allocations, no information about padding is available, so the size and allocated_size columns will always be equal. Padding is not meaningful for free memory, so the columns will be equal in that case also. +size: Size of the allocation in bytes +allocated_size: Size of the allocation in bytes including padding. For anonymous allocations, no information about padding is available, so the size and allocated_size columns will always be equal. Padding is not meaningful for free memory, so the columns will be equal in that case also.
rewordedpg_stat_activity
--- 15 +++ 16 @@ -2,7 +2,7 @@ datid: OID of the database this backend is connected to datname: Name of the database this backend is connected to pid: Process ID of this backend -leader_pid: Process ID of the parallel group leader, if this process is a parallel query worker. NULL if this process is a parallel group leader or does not participate in parallel query. +leader_pid: Process ID of the parallel group leader if this process is a parallel query worker, or process ID of the leader apply worker if this process is a parallel apply worker. NULL indicates that this process is a parallel group leader or leader apply worker, or does not participate in any parallel operation. usesysid: OID of the user logged into this backend usename: Name of the user logged into this backend application_name: Name of the application that is connected to this backend @@ -16,8 +16,8 @@ wait_event_type: The type of event for which the backend is waiting, if any; otherwise NULL. See Table 28.4. wait_event: Wait event name if backend is currently waiting, otherwise NULL. See Table 28.5 through Table 28.13. 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_xid: Top-level transaction identifier of this backend, if any; see Section 74.1. backend_xmin: The current backend's xmin horizon. query_id: Identifier of this backend's most recent query. If state is active this field shows the identifier of the currently executing query. In all other states, it shows the identifier of last query that was executed. Query identifiers are not computed by default so this field will be null unless compute_query_id parameter is enabled or a third-party module that computes query identifiers is configured. query: Text of this backend's most recent query. If state is active this field shows the currently executing query. In all other states, it shows the last query that was executed. By default the query text is truncated at 1024 bytes; this value can be changed via the parameter track_activity_query_size. -backend_type: Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types. +backend_type: Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, standalone backend, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types.
changedpg_stat_all_indexes
15 → 16 + last_idx_scan timestamp with time zone
changedpg_stat_all_tables
15 → 16 + last_seq_scan timestamp with time zone + last_idx_scan timestamp with time zone + n_tup_newpage_upd bigint
changedpg_stat_database_conflicts
15 → 16 + confl_active_logicalslot bigint
changedpg_stat_gssapi
15 → 16 + credentials_delegated boolean
addedpg_stat_io
--- 15 +++ 16 @@ -0,0 +1,18 @@ +backend_type text +object text +context text +reads bigint +read_time double precision +writes bigint +write_time double precision +writebacks bigint +writeback_time double precision +extends bigint +extend_time double precision +op_bytes bigint +hits bigint +evictions bigint +reuses bigint +fsyncs bigint +fsync_time double precision +stats_reset timestamp with time zone
rewordedpg_stat_progress_analyze
--- 15 +++ 16 @@ -3,7 +3,7 @@ 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 analyzed. -phase: Current processing phase. See Table 28.37. +phase: Current processing phase. See Table 28.38. sample_blks_total: Total number of heap blocks that will be sampled. sample_blks_scanned: Number of heap blocks scanned. ext_stats_total: Number of extended statistics.
rewordedpg_stat_progress_basebackup
--- 15 +++ 16 @@ -1,6 +1,6 @@ (relation) Whenever an application like pg_basebackup is taking a base backup, the pg_stat_progress_basebackup view will contain a row for each WAL sender process that is currently running the BASE_BACKUP replication command and streaming the backup. The tables below describe the information that will be reported and provide information about how to interpret it. pid: Process ID of a WAL sender process. -phase: Current processing phase. See Table 28.45. +phase: Current processing phase. See Table 28.47. backup_total: Total amount of data that will be streamed. This is estimated and reported as of the beginning of streaming database files phase. Note that this is only an approximation since the database may change during streaming database files phase and WAL log may be included in the backup later. This is always the same value as backup_streamed once the amount of data streamed exceeds the estimated total size. If the estimation is disabled in pg_basebackup (i.e., --no-estimate-size option is specified), this is NULL. backup_streamed: Amount of data streamed. This counter only advances when the phase is streaming database files or transferring wal files. tablespaces_total: Total number of tablespaces that will be streamed.
rewordedpg_stat_progress_cluster
--- 15 +++ 16 @@ -4,7 +4,7 @@ datname: Name of the database to which this backend is connected. relid: OID of the table being clustered. command: The command that is running. Either CLUSTER or VACUUM FULL. -phase: Current processing phase. See Table 28.43. +phase: Current processing phase. See Table 28.40. cluster_index_relid: If the table is being scanned using an index, this is the OID of the index being used; otherwise, it is zero. heap_tuples_scanned: Number of heap tuples scanned. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap. heap_tuples_written: Number of heap tuples written. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap.
rewordedpg_stat_progress_create_index
--- 15 +++ 16 @@ -1,11 +1,11 @@ (relation) Whenever CREATE INDEX or REINDEX is running, the pg_stat_progress_create_index view will contain one row for each backend that is currently creating indexes. The tables below describe the information that will be reported and provide information about how to interpret it. -pid: Process ID of backend. +pid: Process ID of the backend creating indexes. 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 on which the index is being created. index_relid: OID of the index being created or reindexed. During a non-concurrent CREATE INDEX, this is 0. -command: The command that is running: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY. -phase: Current processing phase of index creation. See Table 28.39. +command: Specific command type: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY. +phase: Current processing phase of index creation. See Table 28.43. lockers_total: Total number of lockers to wait for, when applicable. lockers_done: Number of lockers already waited for. current_locker_pid: Process ID of the locker currently being waited for. @@ -13,5 +13,5 @@ blocks_done: Number of blocks already processed in the current phase. tuples_total: Total number of tuples to be processed in the current phase. tuples_done: Number of tuples already processed in the current phase. -partitions_total: When creating an index on a partitioned table, this column is set to the total number of partitions on which the index is to be created. This field is 0 during a REINDEX. -partitions_done: When creating an index on a partitioned table, this column is set to the number of partitions on which the index has been created. This field is 0 during a REINDEX. +partitions_total: Total number of partitions on which the index is to be created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned. +partitions_done: Number of partitions on which the index has already been created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned.
rewordedpg_stat_progress_vacuum
--- 15 +++ 16 @@ -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 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 28.4.4. +(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 28.4.2. 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.41. +phase: Current processing phase of vacuum. See Table 28.45. 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_subscription
15 → 16 + leader_pid integer
changedpg_stat_sys_indexes
15 → 16 + last_idx_scan timestamp with time zone
changedpg_stat_sys_tables
15 → 16 + last_seq_scan timestamp with time zone + last_idx_scan timestamp with time zone + n_tup_newpage_upd bigint
changedpg_stat_user_indexes
15 → 16 + last_idx_scan timestamp with time zone
changedpg_stat_user_tables
15 → 16 + last_seq_scan timestamp with time zone + last_idx_scan timestamp with time zone + n_tup_newpage_upd bigint
changedpg_stat_xact_all_tables
15 → 16 + n_tup_newpage_upd bigint
changedpg_stat_xact_sys_tables
15 → 16 + n_tup_newpage_upd bigint
changedpg_stat_xact_user_tables
15 → 16 + n_tup_newpage_upd bigint
changedpg_subscription
15 → 16 + subpasswordrequired boolean + subrunasowner boolean + suborigin text ~ substream boolean → "char"