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 1wV5j2-001gDW-2U for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jun 2026 10:55:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wV5j1-006Dva-0r for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jun 2026 10:54:59 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wV5j0-006DvR-2j for pgsql-hackers@lists.postgresql.org; Thu, 04 Jun 2026 10:54:58 +0000 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wV5iz-000000013id-0wDN for pgsql-hackers@lists.postgresql.org; Thu, 04 Jun 2026 10:54:57 +0000 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-3966c0d5ac9so5330951fa.2 for ; Thu, 04 Jun 2026 03:54:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780570495; cv=none; d=google.com; s=arc-20240605; b=WnWnkw0lPpGCjqenvleHEDFjpHG47ZdCBeK8zdPUXiv/F1ngyQfZcDVeCDcOYPDzgh S8JEYeHJ83KGz0YCWD7zoM+yw9UBOWScTC4FVfaQcHdenWdTymji3d8X7y3NNfmFktKz 776w1WQ3nm8tsksUsoqCQZyCxSUj1Y58ejKlb0zF7/F/IUZfEH+vBy5K4SpaOcAw3L3k rJonZ8+2Ffkj3ICWY1ZuhIROWXFNs4kBFSbZPYRp0knFCn4CWT/9cUOBotFz0byQ7wZF qr24gBuWghpBmVYQzZZjOh1QsECACzwc7KPddnabnMnhL01NLYL6ypQDhGi1RrlpFXN/ MfAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=e7yW8xL9x2SipfbLxW0x4OI7MF9O0ZtSa3iTCTZZzZU=; fh=ymHiY8gWdOfRc5/tUWzYVt1MRDK9Tv59a+JxBQJRC3c=; b=f/tAf1QKvp+mLezhNSzDZdk7loe86nnh2Z0hrk1fIyjUfycVfLKI6/wI2vRRWM+dqM t+8wys3lJjySMJu09cI+wzPC2umWbOKR7m7+V3wJ3sXek+fD1rUXP/bWUjM00PScCyfe VckHHDfYedo/4Z513Mh6LoF354vsiBmNutv5Mj9pxDTamAYwH6mwq2o08eBD2sNFaMmz bimz70h2r430jHGY3xVJNKnraCPMwjNPy7ltZ1Fx63Gpy9V4G3LXht30sDTtWmH3vToK fNFrvfGICzLzz/QzjlOyHi04wdUCvHgt1efeNFTcsZdw2hh8yhvTdGTWnVInXcs/y/zs UaNQ==; 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=1780570495; x=1781175295; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=e7yW8xL9x2SipfbLxW0x4OI7MF9O0ZtSa3iTCTZZzZU=; b=LvvvoNz+kmqg+xTw2nll3zh6vJsqepKO87jGohwmCGX5DO6SacsI6V795s3lonUi/Z vQ+AyF1R/6tcgw8KuVfjZ62bj/leld5ywzJ+qxlvPHxnO73r4rzBgg67+TlFmXdjSElz gyPDkTfansDi18MwOfLX0kp1UlOWSS5QM/tc6eBRRcN7ErX5AKDIdfw3aKHIQZq1t1OS A5rhXFLhkZp/Gr6VoFRrl18pNjrD1EIspSAAo03GO7FlF89uQWXUO9b24yu7qpCLv6kD ngqT8GivGNgg/Y2mE9Tcy8z/vZpX418neA3cQuV6O3cQRhKQa64uNtEi5dlT/hohQRkH 2P0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780570495; x=1781175295; h=content-transfer-encoding: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=e7yW8xL9x2SipfbLxW0x4OI7MF9O0ZtSa3iTCTZZzZU=; b=ain73o7Xfya0mYoCM785B6vVj4+Mfv+2yG933M7aSTV8A5TrlENSnKi0YnZhBulXRD ujITUFq81yKLunsA7sKX1nsFPD9T89oDaoUTENh064k2ObKhbca3+atg7FYf7ZDeW0V/ 1s5heXSMcyd82Ia1mH/ZjwdtSiuGjwLEOu0zbQJpsYRatwWr+U0myPeeCJC1B4eit/hV s50KgWcjPHJ08gzog2aRhYp2nQLM4PlTo6M/x131UQzbdG2lRIOOHU6BFyGHqaS6mFNK dEDFTH2Ix/+AZFHWeNzik/gF/qIrI2bOmzZwyl5s3GZj315pgwYfJtj3vc7aASwSdNQc 6xBQ== X-Forwarded-Encrypted: i=1; AFNElJ9cgFsTpWXy7jBwlCvgLjZJP40vQVFYhw+mguOFh5nuwmz1BKXC/nsQ9yfFsG1uTRTuBdXULLGyvQPONU57@lists.postgresql.org X-Gm-Message-State: AOJu0YxonlF6s4XKvj2H/WQ0gjnURmKTYKkWr/eoUUtABQOU0DZ/1rBZ TyU3iB6W2LPhlHW1lOVMSgLeHrxH+opOSS1ulj+Mt8qZEKvIDpCAReXKovw+CQDTYiVwrfujODp SL+I0rjVxPID3m6u7gZ79Rce3L392Bg== X-Gm-Gg: Acq92OFudkCLNf76aocpcKdJaVDoxlEUZRIYHaEwSpTeZK0VbQDQQF4n2UThUPUnAoC Q1elt3rNOzAAxvpfpAe+dfS4eELbdv3hGSbDpbKSUnavCgaNXPOmHEODP4yMYD8czeJOXrLacyN thmA9afQYMLMOtHlva71m6ATrWCeRHKXBuL+np0erfXLGA0GB3sctX4+GvpABVbgR9MyInfoYbk i4EaLhGIiQK2ZX7dRB62M/P7N9WcMAESUrJ+Ywo4RZVUhKHsmdB3AmWz1TDDx42wVWQwCi+jczs s/gRECT7WFQac1deWvTN4guT X-Received: by 2002:a05:651c:222a:b0:396:9630:5ed with SMTP id 38308e7fff4ca-396af401949mr25767761fa.15.1780570495312; Thu, 04 Jun 2026 03:54:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Thu, 4 Jun 2026 16:24:43 +0530 X-Gm-Features: AVHnY4L2opiI4-f48MNRSRxc3z1w6qlmYoguR_zLvBV35Xze3NYS_OCs8e_Wy7c Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: vignesh C Cc: Dilip Kumar , Amit Kapila , Peter Smith , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Jun 3, 2026 at 10:11=E2=80=AFAM vignesh C wro= te: > > Here is the rebased version of the upgrade and \dRs patch which is > present in v45-0003 and v45-0004. There is no change in v45-0001 and > v45-0002, they are the same patch as in [1]. Please find a couple of minor comments for v45-001: 1) drop_sub_conflict_log_table() + conflictrelname =3D get_rel_name(subconflictlogrelid); + if (conflictrelname =3D=3D NULL) + elog(ERROR, "cache lookup failed for index %u", + subconflictlogrelid); Shouldn't the error say - "cache lookup failed for relation" instead of "index"? 2) AlterSubscription() + if (IsSet(opts.specified_opts, SUBOPT_CONFLICT_LOG_DEST)) + { + ConflictLogDest old_dest =3D + GetConflictLogDest(sub->conflictlogdest); + + if (opts.conflictlogdest !=3D old_dest) + { + bool update_relid; + Oid relid =3D InvalidOid; + + values[Anum_pg_subscription_subconflictlogdest - 1] =3D + CStringGetTextDatum(ConflictLogDestNames[opts.conflictlogdest]); + replaces[Anum_pg_subscription_subconflictlogdest - 1] =3D true; + + update_relid =3D alter_sub_conflictlogdestination(sub, + opts.conflictlogdest, + &relid); Small optimization: we call GetConflictLogDest() twice in this flow, once to compute old_dest and again inside alter_sub_conflictlogdestination(). Could we pass old_dest to alter_sub_conflictlogdestination() instead? -- Thanks, Nisha