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 1wSLmN-0037oU-0S for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 21:27:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSLmL-009aLE-09 for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 21:27:05 +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 1wSLmK-009aL5-22 for pgsql-hackers@lists.postgresql.org; Wed, 27 May 2026 21:27:05 +0000 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSLmI-00000001kn1-47Uv for pgsql-hackers@lists.postgresql.org; Wed, 27 May 2026 21:27:04 +0000 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-3942e9977a5so115859651fa.1 for ; Wed, 27 May 2026 14:27:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779917221; cv=none; d=google.com; s=arc-20240605; b=hdz961QU0FvN4Vk3cITClrPXu+v2B4+dCYT9309Be3jb3qvz5N8XRGe7LtLHcR/b70 CoYvman9RVxsl+GQ3y4qtcQg5qvFGcxachcAlq1qr49Jv6cQVACusDWl+fprkRef0jQI f3cfoTmw45HRRXBfweR1t7d7L7mj3a1s0T4h4eipBv1VY4cSLDXt1DjF5d8uvoJZl4yW hylJXRz9FEFVT3HkqvNKFTN4NC8564WsBuViP2NbinSrcwOf0iCnqep4krFluljl8Xjy 740u7Zl1fPpg5vg/Boc3rPCslowqxoMAD1bUYy/WsevPJD3bZ+bLUCwNCAyAK7toVZpa HvWg== 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=7sABZFbvYtfhN6/YYZfSNv5v7/I1Lnx6qasprJ/CMdI=; fh=p96JzI5NITh4Mc7RV3LEkf3LnJY8u9Em1rZ6QoOBwAY=; b=U1ZTuU/NVWZ7pTOjdlvt6vD4KubHs+MOGfHAvnzS9KKcwFH63+eiFFX54/qviRB8SX NZshdxTxRC9rwrDI7VY3JiL48OHA8Z990K7cWGW6bgN0sz8fZgpbhWS8pGXiiAJryOta 1mdtiU3OtObqlBI4mnVxvd/B+N9HFi4lx1BnkRujooLhGwNzcnPC5pwf5CiPxv8kObmI MWwMc2SOWRCOCwMQO3oPwb6VAI+6U+Eyal5TuRB8NOQd2e6IcmAxfR0KNoEXufyOLNQV ffaFH70Y0TgVHxcOU8c4Mn59lFRAmY95fXgRSPgAYHKoSrnUzPPncgFBpzW1xiv2eWpk gNqg==; 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=1779917221; x=1780522021; 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=7sABZFbvYtfhN6/YYZfSNv5v7/I1Lnx6qasprJ/CMdI=; b=rhS64T/CnoCmkaM3mgvYBWdVuzqWO8NQkd0DwIgfwKxpF3DgxFQcVMUjpiZoHJ1ypi gyGbokNcnLBcJEiHmrM1qRRg1ynyg4JGFMl7FrNcELaLKVqp4uMuqK1eRsCRTXGQmP8K udQ4yrSf36Pz8NTa+ePOCv06+fm5iy/NXEArvFUMvnoG5PpN8gJVhMZrTH+bqwnJhPnl 4U6g9eb2aucK42a1ximeQLyT+S/AqrQ32RdgFJDrmvhrVvopqwJZypIVoCUqbZaC9p+5 bD6CGx+H4K5LfClBzngsS4gVVy+DE3Wqw+pYNDcqMEIGLBp94XGh5Gg6QQAsOhjnR7Vc 814w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779917221; x=1780522021; 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=7sABZFbvYtfhN6/YYZfSNv5v7/I1Lnx6qasprJ/CMdI=; b=B24OWv0isxGkhPdVesAGyygryYvDCzToQdleM1P4BW7wwX6dRMq8tzPSATuQSRSxVP RlzaH+vSQm4hdZKuej/3Lcavk1rXFBIS4sGvUkW9ohP38n5ccfUz3DD3T1DGI4bIcnlW DNYLKgeh1Cq7YPmKCkhn5we5kzibvQGF3CpIqIDp7H6HR8w/amSEXiu0seOFeG8kk3/X wGYIaJgcnNa7bUqDjHgbxtXWp3vZ6xIa2ntw3d6DOtTjhp04mwLOH/KG040Qb2L08gUH N+CzvBukoOWaUS3Ws6iAMrcWNsvMDxc1Z+TLJTq4svmIfFUWLfRSWPKKpiKzcct+PUEl rYJg== X-Forwarded-Encrypted: i=1; AFNElJ95qmfFeazjkHdqjop+TieE5hBq/4l5pwTUo+jYccbXijhP3FkHc/X2sCXuVJ1sl/OQJKr/cOV7/UEimXnA@lists.postgresql.org X-Gm-Message-State: AOJu0YwgFhiVHCO3KYtlf1peRL0duJG3bE1AA/QnhxqtFi9bou+vJBhd 00RirnLFfs9bHXXEiVOBEaWfvAziuXTad4hrRV1J+Gc0iLrINCi6XRH1wcw50IijOl4bWUXkQ+c 5eDWnqdbiCebSZhqKYcTCaJTs3RCH1wM= X-Gm-Gg: Acq92OHuEA99DBCY5TZHa0beDmI/j9wOBjifW/x5sWZTOnNbjEO7+KV2Y2JMEkBrw1J uc4C2elXlzHkU022/70YSikTsGnNbr4bzW+LTwmWGNOnFYXPXF13V56WmBYlR8P969YiWaPVFMe 0GoI43qGzZOsbYweoMFVnR43C8/C7rxTVQrNS+Z7WjZqs7iXkK3M+lcPoPTXKohOxr+RIAWbviK 34AL5T8Y+39oAlWTbr/PvyouZNuiD0eLSwTjcr+OHao9acWyoamghdOVA6ZGwRu9wzROY1JBxQS g3CB2p+oeOY3RDjefE4SWaBYOFafMdawRTe+SHm24cEIi7xuHebtUWhyS/8QCHFTdVgA1hmiGsn Hzz3L3u4cM0W3ZgED6Q== X-Received: by 2002:a05:651c:1606:b0:393:d582:b62a with SMTP id 38308e7fff4ca-395ca18cb1fmr89409931fa.5.1779917221057; Wed, 27 May 2026 14:27:01 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amit Kapila Date: Wed, 27 May 2026 14:26:47 -0700 X-Gm-Features: AVHnY4KWgKj4VdVjxpneZaoHXqZgqWJp0v92pselHxT2R4_f_zZNMrsUNzWrLnw Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: vignesh C Cc: shveta malik , Nisha Moond , Peter Smith , Dilip Kumar , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="000000000000b0e8e70652d3452e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b0e8e70652d3452e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, May 27, 2026 at 1:34=E2=80=AFAM vignesh C wro= te: > > On Tue, 26 May 2026 at 15:08, shveta malik wrote= : > > > > On Mon, May 25, 2026 at 10:13=E2=80=AFAM vignesh C wrote: > > > > > > > > > Thanks for the comments, the attached v39 version patch has the > > > changes for the same. > > > > > > > I have not yet looked at v40, but please find a few ocmments on > > v39-0001 and 0002 merged together. > > 4) > > Do we need to have CommandCounterIncrement() after > > heap_create_with_catalog() in create_conflict_log_table()? I think > > even if we are not doing any table_open etc for CLT in same > > transaction, we should call CommandCounterIncrement() (to be > > consistent with other such calls of heap_create_with_catalog and to > > make it future proof). Thoughts? > > I felt this is not required as we are not doing a table open on the > newly created table. > Okay, command counter increment would be required here if we further access that relation in the same command. I think I am facing a related problem w.r.t newly created subscription. After applying first six patches, the create subscription fails as follows: postgres=3D# create subscription sub1 connection 'dbname=3Dpostgres' publication pub1 with (conflict_log_destination=3D'all'); ERROR: dependent subscription was concurrently dropped I debugged and found that we get the above ERROR when we are trying to find the subscription which is not yet created. In this case, it seems to be happening because we are using a subscription that is yet not created for dependency recording. This raises a question as to why are we creating the conflict_log_table before subscription, at least this needs some comments. * + if (mask & (ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USA= GE)) + { + if (IsConflictLogTableClass(classForm)) + { + /* + * For conflict log tables, allow non-superusers to perform + * DELETE and TRUNCATE for cleanup and maintenance. Also allow + * INSERT and UPDATE to pass ACL checks so that later checks + * can raise the dedicated "cannot modify or insert data into + * conflict log table" error instead of a generic permission + * denied error. Still restrict USAGE for non-superusers. + */ + mask &=3D ~(ACL_USAGE); I see the point of giving a specific error instead of a generic error but this functionality is used by pg_class_aclmask() which is an exposed function. If we go with your proposed change, isn't there a risk that some extension or outside core-code using pg_class_aclmask() won't invoke that later functionality (CheckValidResultRel())? If we decide to go this way then we can change this comment as proposed in the attached? --=20 With Regards, Amit Kapila. --000000000000b0e8e70652d3452e Content-Type: text/plain; charset="US-ASCII"; name="v41_amit_1.patch.txt" Content-Disposition: attachment; filename="v41_amit_1.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpokqfzn0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL2FjbGNoay5jCmluZGV4IGU1ODMxODdjN2E2Li4xOWM1NjhmNDcwNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2FjbGNoay5jCkBAIC0zMzQ3LDkgKzMzNDcsOSBAQCBwZ19jbGFzc19hY2xtYXNrX2V4dChPaWQg dGFibGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1hc2ssCiAJCQkJICogRm9yIGNvbmZsaWN0 IGxvZyB0YWJsZXMsIGFsbG93IG5vbi1zdXBlcnVzZXJzIHRvIHBlcmZvcm0KIAkJCQkgKiBERUxF VEUgYW5kIFRSVU5DQVRFIGZvciBjbGVhbnVwIGFuZCBtYWludGVuYW5jZS4gQWxzbyBhbGxvdwog CQkJCSAqIElOU0VSVCBhbmQgVVBEQVRFIHRvIHBhc3MgQUNMIGNoZWNrcyBzbyB0aGF0IGxhdGVy IGNoZWNrcwotCQkJCSAqIGNhbiByYWlzZSB0aGUgZGVkaWNhdGVkICJjYW5ub3QgbW9kaWZ5IG9y IGluc2VydCBkYXRhIGludG8KLQkJCQkgKiBjb25mbGljdCBsb2cgdGFibGUiIGVycm9yIGluc3Rl YWQgb2YgYSBnZW5lcmljIHBlcm1pc3Npb24KLQkJCQkgKiBkZW5pZWQgZXJyb3IuIFN0aWxsIHJl c3RyaWN0IFVTQUdFIGZvciBub24tc3VwZXJ1c2Vycy4KKwkJCQkgKiBpbiBDaGVja1ZhbGlkUmVz dWx0UmVsKCkgY2FuIHJhaXNlIHRoZSBzcGVjaWZpYyBlcnJvciBpbnN0ZWFkCisJCQkJICogb2Yg YSBnZW5lcmljIHBlcm1pc3Npb24gZGVuaWVkIGVycm9yLiBTdGlsbCByZXN0cmljdCBVU0FHRSBm b3IKKwkJCQkgKiBub24tc3VwZXJ1c2Vycy4KIAkJCQkgKi8KIAkJCQltYXNrICY9IH4oQUNMX1VT QUdFKTsKIAkJCX0K --000000000000b0e8e70652d3452e--