Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wQMSp-001UW6-1z for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 09:46:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wQMSm-00CrMr-0d for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 09:46:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wQMSl-00CrMj-2y for pgsql-hackers@lists.postgresql.org; Fri, 22 May 2026 09:46:40 +0000 Received: from mail-oo1-xc29.google.com ([2607:f8b0:4864:20::c29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wQMSk-00000000rzR-3o5g for pgsql-hackers@lists.postgresql.org; Fri, 22 May 2026 09:46:40 +0000 Received: by mail-oo1-xc29.google.com with SMTP id 006d021491bc7-69d7c1e2a48so804536eaf.1 for ; Fri, 22 May 2026 02:46:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779443196; cv=none; d=google.com; s=arc-20240605; b=BfdpUa8vjoGw98i4MBLyXksQGIRZ4b/JPEQYFy+DEZ2jh0yiZMUvEpp9HhtnexA/5A 1MWFk2gVG9LfdVRHq9fOVwIWMKSYGWBbV3kSsraFGeFlrjL/gUlXPvD0Ve2/2bmHBKmp HX44+IzOZ9oKF31JheLBkhQLtEOASeznXtUoda6Zi7urXulIMbVdpOdfCsNQBhbhiAAW ON72Zgdf4KIiikVR8PGoaH3dutsI8k8gzbtMwV5LBsoPtS3N7FmzCrKspS04jNG6c2XK x4aQVEBzL1G/oBlgxWKJmOlb84aYCfj94u8ilLRCKcbVE9oVj0KOpAwrGTUDLnJUASGi w68A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=lgKBL6hgEQ8Sv+xEDoFLfePXuzYpceTjzQZ62f8KkxY=; fh=JXPGsM0iTvTRT9eLowgrucNEw+T28F0EOWCMHlCJvKQ=; b=UvwYroypuCspj6IovtGJ+qJwK6w94SC85vNvjDOrTyPc/1l1xGFcgB6R1rsCov27XR 3XP3KdzE2omioQ8oQI3wrrg+XdPwsz+YfEq5OwsbSq5CI6nDN4jZggGPWzywH+ftrA7L GMlD9VT4O/7uXrba9uU9mWu5j5L2sFVdOUaQ6UK4coRoeV+kAgDHOk4VbREhYlyVK5z8 mupUegg1jYirlvIaC/zEHZJ5xSd9DVRHM2jjSvR56EhAEiO3/4axQhpBQ7phC3xumVMc NItQgWh22e6RZ6S0TSmjjqlQvXYaNUdEAc54SoFVKoAX8UuAWvf4YMQlqTGAYSqecpHU 0fuw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779443196; x=1780047996; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lgKBL6hgEQ8Sv+xEDoFLfePXuzYpceTjzQZ62f8KkxY=; b=eB4sTi2tQJiZi4R74D+voj28aUsg84nP2y8bx3/mHrfkT1uHCwVSutl+EUAyyT3CZG vUjogiFSoc8IGkUzpKmyl8qiLaKocQ2myEdr1DlfOBO9J6qdWabcWPa8I9KYx1kPjLxA CAd6QZct1VtsIEti2sHLHYm4W4qw1TkNMbsEzkkzJ4RQ4ZtzBLdNWih7GD1Hgiq84Wg1 OPI8J5YpK5Ts5/9DnktbD2CeQ1eFOqzIrH9Lg7Pe/r9oSvyX5lseOtE741DgHEjqFFY2 FGyyWF7YpmgIw5vqXLMF4UY2CUdMJoBB1lPfR61Pk7kYvM3Wf9d93lEsRJZGbMdMb1Af CEyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779443196; x=1780047996; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lgKBL6hgEQ8Sv+xEDoFLfePXuzYpceTjzQZ62f8KkxY=; b=DHbcHlIWIhqxcGx8izKMeaGPPCrnVrYznhSOe08cFyarckFWrTjN276fI+LbcnYjLs CaGoFH1bhXBXWtaQmE1Ul+0VBatc9tU6B3duT50rE+mRiWid3EP6LtXMKTcbQzfbW8L1 2P9LHba5GESgGDvLzmu+kWCJYryH5WVX0B5C1SPNerF0YeVuR61aHTAQSlei3UZiWXdM YPr4l/B7HdL0OoAt9ZfBQJSxIvTTrQvCu0Fx/FJmYVgX3BM5KYw2/1FdUZwHLw7msDVF /kEpzIGYa/GgLVx+Y4ghWZcQiZ62AuTMtn659JM7R0u5dtwUB5lxHxuZzVfLGHEvdmHo AT2w== X-Forwarded-Encrypted: i=1; AFNElJ/dHJdEHwQshHhiSNEE5dIDTmKgaq4ZBIaBJA3MVVRaUZ+GeNIv2AkRRmvwaPsxke8oyzLtlzEWyoSE/mLT@lists.postgresql.org X-Gm-Message-State: AOJu0YzSnhBb4DCiDT0OccKPzIEltrmwmSG49IFfvfukV9pjoUoBkfIe xgBCgE2ZFHudX9Ou61HOXWRKTruKKXwtEkhQBd/T4MTxiTNPlPZEF3b6tIjriPd1dKhlVrPcRKF cFaeh3cHbP6CHdCwOeLu6piP9qh8H6kk= X-Gm-Gg: Acq92OHRTan7eU6LaCZgkw2Q/Q6q6RxnOcxhEH6YQCE5MyleZanMgKUyKTgnb1XvMkw atPt44NOoNKyiWR5PxRKhoU9QV2MWHYvjYIr/igUD86WAmYBgeyiHpgUgG6Gv1LyGNcAxeOFNFb zGxn5mb1zrghbK0f4RmmPQ64PfvaaMUMj2uWNhMJT8Jkq7HJGLlsPESjtbG88gsd65OqP9kfrVx cxENbj/r5PCpRbCh9h2OmX0SskUeYL85cZOddB/eLF0DVFnKFEO66gep9myJly2A+IMKAnFSby6 x5V1sdHZSw== X-Received: by 2002:a05:6820:1689:b0:694:9d3d:e040 with SMTP id 006d021491bc7-69d7ec5ae1emr1418115eaf.31.1779443196118; Fri, 22 May 2026 02:46:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Fri, 22 May 2026 15:16:24 +0530 X-Gm-Features: AVHnY4K3X1k6LqscGbjXCUGFWSQZ8Ss82i7c63qAcQh4wOGZLC_dEcsI3gQi1ME Message-ID: Subject: Re: [PATCH] Preserve replication origin OIDs in pg_upgrade To: Ajin Cherian Cc: Zsolt Parragi , vignesh C , "Hayato Kuroda (Fujitsu)" , PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, 18 May 2026 at 16:13, Ajin Cherian 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