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 1wUKDO-0015Km-19 for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 08:11:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUKDL-00DYDT-1w for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 08:11:07 +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 1wUKDL-00DYDL-0Z for pgsql-hackers@lists.postgresql.org; Tue, 02 Jun 2026 08:11:07 +0000 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUKDJ-00000000iIK-2ffy for pgsql-hackers@lists.postgresql.org; Tue, 02 Jun 2026 08:11:06 +0000 Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-91550eca866so346132685a.1 for ; Tue, 02 Jun 2026 01:11:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780387865; cv=none; d=google.com; s=arc-20240605; b=fKRUlDnezQHytlbj+3K0Z3EbkSpG4xrawfRQpCxaia9snJknO9p503ixWp1jADhxr+ 5KRE/ReN9WASt1KVyjFpu6m7S05SRCz1cyO84fhCMyElCo398O6yoHt6070sE/pSTKyw 13HA/rOayGHLpSqgASPNDvKTl/TErASXvVr/QnD4QsyEc1cS2mIvQktm7YskCy74JDOz OQGHKDNJtYKj7z5W9sBO2nWzSOYEPB6MTy9U8I2eqw5XWW08cltmSSkYab1eIeO0BYno JJnvi2OrON2WxHzKtCjCs0DQdwG1XJTq7nPi9aIZ1VN71hqyChysz1qkFJhGIdEChRb3 YLeg== 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=M1/MDrT406rDGZW+YJWqc8+pP5fPEXWc4vszlwdchOs=; fh=GYOz7NFMYG4lfGRqlmYbGK9uQY2+APZCthlf6Fic6BQ=; b=QY27tDfGQT+n4kcV8EEbAsG4e4DOo+PxN/1+Spd2OGJWfPK9YQ6fnamIINiGDillcL GYK1zYUidKOlr0hb3nM9ME3W/zPEnulHFOQev0Yy9k80Hd11DA+lHiLwHeia60OD7A2Z 7f2pEpUZ6DvA9V/d1fqNu8dudBct5HbBWTVuY8g/IRbgwliDQ75x4FNnLSzbf0HZXkIh pC6Fl8FCw+kEQeGGQVy6dApH2aHm/wk8LEJB1rL7t8abl44BVPkrTtXYrFPvf4h6P9tk Vvvbr+BrKz1MDgA2q9LUBMcwlF9mjQNMnf3g1L94tuxm4YM5+kf4h3O1OMV3vebVxi0O 3dGw==; 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=1780387865; x=1780992665; 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=M1/MDrT406rDGZW+YJWqc8+pP5fPEXWc4vszlwdchOs=; b=jR0dzsce9AdLbfcQIKBm97vm8OLs/ftxkYxSfSJbEruM8JtAh3Oh6aY3zlQuc9tp09 iMYmttPs0SqMevs5UdX6XhcmGbv5JFefTojpCzPUVyDvLbrlTESxaSTUDlHOcA41QLYs Ju4Rmiv7ZMB7Rds6NNhF4qpbM6N8GCKMwnkywnJEIoqyHWSGZZqNvdgMhBpH2Lrj+57p +3yWgdtr5Zprhei9cXy7Vhv41Z3NY3A13jUJCuCLrJz8uw8Q6BDLGu9Vnz3o/wi9MLRu LO7HmMA+nRZiYzTEV9oP9yB1Xyc7JmW9MBlPw4qLIx8KLyxONbzSWAfia/97lNidzbIE kDeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780387865; x=1780992665; 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=M1/MDrT406rDGZW+YJWqc8+pP5fPEXWc4vszlwdchOs=; b=mb0hdSve1kY/4mjgSiyoJbDx1SHCuVrvB2DIlcXFKCT9YxE8wr9Zw+otj6364WOfqf E20uAunu86swoMjbzYDyO8OOstqsOBICUGmwhXmhKKNS5+l9lG1IzJSoRGNvEQSPDDx1 AP2vdTw+Awv+wNP3fn4HBTBJmIMjNNj/UOJCMALpefa95c7RVb38UyfAw4NOAVzCX19q wGCsNqqi/UI/Ubwu4PRMbO5jxyF1q34Akjw+fD/Chj7TiwuPeO1/Rmmo17ULgnLs4hjR hRpOQ3ZmNYayUmQotknFoLXOO+3DEHxlZp88EUh+BuxAyDtlW7X2T67UzfVBPavJQmOF 5xRg== X-Forwarded-Encrypted: i=1; AFNElJ8n58PLAu6ew33FiZXpdtXORY7cqZzrwxvVP+Ue3Fpjl66z0sxopB5OPVIEY0WNa+wE4sdJ2/w7MpDLw93C@lists.postgresql.org X-Gm-Message-State: AOJu0YybSANhTWSmQanrVp/sxRfmxrkB3x7GcLS+yz++CM+9bbreQnJn +5ldgDQpP7ffiicjmPTIfJFhLwWBSSi40Woi0cNc715InhEga0gORwjr+rKhz91cApcJChVUFFW 5MQ8bWnntXE1IzeMAsNxj7Dp9+LQQ0DU= X-Gm-Gg: Acq92OGH5fOgCD0Cao5w5a5MhDl1Tx7uyQaG4oAnojyxn+eLI/D+TJXO43pz/TfR6mV ogV3X2jeKS0lEqPsUbSKzeH6jy4NurD/RCgMihwoIkYXko+gnJCmp/9B+Mqzwn1/xr87JpmJbt8 Pb4PbMfA1vl4Ew7zJNvBX93gXjeoEkLyKQywNyRHzsq68BwngWAg3zHFg0c2YhLE1TYmLIBK6d6 9qfBMYfg7SEEHUa0nCXHeekNz2xSX97CeJ9gIChSxf+vmcmQQfjbpc6dIm8u77irs2MGZf3Cf+z 9XSDZNXWGPrX5vAHLQ== X-Received: by 2002:ac8:5781:0:b0:517:2a6b:d556 with SMTP id d75a77b69052e-5173a6e3f01mr209485201cf.7.1780387864841; Tue, 02 Jun 2026 01:11:04 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Tue, 2 Jun 2026 18:10:35 +1000 X-Gm-Features: AVHnY4KRcLOSVJz44hxl7hExpLpAnzqH2M97nOSLTwdvFBdf0kxLq7Ruee28QWo Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Dilip Kumar Cc: Nisha Moond , Amit Kapila , vignesh C , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Dilip. Some minor review comments for patch v44-0001. ====== src/backend/catalog/aclchk.c pg_class_aclmask_ext: 1. + /* + * For conflict log tables, allow non-superusers to perform + * DELETE and TRUNCATE for cleanup and maintenance. While still + * restricting INSERT, UPDATE, and USAGE. + */ /and maintenance. While still/and maintenance, while still/ ====== src/backend/catalog/heap.c heap_create: 2. + if (IsConflictLogTableNamespace(relnamespace)) + ereport(ERROR, + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied to create \"%s.%s\"", + get_namespace_name(relnamespace), relname), + errdetail("Conflict schema modifications are currently disallowed."))); This should use the new function to get the schema-qualified relname, and substitute into "%s" instead of "%s.%s". ====== src/backend/commands/subscriptioncmds.c CreateSubscription: 3. + /* + * Establish an internal dependency between conflict log table and + * subscription. + * + * We use DEPENDENCY_INTERNAL to signify that the table's lifecycle is + * strictly tied to the subscription, similar to how a TOAST table relates + * to its main table or a sequence relates to an identity column. + * + * This ensures the conflict log table is automatically reaped during a + * DROP SUBSCRIPTION via performDeletion(). + */ /between conflict log table and subscription./between the conflict log table and the subscription./ ====== Kind Regards, Peter Smith. Fujitsu Australia