From 9d5db2f977b305a2a40e7b0d5cb33ba1875cab32 Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Fri, 24 Apr 2026 15:22:04 +1000 Subject: [PATCH v1] DOCS - logical replication, many little fixes --- doc/src/sgml/logical-replication.sgml | 34 +++++++++++------------ doc/src/sgml/ref/alter_publication.sgml | 6 ++-- doc/src/sgml/ref/alter_subscription.sgml | 2 +- doc/src/sgml/ref/create_publication.sgml | 6 ++-- doc/src/sgml/ref/create_subscription.sgml | 2 +- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml index c06d255d2ed..98b74b195db 100644 --- a/doc/src/sgml/logical-replication.sgml +++ b/doc/src/sgml/logical-replication.sgml @@ -24,8 +24,8 @@ - When logical replication of a table typically starts, PostgreSQL takes - a snapshot of the table's data on the publisher database and copies it + Logical replication of a table typically starts by PostgreSQL taking + a snapshot of the table's data on the publisher database and copying it to the subscriber. Once complete, changes on the publisher since the initial copy are sent continually to the subscriber. The subscriber applies the data in the same @@ -41,14 +41,14 @@ Sending incremental changes in a single database or a subset of a - database to subscribers as they occur + database to subscribers as they occur. Sending a subset of the database to multiple databases (i.e., - broadcast) + broadcast). @@ -61,14 +61,14 @@ - Replicating between different major versions of PostgreSQL + Replicating between different major versions of PostgreSQL. Replicating between PostgreSQL instances on different platforms (for - example Linux to Windows) + example Linux to Windows). @@ -90,7 +90,7 @@ The subscriber database behaves in the same way as any other PostgreSQL instance and can be used as a publisher for other databases by defining its - own publications. When the subscriber is treated as read-only by + own publications. When the subscriber is treated as read-only by an application, there will be no conflicts from a single subscription. On the other hand, if there are other writes done either by an application or by other subscribers to the same set of tables, conflicts can arise. @@ -211,8 +211,8 @@ A subscription is the downstream side of logical replication. The node where a subscription is defined is referred to as the subscriber. A subscription defines the connection - to another database and set of publications (one or more) to which it wants - to subscribe. + to another database and the set of publications (one or more) to which it + wants to subscribe. @@ -988,7 +988,7 @@ HINT: To initiate replication, you must manually create the replication slot, e - If the subscriber is in a release prior to 15, copy pre-existing data + If the subscriber is in a release prior to 15, copying pre-existing data doesn't use row filters even if they are defined in the publication. This is because old releases can only copy the entire table data. @@ -1450,8 +1450,8 @@ Included in publications: copied. However, if the subscriber is from a release prior to 15, then all the columns in the table are copied during initial data synchronization, ignoring any column lists. If the subscriber is from a release prior to 18, - then initial table synchronization won't copy generated columns even if they - are defined in the publisher. + then initial table synchronization will not copy generated columns even if + they are defined in the publisher. @@ -1748,7 +1748,7 @@ Included in publications: If the subscriber is from a release prior to 18, then initial table - synchronization won't copy generated columns even if they are defined in + synchronization will not copy generated columns even if they are defined in the publisher. @@ -2286,7 +2286,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER and the next LSN of the finish LSN (i.e., 0/014C0379). The current position of origins can be seen in the pg_replication_origin_status system view. - Please note that skipping the whole transaction includes skipping changes that + Note that skipping the whole transaction includes skipping changes that might not violate any constraint. This can easily make the subscriber inconsistent. The additional details regarding conflicting rows, such as their origin and @@ -2294,7 +2294,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER log. But note that this information is only available when track_commit_timestamp is enabled on the subscriber. Users can use this information to decide - whether to retain the local change or adopt the remote alteration. For + whether to retain the local change or adopt the remote change. For instance, the DETAIL line in the above log indicates that the existing row was modified locally. Users can manually perform a remote-change-win. @@ -2307,7 +2307,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER may not be logged. In that case, it may be necessary to change the streaming mode to on or off and cause the same conflicts again so the finish LSN of the failed transaction will be written - to the server log. For the usage of finish LSN, please refer to ALTER SUBSCRIPTION ... SKIP. @@ -2458,7 +2458,7 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER Initial Snapshot - The initial data in existing subscribed tables are snapshotted and + The initial data in existing subscribed tables is snapshotted and copied in parallel instances of a special kind of apply process. These special apply processes are dedicated table synchronization workers, spawned for each table to be synchronized. Each table diff --git a/doc/src/sgml/ref/alter_publication.sgml b/doc/src/sgml/ref/alter_publication.sgml index aa32bb169e9..94259ed7c07 100644 --- a/doc/src/sgml/ref/alter_publication.sgml +++ b/doc/src/sgml/ref/alter_publication.sgml @@ -140,8 +140,10 @@ ALTER PUBLICATION name RENAME TO - Adding/Setting any schema when the publication also publishes a table with a - column list, and vice versa is not supported. + Adding or setting a schema is not supported if the publication also + publishes any table from that schema with a column list. Likewise, adding + or setting a table with a column list is not supported if the publication + also publishes that table’s schema. diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml index f215fb0e5a2..e4f0b6b16c7 100644 --- a/doc/src/sgml/ref/alter_subscription.sgml +++ b/doc/src/sgml/ref/alter_subscription.sgml @@ -331,7 +331,7 @@ ALTER SUBSCRIPTION name RENAME TO < process reports an error if any prepared transactions done by the logical replication worker (from when two_phase parameter was still true) are found. You can resolve - prepared transactions on the publisher node, or manually roll back them + prepared transactions on the publisher node, or manually roll them back on the subscriber, and then try again. The transactions prepared by logical replication worker corresponding to a particular subscription have the following pattern: pg_gid_%u_%u diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml index 0ac576d3f10..8d28c29d53e 100644 --- a/doc/src/sgml/ref/create_publication.sgml +++ b/doc/src/sgml/ref/create_publication.sgml @@ -157,7 +157,7 @@ CREATE PUBLICATION name - When a partitioned table is published via schema level publication, all + When a partitioned table is published via a schema-level publication, all of its existing and future partitions are implicitly considered to be part of the publication, regardless of whether they are from the publication schema or not. So, even operations that are performed directly on a @@ -238,7 +238,7 @@ CREATE PUBLICATION name This parameter determines which DML operations will be published by - the new publication to the subscribers. The value is + the new publication to the subscribers. The value is a comma-separated list of operations. The allowed operations are insert, update, delete, and truncate. @@ -278,7 +278,7 @@ CREATE PUBLICATION name If the subscriber is from a release prior to 18, then initial table - synchronization won't copy generated columns even if parameter + synchronization will not copy generated columns even if the parameter publish_generated_columns is stored in the publisher. diff --git a/doc/src/sgml/ref/create_subscription.sgml b/doc/src/sgml/ref/create_subscription.sgml index 07d5b1bd77c..58c69dc763d 100644 --- a/doc/src/sgml/ref/create_subscription.sgml +++ b/doc/src/sgml/ref/create_subscription.sgml @@ -691,7 +691,7 @@ CREATE SUBSCRIPTION subscription_name -- 2.47.3