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