↑↓ 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 9.4 → 9.5

Browse PG 9.5

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

7 added · 0 removed · 17 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.

rewordedpg_am
--- 9.4
+++ 9.5
@@ -1,4 +1,4 @@
-(relation) The catalog pg_am stores information about index access methods. There is one row for each index access method supported by the system. The contents of this catalog are discussed in detail in Chapter 55.
+(relation) The catalog pg_am stores information about index access methods. There is one row for each index access method supported by the system. The contents of this catalog are discussed in detail in Chapter 58.
 oid: Row identifier (hidden attribute; must be explicitly selected)
 amname: Name of the access method
 amstrategies: Number of operator strategies for this access method, or zero if access method does not have a fixed set of operator strategies
@@ -27,6 +27,6 @@
 ambuildempty: "Build empty index" function
 ambulkdelete: Bulk-delete function
 amvacuumcleanup: Post-VACUUM cleanup function
-amcanreturn: Function to check whether index supports index-only scans, or zero if none
+amcanreturn: Function to check whether an index column supports index-only scans. Can be zero if index-only scans are never supported.
 amcostestimate: Function to estimate cost of an index scan
 amoptions: Function to parse and validate reloptions for an index
rewordedpg_attribute
--- 9.4
+++ 9.5
@@ -11,7 +11,7 @@
 attbyval: A copy of pg_type.typbyval of this column's type
 attstorage: Normally a copy of pg_type.typstorage of this column's type. For TOAST-able data types, this can be altered after column creation to control storage policy.
 attalign: A copy of pg_type.typalign of this column's type
-attnotnull: This represents a not-null constraint. It is possible to change this column to enable or disable the constraint.
+attnotnull: This represents a not-null constraint.
 atthasdef: This column has a default value, in which case there will be a corresponding entry in the pg_attrdef catalog that actually defines the value.
 attisdropped: This column has been dropped and is no longer valid. A dropped column is still physically present in the table, but is ignored by the parser and so cannot be accessed via SQL.
 attislocal: This column is defined locally in the relation. Note that a column can be locally defined and inherited simultaneously.
changedpg_authid
9.4 → 9.5
+ rolbypassrls  boolean
- rolcatupdate  boolean
changedpg_class
9.4 → 9.5
+ relrowsecurity  boolean
+ relforcerowsecurity  boolean
rewordedpg_cursors
--- 9.4
+++ 9.5
@@ -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 49.2.3 via the Server Programming Interface (SPI), as described in Section 44.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 50.2.3 via the Server Programming Interface (SPI), as described in Section 44.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_description
9.4 → 9.5
~ description  nullable → NOT NULL
changedpg_extension
9.4 → 9.5
~ extversion  nullable → NOT NULL
addedpg_file_settings
--- 9.4
+++ 9.5
@@ -0,0 +1,7 @@
+sourcefile  text
+sourceline  integer
+seqno  integer
+name  text
+setting  text
+applied  boolean
+error  text
changedpg_largeobject
9.4 → 9.5
~ data  nullable → NOT NULL
rewordedpg_locks
--- 9.4
+++ 9.5
@@ -1,5 +1,5 @@
-(relation) The view pg_locks provides access to information about the locks held by open transactions 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 transaction. Thus, the same lockable object might appear many times, if multiple transactions 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. Also, "advisory" locks can be taken on numbers that have user-defined meanings.
-locktype: Type of the lockable object: relation, extend, page, tuple, transactionid, virtualxid, object, userlock, or advisory
+(relation) The view pg_locks provides access to information about the locks held by open transactions 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 transaction. Thus, the same lockable object might appear many times, if multiple transactions 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, object, userlock, or advisory
 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
