--- title: "pg_subscription" id: catalog-pg-subscription pg_version: "20devel" --- ## 52.59. pg_subscription The catalog pg_subscription contains all existing logical replication subscriptions. For more information about logical replication see [Chapter 29](logical-replication.md). Unlike most system catalogs, pg_subscription is shared across all databases of a cluster: there is only one copy of pg_subscription per cluster, not one per database. Access to the column `subconninfo` is revoked from normal users, because it could contain plain-text passwords. **pg_subscription Columns** | Column Type | Description | | --- | --- | | `oid` `oid` | Row identifier | | `subdbid` `oid` (references [pg_database](catalog-pg-database.md).`oid`) | OID of the database that the subscription resides in | | `subskiplsn` `pg_lsn` | Finish LSN of the transaction whose changes are to be skipped, if a valid LSN; otherwise `0/0000000`. | | `subname` `name` | Name of the subscription | | `subowner` `oid` (references [pg_authid](catalog-pg-authid.md).`oid`) | Owner of the subscription | | `subenabled` `bool` | If true, the subscription is enabled and should be replicating | | `subbinary` `bool` | If true, the subscription will request that the publisher send data in binary format | | `substream` `char` | Controls how to handle the streaming of in-progress transactions: `f` = disallow streaming of in-progress transactions, `t` = spill the changes of in-progress transactions to disk and apply at once after the transaction is committed on the publisher and received by the subscriber, `p` = apply changes directly using a parallel apply worker if available (same as `t` if no worker is available) | | `subtwophasestate` `char` | State codes for two-phase mode: `d` = disabled, `p` = pending enablement, `e` = enabled | | `subdisableonerr` `bool` | If true, the subscription will be disabled if one of its workers detects an error | | `subpasswordrequired` `bool` | If true, the subscription will be required to specify a password for authentication | | `subrunasowner` `bool` | If true, the subscription will be run with the permissions of the subscription owner | | `subfailover` `bool` | If true, the associated replication slots (i.e. the main slot and the table synchronization slots) in the upstream database are enabled to be synchronized to the standbys | | `subretaindeadtuples` `bool` | If true, the detection of [`update_deleted`](logical-replication-conflicts.md#conflict-update-deleted) is enabled and the information (e.g., dead tuples, commit timestamps, and origins) on the subscriber that is useful for conflict detection is retained. | | `submaxretention` `int4` | The maximum duration (in milliseconds) for which information (e.g., dead tuples, commit timestamps, and origins) useful for conflict detection can be retained. | | `subretentionactive` `bool` | The retention status of information (e.g., dead tuples, commit timestamps, and origins) useful for conflict detection. True if [`retain_dead_tuples`](sql-createsubscription.md#sql-createsubscription-params-with-retain-dead-tuples) is enabled, and the retention duration has not exceeded [`max_retention_duration`](sql-createsubscription.md#sql-createsubscription-params-with-max-retention-duration), when defined. | | `subserver` `oid` (references [pg_foreign_server](catalog-pg-foreign-server.md).`oid`) | Foreign server to use for the connection string. Zero if `subconninfo` is nonnull. | | `subconninfo` `text` | Connection string to the upstream database. `NULL` if `subserver` is nonzero. | | `subslotname` `name` | Name of the replication slot in the upstream database (also used for the local replication origin name); null represents `NONE` | | `subsynccommit` `text` | The `synchronous_commit` setting for the subscription's workers to use | | `subwalrcvtimeout` `text` | The `wal_receiver_timeout` setting for the subscription's workers to use | | `subpublications` `text[]` | Array of subscribed publication names. These reference publications defined in the upstream database. For more on publications see [Section 29.1](logical-replication-publication.md). | | `suborigin` `text` | The origin value must be either `none` or `any`. The default is `any`. If `none`, the subscription will request the publisher to only send changes that don't have an origin. If `any`, the publisher sends changes regardless of their origin. |