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 1wSPQL-003AG0-2X for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 01:20:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSPQJ-00AdGP-2i for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 01:20:36 +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 1wSPQJ-00AdGG-1g for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 01:20:36 +0000 Received: from mail-qt1-x82f.google.com ([2607:f8b0:4864:20::82f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSPQI-00000001mV8-1D0U for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 01:20:35 +0000 Received: by mail-qt1-x82f.google.com with SMTP id d75a77b69052e-516c96d0cdeso57505961cf.1 for ; Wed, 27 May 2026 18:20:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779931232; cv=none; d=google.com; s=arc-20240605; b=QprtVg+q85qgID+K9kgujklDoxyfS0HZBzjmQ79CY7mW3/iMVGdvdLfVMNsfAdrFtu EE7DDAHSHPnrLdevLZV4WhhfGu+mNcUaje+X8D+amNpjPsRrLmiKiyUJPUZmjR6RNVVl CigJd3uxQbBgx4Zv9hOgsE77C5NxVO2bc6Z1xazmO+ayQkd57Tf7tR5f2HsWwfdgZz+1 /TgHKsA5CU4VSLewR037mOGdgxFoK4nS451quLFGf+cN7BXmzuYd7bJxTsDjAd0nJg8p LOM9XUW71ZcVI5gcfTDik3n+XBAN71qzzgisXeIKPSxo7yry9RVHfnKxSgoBop2Vivk5 d7IQ== 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=ixwIsMEf06aJmX91Z69kcCra8+1O6ivirj4vf9A8c/g=; fh=JqRGnrLyVd2UwAmVdILMgSLAHh90Kj1cIriWpjRBlSQ=; b=etmDHvM7A/0MWXHq5IygcCdtDZVYZr8htqdQFUQxhpxX72G30dX+gw+bkXxktJ3HVF p6JSAzLo474t/MrVknett9qe5B/1TnOuK5UFjJDS10LqS38lmpP1Q9Dt5sw/1fMK5WCP 6SW2VMR4kpCzGfrwUMPd31c27R9p4ez0HJWgLMRhXvh5KkCfN+UnDEGikbxehqm4C6z5 ksNkL/zTmDOStGHEpu/Q3fllmh74jWcwdPsQF0Glj17SNIuK5tex5WYHj2ihIGLTOE0o wA1n8vxNFHxFgKAcnaNfRV3nTBBWrX9xUM/xrtGOmZdSECWrxSIKvIV5vaG+vV9kYUa0 YdTA==; 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=1779931232; x=1780536032; 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=ixwIsMEf06aJmX91Z69kcCra8+1O6ivirj4vf9A8c/g=; b=X9UdlJCKrSijQLNNemMkDPI+0pEbKdfV3VHYiIF+v57B17FXz53mcRQ/8yXSVMnt4Z ypG+vh7JS5EpIdYQzMu45eqwQVU7aWXUa/1G9nPkr5iHE99MuNE40LkNFcG1azum/8Ow p0/NcPas5UtHwp0GIZoy1ViYAivM55MAPXXjj1lnwGUfx953g/egHQTqSHoe1jiPRH1e GeaWf5ZXwah51gozYNspFeSd5N/HX/Zs/Gg7lzTBR4bpY/x/4V9lKmo+cR7lrjmu4+1M hlvRbGT2UppqfqKQbLhrgCNfaajbPJ/nZIW7/m3o09yV/Jidce5/RXoYD3AHArZz1Yop FCqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779931232; x=1780536032; 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=ixwIsMEf06aJmX91Z69kcCra8+1O6ivirj4vf9A8c/g=; b=O3vJ1PHnP42fKatpdywxK+WOsphxC1Za6VgW6+Fd9FEpY9F95VAyKJLCGGFEHuWUPL LDGlqjPwAJL835qFZAg27ZS0Mj8bVynQF9CpP1sAaYU1T4IWjnIVWlwnMcqOEHgURw75 K6xqqCDFCl2Jvxw/mxbn7uHLXEXlVXVnU+HEkvwipKJBadS4W4xWPTJ10G7IoN2/nmZB ibuzd3vdlA/StIZPMz4BAYXm/ONXPMQ7oTkO0FODTVkkkRXc6hDW1A5llfIGfspkKR9S HBzBP4kGZU36kw/CWID4c7cbjUsSHDVsFmXaOetxwFltLZ4/+Ls+0nObAtXLbq4HJFtV 3EyA== X-Forwarded-Encrypted: i=1; AFNElJ8OVv6rkUQwfuehyNd1uOull30/PIsAVn4X0HEYn0/q8z0QoVoumz7Q9plnwl4U0159+Bv2dtyfDRTJsCOG@lists.postgresql.org X-Gm-Message-State: AOJu0YxLjwUHgqQJ3bUpGegUUSMbRfU8khMzDrVYDxwfK52eZls6NNfU H5tcbcZ6TInQ3nikIk581FMi9NK6GeElEEeb60nJniXEydRL0aK8ttTAZpxnP8tOU26KxL+GyUQ hSIXXEYvFadNDiipYRaTPg0H2xxs0Mzw= X-Gm-Gg: Acq92OFm09xnxiQPg5KT43WaCLNCWsNBZBhjEHk/sWaYBNHlEMPafby0rFzPXg7aGa9 LVGiNWcYjCb67yM9L0Y0VTTzxuftEvJWXPaW7RnPwRjVDT+WEpI9OZ/sholf+WFakgd4A86bGUZ XJPDYQ5dsGpn4zMAH2fY1pWyfdMPAJoKfV7Fw9ttuh60NKkgtvyk+bO2QiaQ6E74jGEah6kg2Xs KqJLb1c7tMLmy6lumlZorEvTj2jFwt80nTUrSilLhoOhyYJ8M3EvOOHrbjlwJ8fbWVgTMvw8mf1 lTdvU0LShml3j5h0Bg== X-Received: by 2002:ac8:59d5:0:b0:50e:a1ab:67e4 with SMTP id d75a77b69052e-516d461ba04mr346765401cf.40.1779931232056; Wed, 27 May 2026 18:20:32 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Thu, 28 May 2026 11:20:03 +1000 X-Gm-Features: AVHnY4Im96P82GygpfBS7U87wM0rJtybWmjwAFRNDHOcqQutmnGn82SIWmAJ-rc Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: vignesh C Cc: shveta malik , Nisha Moond , Dilip Kumar , Amit Kapila , 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 Vignesh. Here are some review comments for the v41-0008/9 combined (docs) patch. ====== doc/src/sgml/ddl.sgml (5.11.6. The Conflict Schema) 1. + + Similarly, the pg_conflict schema (sometimes referred to + as the conflict schema) contains system managed + conflict log tables used for logical replication conflict tracking. These + tables are created and maintained by the system and are not intended for + direct user manipulation. Unlike pg_catalog, the + pg_catalog schema is not implicitly included in the + search path, so objects within it must be referenced explicitly or by + adjusting the search path. + 1a. /Similarly, the/The/ ~ 1b. IMO don't say "sometimes". Also, case. /conflict schema/Conflict schema/ ~ 1c. "conflict log tables" -- I think it will be helpful if this includes a link to "29.8.2. Table-based logging #". ~ 1d. "Unlike pg_catalog, the pg_catalog schema..." typo. That 2nd pg_catalog should say pg_conflict. ====== doc/src/sgml/glossary.sgml 2. + + conflict schema + + + The pg_conflict schema that contains system-managed + conflict log tables for logical replication. These tables are created + and maintained automatically by the system and are not intended for + direct user manipulation. See . + + + + case. /conflict schema/Conflict schema/ ====== doc/src/sgml/logical-replication.sgml (29.2. Subscription) 3. + automatically manages a dedicated conflict log table, + which is created an dropped along with the subscription. This significantly + improves post-mortem analysis and operational visibility of the replication + setup. typo. /created an dropped/created and dropped/ ~~~ (29.8.2. Table-based logging) 4. + a dedicated conflict log table will be automatically created. This table is + created in the pg_conflict namespace. The name of the Instead of "pg_conflict namespace", this should now say "Conflict schema" and have a link to that new docs section. ====== doc/src/sgml/ref/create_subscription.sgml (Parameters - conflict_log_destination) 5. + named pg_conflict_log_for_subid_<subid> + in the pg_conflict schema. This allows for easy Same as review comment #4. Instead of "pg_conflict schema", this should now say "Conflict schema" and have a link to that new docs section. ====== Kind Regards, Peter Smith. Fujitsu Australia