changedpg_pltemplate
9.4 → 9.5
~ tmplhandler  nullable → NOT NULL
~ tmpllibrary  nullable → NOT NULL
addedpg_policies
--- 9.4
+++ 9.5
@@ -0,0 +1,7 @@
+schemaname  name
+tablename  name
+policyname  name
+roles  name[]
+cmd  text
+qual  text
+with_check  text
addedpg_policy
--- 9.4
+++ 9.5
@@ -0,0 +1,6 @@
+polname  name
+polrelid  oid
+polcmd  "char"
+polroles  oid[]
+polqual  pg_node_tree
+polwithcheck  pg_node_tree
changedpg_proc
9.4 → 9.5
+ protrftypes  oid[]
~ prosrc  nullable → NOT NULL
addedpg_replication_origin
--- 9.4
+++ 9.5
@@ -0,0 +1,2 @@
+roident  oid
+roname  text
addedpg_replication_origin_status
--- 9.4
+++ 9.5
@@ -0,0 +1,4 @@
+local_id  oid
+external_id  text
+remote_lsn  pg_lsn
+local_lsn  pg_lsn
changedpg_replication_slots
9.4 → 9.5
+ active_pid  integer
changedpg_roles
9.4 → 9.5
+ rolbypassrls  boolean
- rolcatupdate  boolean
changedpg_seclabel
9.4 → 9.5
~ label  nullable → NOT NULL
~ provider  nullable → NOT NULL
changedpg_settings
9.4 → 9.5
+ pending_restart  boolean
changedpg_shadow
9.4 → 9.5
+ usebypassrls  boolean
- usecatupd  boolean
changedpg_shdescription
9.4 → 9.5
~ description  nullable → NOT NULL
changedpg_shseclabel
9.4 → 9.5
~ label  nullable → NOT NULL
~ provider  nullable → NOT NULL
rewordedpg_stat_all_tables
--- 9.4
+++ 9.5
@@ -7,7 +7,7 @@
 idx_scan: Number of index scans initiated on this table
 idx_tup_fetch: Number of live rows fetched by index scans
 n_tup_ins: Number of rows inserted
-n_tup_upd: Number of rows updated
+n_tup_upd: Number of rows updated (includes HOT updated rows)
 n_tup_del: Number of rows deleted
 n_tup_hot_upd: Number of rows HOT updated (i.e., with no separate index update required)
 n_live_tup: Estimated number of live rows
addedpg_stat_ssl
--- 9.4
+++ 9.5
@@ -0,0 +1,7 @@
+pid  integer
+ssl  boolean
+version  text
+cipher  text
+bits  integer
+compression  boolean
+clientdn  text
rewordedpg_stat_sys_tables
--- 9.4
+++ 9.5
@@ -7,7 +7,7 @@
 idx_scan: Number of index scans initiated on this table
 idx_tup_fetch: Number of live rows fetched by index scans
 n_tup_ins: Number of rows inserted
-n_tup_upd: Number of rows updated
+n_tup_upd: Number of rows updated (includes HOT updated rows)
 n_tup_del: Number of rows deleted
 n_tup_hot_upd: Number of rows HOT updated (i.e., with no separate index update required)
 n_live_tup: Estimated number of live rows
rewordedpg_stat_user_tables
--- 9.4
+++ 9.5
@@ -7,7 +7,7 @@
 idx_scan: Number of index scans initiated on this table
 idx_tup_fetch: Number of live rows fetched by index scans
 n_tup_ins: Number of rows inserted
-n_tup_upd: Number of rows updated
+n_tup_upd: Number of rows updated (includes HOT updated rows)
 n_tup_del: Number of rows deleted
 n_tup_hot_upd: Number of rows HOT updated (i.e., with no separate index update required)
 n_live_tup: Estimated number of live rows
changedpg_tables
9.4 → 9.5
+ rowsecurity  boolean
addedpg_transform
--- 9.4
+++ 9.5
@@ -0,0 +1,4 @@
+trftype  oid
+trflang  oid
+trffromsql  regproc
+trftosql  regproc
changedpg_trigger
9.4 → 9.5
~ tgargs  nullable → NOT NULL
rewordedpg_type
--- 9.4
+++ 9.5
@@ -6,7 +6,7 @@
 typlen: For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a "varlena" type (one that has a length word), -2 indicates a null-terminated C string.
 typbyval: typbyval determines whether internal routines pass a value of this type by value or by reference. typbyval had better be false if typlen is not 1, 2, or 4 (or 8 on machines where Datum is 8 bytes). Variable-length types are always passed by reference. Note that typbyval can be false even if the length would allow pass-by-value.
 typtype: typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain, e for an enum type, p for a pseudo-type, or r for a range type. See also typrelid and typbasetype.
-typcategory: typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be "preferred". See Table 48-53.
+typcategory: typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be "preferred". See Table 49-55.
 typispreferred: True if the type is a preferred cast target within its typcategory
 typisdefined: True if the type is defined, false if this is a placeholder entry for a not-yet-defined type. When typisdefined is false, nothing except the type name, namespace, and OID can be relied on.
 typdelim: Character that separates two values of this type when parsing array input. Note that the delimiter is associated with the array element data type, not the array data type.
changedpg_user
9.4 → 9.5
+ usebypassrls  boolean
- usecatupd  boolean