Thread

  1. Re: [PATCH] Preserve replication origin OIDs in pg_upgrade

    Shlok Kyal <shlok.kyal.oss@gmail.com> — 2026-05-22T09:46:24Z

    On Mon, 18 May 2026 at 16:13, Ajin Cherian <itsajin@gmail.com> wrote:
    >
    > Rebased the patch as it was no longer applying.
    >
    Hi Ajin,
    
    I have started reviewing the patch. Here is my comment for v6-0002 patch:
    
    Suppose we have a replication setup: publisher -> subscriber
    and we are upgrading subscriber to subscriber_new.
    And if initially 'subscriber_new' has a replication origin, upgrading
    the cluster can error out.
    
    Example:
    We set up a logical replication between publisher node and subscriber node.
    
    On subscriber node:
    postgres=# SELECT * FROM pg_replication_origin;
     roident |  roname
    ---------+----------
           1 | pg_16393
    (1 row)
    
    And initially subscriber_new has a replication origin:
    postgres=# select pg_replication_origin_create('myname');
     pg_replication_origin_create
    ------------------------------
                                1
    (1 row)
    
    postgres=# SELECT * FROM pg_replication_origin;
     roident | roname
    ---------+--------
           1 | myname
    (1 row)
    
    Now, if we run pg_upgrade to upgrade subscriber node to subscriber_new
    node, we get an error:
    ```
    SELECT pg_catalog.binary_upgrade_create_replication_origin('1'::pg_catalog.oid,
    'pg_16393'::pg_catalog.name, '0/01743078'::pg_catalog.pg_lsn);
    psql:subscriber_new/pg_upgrade_output.d/20260522T140312.807/dump/pg_upgrade_dump_globals.sql:37:
    ERROR:  replication origin with ID 1 already exists
    ```
    
    This error occurs in "Performing Upgrade" stage. Should we add a check
    in the "Performing Consistency Checks" stage so that we don't need to
    re-initdb the new cluster to perform the upgrade?
    Maybe we can add a check similar to
    check_new_cluster_replication_slots(), where pg_upgrade errors out if
    the new cluster already contains replication origins. Thoughts?
    
    Thanks,
    Shlok Kyal