↑↓ 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 12 → 13

Browse PG 13

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

4 added · 1 removed · 12 changed · 29 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_authid
--- 12
+++ 13
@@ -9,5 +9,5 @@
 rolreplication: Role is a replication role. A replication role can initiate replication connections and create and drop replication slots.
 rolbypassrls: Role bypasses every row level security policy, see Section 5.8 for more information.
 rolconnlimit: For roles that can log in, this sets maximum number of concurrent connections this role can make. -1 means no limit.
-rolpassword: Password (possibly encrypted); null if none. The format depends on the form of encryption used.
+rolpassword: Encrypted password; null if none. The format depends on the form of encryption used.
 rolvaliduntil: Password expiry time (only used for password authentication); null if no expiration
changedpg_available_extension_versions
12 → 13
+ trusted  boolean
rewordedpg_event_trigger
--- 12
+++ 13
@@ -1,4 +1,5 @@
 (relation) The catalog pg_event_trigger stores event triggers. See Chapter 39 for more information.
+oid: Row identifier
 evtname: Trigger name (must be unique)
 evtevent: Identifies the event for which this trigger fires
 evtowner: Owner of the event trigger
= oid  (now listed by the manual; the column exists in both releases)
rewordedpg_inherits
--- 12
+++ 13
@@ -1,4 +1,4 @@
 (relation) The catalog pg_inherits records information about table and index inheritance hierarchies. There is one entry for each direct parent-child table or index relationship in the database. (Indirect inheritance can be determined by following chains of entries.)
 inhrelid: The OID of the child table or index
 inhparent: The OID of the parent table or index
-inhseqno: If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1. Indexes can not have multiple inheritance, since they can only inherit when using declarative partitioning.
+inhseqno: If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1. Indexes cannot have multiple inheritance, since they can only inherit when using declarative partitioning.
rewordedpg_locks
--- 12
+++ 13
@@ -1,5 +1,5 @@
 (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, object, userlock, or advisory
+locktype: Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 27.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
removedpg_pltemplate
--- 12
+++ 13
@@ -1,8 +0,0 @@
-tmplname  name
-tmpltrusted  boolean
-tmpldbacreate  boolean
-tmplhandler  text
-tmplinline  text
-tmplvalidator  text
-tmpllibrary  text
-tmplacl  aclitem[]
rewordedpg_policies
--- 12
+++ 13
@@ -2,7 +2,7 @@
 schemaname: Name of schema containing table policy is on
 tablename: Name of table policy is on
 policyname: Name of policy
-polpermissive: Is the policy permissive or restrictive?
+permissive: Is the policy permissive or restrictive?
 roles: The roles to which this policy applies
 cmd: The command type to which the policy is applied
 qual: The expression added to the security barrier qualifications for queries that this policy applies to
= permissive  (now listed by the manual; the column exists in both releases)
= polpermissive  (no longer listed by the manual; the column exists in both releases)
rewordedpg_policy
--- 12
+++ 13
@@ -1,4 +1,5 @@
 (relation) The catalog pg_policy stores row level security policies for tables. A policy includes the kind of command that it applies to (possibly all commands), the roles that it applies to, the expression to be added as a security-barrier qualification to queries that include the table, and the expression to be added as a WITH CHECK option for queries that attempt to add new records to the table.
+oid: Row identifier
 polname: The name of the policy
 polrelid: The table to which the policy applies
 polcmd: The command type to which the policy is applied: r for SELECT, a for INSERT, w for UPDATE, d for DELETE, or * for all
= oid  (now listed by the manual; the column exists in both releases)
rewordedpg_proc
--- 12
+++ 13
@@ -18,12 +18,12 @@
 pronargs: Number of input arguments
 pronargdefaults: Number of arguments that have defaults
 prorettype: Data type of the return value
-proargtypes: An array with the data types of the function arguments. This includes only input arguments (including INOUT and VARIADIC arguments), and thus represents the call signature of the function.
-proallargtypes: An array with the data types of the function arguments. This includes all arguments (including OUT and INOUT arguments); however, if all the arguments are IN arguments, this field will be null. Note that subscripting is 1-based, whereas for historical reasons proargtypes is subscripted from 0.
-proargmodes: An array with the modes of the function arguments, encoded as i for IN arguments, o for OUT arguments, b for INOUT arguments, v for VARIADIC arguments, t for TABLE arguments. If all the arguments are IN arguments, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.
-proargnames: An array with the names of the function arguments. Arguments without a name are set to empty strings in the array. If none of the arguments have a name, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.
+proargtypes: An array of the data types of the function arguments. This includes only input arguments (including INOUT and VARIADIC arguments), and thus represents the call signature of the function.
+proallargtypes: An array of the data types of the function arguments. This includes all arguments (including OUT and INOUT arguments); however, if all the arguments are IN arguments, this field will be null. Note that subscripting is 1-based, whereas for historical reasons proargtypes is subscripted from 0.
+proargmodes: An array of the modes of the function arguments, encoded as i for IN arguments, o for OUT arguments, b for INOUT arguments, v for VARIADIC arguments, t for TABLE arguments. If all the arguments are IN arguments, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.
+proargnames: An array of the names of the function arguments. Arguments without a name are set to empty strings in the array. If none of the arguments have a name, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.
 proargdefaults: Expression trees (in nodeToString() representation) for default values. This is a list with pronargdefaults elements, corresponding to the last N input arguments (i.e., the last N proargtypes positions). If none of the arguments have defaults, this field will be null.
-protrftypes: Data type OIDs for which to apply transforms.
+protrftypes: An array of the argument/result data type(s) for which to apply transforms (from the function's TRANSFORM clause). Null if none.
 prosrc: This tells the function handler how to invoke the function. It might be the actual source code of the function for interpreted languages, a link symbol, a file name, or just about anything else, depending on the implementation language/call convention.
 probin: Additional information about how to invoke the function. Again, the interpretation is language-specific.
 proconfig: Function's local settings for run-time configuration variables
changedpg_publication
12 → 13
+ pubviaroot  boolean
rewordedpg_publication_rel
--- 12
+++ 13
@@ -1,3 +1,4 @@
-(relation) The catalog pg_publication_rel contains the mapping between relations and publications in the database. This is a many-to-many mapping. See also Section 51.79 for a more user-friendly view of this information.
+(relation) The catalog pg_publication_rel contains the mapping between relations and publications in the database. This is a many-to-many mapping. See also Section 51.78 for a more user-friendly view of this information.
+oid: Row identifier
 prpubid: Reference to publication
 prrelid: Reference to relation
= oid  (now listed by the manual; the column exists in both releases)
changedpg_replication_slots
12 → 13
+ wal_status  text
+ safe_wal_size  bigint
rewordedpg_seclabel
--- 12
+++ 13
@@ -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 51.84. 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.83. 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.
rewordedpg_shadow
--- 12
+++ 13
@@ -5,6 +5,6 @@
 usesuper: User is a superuser
 userepl: User can initiate streaming replication and put the system in and out of backup mode.
 usebypassrls: User bypasses every row level security policy, see Section 5.8 for more information.
-passwd: Password (possibly encrypted); null if none. See pg_authid for details of how encrypted passwords are stored.
+passwd: Encrypted password; null if none. See pg_authid for details of how encrypted passwords are stored.
 valuntil: Password expiry time (only used for password authentication)
 useconfig: Session defaults for run-time configuration variables
addedpg_shmem_allocations
--- 12
+++ 13
@@ -0,0 +1,4 @@
+name  text
+off  bigint
+size  bigint
+allocated_size  bigint
rewordedpg_shseclabel
--- 12
+++ 13
@@ -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 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.
+(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.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.
 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.
changedpg_stat_activity
12 → 13
+ leader_pid  integer
rewordedpg_stat_all_indexes
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row for each index in the current database, showing statistics about accesses to that specific index. See pg_stat_all_indexes for details.
+(relation) The pg_stat_all_indexes view will contain one row for each index in the current database, showing statistics about accesses to that specific index. The pg_stat_user_indexes and pg_stat_sys_indexes views contain the same information, but filtered to only show user and system indexes respectively.
 relid: OID of the table for this index
 indexrelid: OID of this index
 schemaname: Name of the schema this index is in
changedpg_stat_all_tables
12 → 13
+ n_ins_since_vacuum  bigint
rewordedpg_stat_archiver
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row only, showing statistics about the WAL archiver process's activity. See pg_stat_archiver for details.
+(relation) The pg_stat_archiver view will always have a single row, containing data about the archiver process of the cluster.
 archived_count: Number of WAL files that have been successfully archived
 last_archived_wal: Name of the last WAL file successfully archived
 last_archived_time: Time of the last successful archive operation
rewordedpg_stat_bgwriter
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row only, showing statistics about the background writer process's activity. See pg_stat_bgwriter for details.
+(relation) The pg_stat_bgwriter view will always have a single row, containing global data for the cluster.
 checkpoints_timed: Number of scheduled checkpoints that have been performed
 checkpoints_req: Number of requested checkpoints that have been performed
 checkpoint_write_time: Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds
rewordedpg_stat_database
--- 12
+++ 13
@@ -1,7 +1,7 @@
-(relation) One row per database, showing database-wide statistics. See pg_stat_database for details.
+(relation) The pg_stat_database view will contain one row for each database in the cluster, plus one for shared objects, showing database-wide statistics.
 datid: OID of this database, or 0 for objects belonging to a shared relation
-datname: Name of this database, or NULL for the shared objects.
-numbackends: Number of backends currently connected to this database, or NULL for the shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset.
+datname: Name of this database, or NULL for shared objects.
+numbackends: Number of backends currently connected to this database, or NULL for shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset.
 xact_commit: Number of transactions in this database that have been committed
 xact_rollback: Number of transactions in this database that have been rolled back
 blks_read: Number of disk blocks read in this database
@@ -17,6 +17,6 @@
 deadlocks: Number of deadlocks detected in this database
 checksum_failures: Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are not enabled.
 checksum_last_failure: Time at which the last data page checksum failure was detected in this database (or on a shared object), or NULL if data checksums are not enabled.
-blk_read_time: Time spent reading data file blocks by backends in this database, in milliseconds
-blk_write_time: Time spent writing data file blocks by backends in this database, in milliseconds
+blk_read_time: Time spent reading data file blocks by backends in this database, in milliseconds (if track_io_timing is enabled, otherwise zero)
+blk_write_time: Time spent writing data file blocks by backends in this database, in milliseconds (if track_io_timing is enabled, otherwise zero)
 stats_reset: Time at which these statistics were last reset
rewordedpg_stat_database_conflicts
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row per database, showing database-wide statistics about query cancels due to conflict with recovery on standby servers. See pg_stat_database_conflicts for details.
+(relation) The pg_stat_database_conflicts view will contain one row per database, showing database-wide statistics about query cancels occurring due to conflicts with recovery on standby servers. This view will only contain information on standby servers, since conflicts do not occur on master servers.
 datid: OID of a database
 datname: Name of this database
 confl_tablespace: Number of queries in this database that have been canceled due to dropped tablespaces
rewordedpg_stat_gssapi
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row per connection (regular and replication), showing information about GSSAPI authentication and encryption used on this connection. See pg_stat_gssapi for details.
+(relation) The pg_stat_gssapi view will contain one row per backend, showing information about GSSAPI usage on this connection. It can be joined to pg_stat_activity or pg_stat_replication on the pid column to get more details about the connection.
 pid: Process ID of a backend
 gss_authenticated: True if GSSAPI authentication was used for this connection
 principal: Principal used to authenticate this connection, or NULL if GSSAPI was not used to authenticate this connection. This field is truncated if the principal is longer than NAMEDATALEN (64 characters in a standard build).
addedpg_stat_progress_analyze
--- 12
+++ 13
@@ -0,0 +1,12 @@
+pid  integer
+datid  oid
+datname  name
+relid  oid
+phase  text
+sample_blks_total  bigint
+sample_blks_scanned  bigint
+ext_stats_total  bigint
+ext_stats_computed  bigint
+child_tables_total  bigint
+child_tables_done  bigint
+current_child_table_relid  oid
addedpg_stat_progress_basebackup
--- 12
+++ 13
@@ -0,0 +1,6 @@
+pid  integer
+phase  text
+backup_total  bigint
+backup_streamed  bigint
+tablespaces_total  bigint
+tablespaces_streamed  bigint
rewordedpg_stat_progress_cluster
--- 12
+++ 13
@@ -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 27.27.
+phase: Current processing phase. See Table 27.39.
 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
--- 12
+++ 13
@@ -5,7 +5,7 @@
 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 27.23.
+phase: Current processing phase of index creation. See Table 27.35.
 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.
rewordedpg_stat_progress_vacuum
--- 12
+++ 13
@@ -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 27.4.3.
+(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.4.
 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 27.25.
+phase: Current processing phase of vacuum. See Table 27.37.
 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.
rewordedpg_stat_replication
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row per WAL sender process, showing statistics about replication to that sender's connected standby server. See pg_stat_replication for details.
+(relation) The pg_stat_replication view will contain one row per WAL sender process, showing statistics about replication to that sender's connected standby server. Only directly connected standbys are listed; no information is available about downstream standby servers.
 pid: Process ID of a WAL sender process
 usesysid: OID of the user logged into this WAL sender process
 usename: Name of the user logged into this WAL sender process
addedpg_stat_slru
--- 12
+++ 13
@@ -0,0 +1,9 @@
+name  text
+blks_zeroed  bigint
+blks_hit  bigint
+blks_read  bigint
+blks_written  bigint
+blks_exists  bigint
+flushes  bigint
+truncates  bigint
+stats_reset  timestamp with time zone
rewordedpg_stat_ssl
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row per connection (regular and replication), showing information about SSL used on this connection. See pg_stat_ssl for details.
+(relation) The pg_stat_ssl view will contain one row per backend or WAL sender process, showing statistics about SSL usage on this connection. It can be joined to pg_stat_activity or pg_stat_replication on the pid column to get more details about the connection.
 pid: Process ID of a backend or WAL sender process
 ssl: True if SSL is used on this connection
 version: Version of SSL in use, or NULL if SSL is not in use on this connection
rewordedpg_stat_subscription
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) At least one row per subscription, showing information about the subscription workers. See pg_stat_subscription for details.
+(relation) The pg_stat_subscription view will contain one row per subscription for main worker (with null PID if the worker is not running), and additional rows for workers handling the initial data copy of the subscribed tables.
 subid: OID of the subscription
 subname: Name of the subscription
 pid: Process ID of the subscription worker process
changedpg_stat_sys_tables
12 → 13
+ n_ins_since_vacuum  bigint
rewordedpg_stat_user_functions
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row for each tracked function, showing statistics about executions of that function. See pg_stat_user_functions for details.
+(relation) The pg_stat_user_functions view will contain one row for each tracked function, showing statistics about executions of that function. The track_functions parameter controls exactly which functions are tracked.
 funcid: OID of a function
 schemaname: Name of the schema this function is in
 funcname: Name of this function
changedpg_stat_user_tables
12 → 13
+ n_ins_since_vacuum  bigint
changedpg_stat_wal_receiver
12 → 13
+ written_lsn  pg_lsn
+ flushed_lsn  pg_lsn
- received_lsn  pg_lsn
rewordedpg_statio_all_indexes
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row for each index in the current database, showing statistics about I/O on that specific index. See pg_statio_all_indexes for details.
+(relation) The pg_statio_all_indexes view will contain one row for each index in the current database, showing statistics about I/O on that specific index. The pg_statio_user_indexes and pg_statio_sys_indexes views contain the same information, but filtered to only show user and system indexes respectively.
 relid: OID of the table for this index
 indexrelid: OID of this index
 schemaname: Name of the schema this index is in
rewordedpg_statio_all_sequences
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row for each sequence in the current database, showing statistics about I/O on that specific sequence. See pg_statio_all_sequences for details.
+(relation) The pg_statio_all_sequences view will contain one row for each sequence in the current database, showing statistics about I/O on that specific sequence.
 relid: OID of a sequence
 schemaname: Name of the schema this sequence is in
 relname: Name of this sequence
rewordedpg_statio_all_tables
--- 12
+++ 13
@@ -1,4 +1,4 @@
-(relation) One row for each table in the current database, showing statistics about I/O on that specific table. See pg_statio_all_tables for details.
+(relation) The pg_statio_all_tables view will contain one row for each table in the current database (including TOAST tables), showing statistics about I/O on that specific table. The pg_statio_user_tables and pg_statio_sys_tables views contain the same information, but filtered to only show user and system tables respectively.
 relid: OID of a table
 schemaname: Name of the schema that this table is in
 relname: Name of this table
changedpg_statistic_ext
12 → 13
+ stxstattarget  integer
= oid  (now listed by the manual; the column exists in both releases)
changedpg_subscription
12 → 13
~ subslotname  NOT NULL → nullable
changedpg_subscription_rel
12 → 13
~ srsublsn  NOT NULL → nullable
rewordedpg_transform
--- 12
+++ 13
@@ -1,4 +1,5 @@
 (relation) The catalog pg_transform stores information about transforms, which are a mechanism to adapt data types to procedural languages. See CREATE TRANSFORM for more information.
+oid: Row identifier
 trftype: OID of the data type this transform is for
 trflang: OID of the language this transform is for
 trffromsql: The OID of the function to use when converting the data type for input to the procedural language (e.g., function parameters). Zero is stored if this operation is not supported.
= oid  (now listed by the manual; the column exists in both releases)
changedpg_trigger
12 → 13
+ tgparentid  oid
rewordedpg_type
--- 12
+++ 13
@@ -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 51.64.
+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 51.63.
 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.
@@ -20,8 +20,8 @@
 typmodin: Type modifier input function, or 0 if type does not support modifiers
 typmodout: Type modifier output function, or 0 to use the standard format
 typanalyze: Custom ANALYZE function, or 0 to use the standard function
-typalign: typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are: c = char alignment, i.e., no alignment needed. s = short alignment (2 bytes on most machines). i = int alignment (4 bytes on most machines). d = double alignment (8 bytes on many machines, but by no means all). Note For types used in system tables, it is critical that the size and alignment defined in pg_type agree with the way that the compiler will lay out the column in a structure representing a table row.
-typstorage: typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are p: Value must always be stored plain. e: Value can be stored in a “secondary” relation (if relation has one, see pg_class.reltoastrelid). m: Value can be stored compressed inline. x: Value can be stored compressed inline or stored in “secondary” storage. Note that m columns can also be moved out to secondary storage, but only as a last resort (e and x columns are moved first).
+typalign: typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are: c = char alignment, i.e., no alignment needed. s = short alignment (2 bytes on most machines). i = int alignment (4 bytes on most machines). d = double alignment (8 bytes on many machines, but by no means all).
+typstorage: typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are: p (plain): Values must always be stored plain (non-varlena types always use this value). e (external): Values can be stored in a secondary “TOAST” relation (if relation has one, see pg_class.reltoastrelid). m (main): Values can be compressed and stored inline. x (extended): Values can be compressed and/or moved to a secondary relation. x is the usual choice for toast-able types. Note that m values can also be moved out to secondary storage, but only as a last resort (e and x values are moved first).
 typnotnull: typnotnull represents a not-null constraint on a type. Used for domains only.
 typbasetype: If this is a domain (see typtype), then typbasetype identifies the type that this one is based on. Zero if this type is not a domain.
 typtypmod: Domains use typtypmod to record the typmod to be applied to their base type (-1 if base type does not use a typmod). -1 if this type is not a domain.