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 1vlQ0h-00Bcav-1K for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Jan 2026 11:16:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vlQ0g-007yyW-1F for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Jan 2026 11:16:26 +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 1vlQ0g-007yyJ-07 for pgsql-hackers@lists.postgresql.org; Thu, 29 Jan 2026 11:16:26 +0000 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vlQ0e-0000000139G-0Nyt for pgsql-hackers@lists.postgresql.org; Thu, 29 Jan 2026 11:16:26 +0000 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-8217f2ad01eso732162b3a.2 for ; Thu, 29 Jan 2026 03:16:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769685382; cv=none; d=google.com; s=arc-20240605; b=la9Q6W3uLwURUmUalnk+Em458BeOcH7As9q1H4D32aobmSvdke62hhn8ay6AfOJ/F4 9Qzsr+PljC8kmuH97pMCQKNhwBl5Ow44wEPIASVWnJh+IPm6VoH6bDGZ4pMrYsN47mJ/ dU5dSI1dpcH1/fMkaxTBmtH1zPSS53gQ1qUXUsdo9e/AZ31zL1qyUEMlqzD8CY4IWsZA WB3ReDvVt3mqFLOsMiBI1LN/8rxgRmrdHZJPLod1SDQfXrlsRY/1hDzY1lTsASurLnS4 ztCccCOgah0sWhr5m4cpNc3DB74w5Xn+PJIT8o1a4GpJ1X3QwqqyZ8t+xUGiv+cPa6O9 EmvA== 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=EjEv1nMrPiv/SnRxFZ1n1mok8hwnrP+Medt7O7X5JcI=; fh=ObNoIcjHRP37zzAR63W4HycjU6u3asX9qof3sKAamTE=; b=R6KgfT2pYFuQbUT/6APmsoCyJhJ4xTCWAT3eDHRzQW/I3CiZAuUbnglRHQ1hP4Av7J 8hVjHdwR6hijCfcPukWPkTjgORoqiayjFoFnhUQ/AO2lQUXnAnfUrGpwti6rA41r4hz9 iR83fyGtvtNBC7WevapkCS6/IZABdpDyKMTcVsjUwD3phuUKrTbJpw0i1JYu/Tg2c0YI onY/XL+0u30gZuP0fNlvDhig1BS3yifbExkSx+VwcvRad6xanYlFouBvfHM9q89Pn2cE mgwTNRIr9iSHvl6FOuA5KGePEzm14Ju8+h2AtYioWa5cDdmTpZMYGfB/A1zBoCJY6WqF zR+w==; 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=20230601; t=1769685382; x=1770290182; 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=EjEv1nMrPiv/SnRxFZ1n1mok8hwnrP+Medt7O7X5JcI=; b=F1Eq6LbtzAHOpUXpEKBLNtvFMUxWeGaHSlWb0lmKz0tP8vjH4QfbnYgnwzG5FzeeDU rg3fTZIQCwETb87kWqNO+RCGGiE66faD5qdECZ8WTY41a/r6ARp0ACqXTSyaVq0Vbajo nGSD4Q8gqhltbz7iFDsqgjxglztf54q11kEcv+n4ytuyHNGGujUa+GeQ9H0UuSk/cgyd IVwNe70b+ihuSGa+Dmn/V8Eoj3DAMyUmqt0aSiz7BMQxXCKp+a/TCO6UoEtWVfgTOxqT x0lZtcbVQq9NOlIsPFYUhNZsIr7vvYWDJge66gNaDYcEcxQv9ZNRKHmxMlRGClEGVbh2 EQaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769685382; x=1770290182; 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=EjEv1nMrPiv/SnRxFZ1n1mok8hwnrP+Medt7O7X5JcI=; b=sHG5hjNawm9Jucf1nCq+/VrqOT+bLB9DPtbusfPn4XFMZXhsUvgo4oew+5eYiA+Xd0 o2Qg/5G3gMsfVbQ3ELZIun4G57lb9O+hjJky0+pvG/LdntzYy/KgD2dqg2uyXVW5MXM/ Z5nq+HNh23MlwVOGAhKnu4kf5gC1Ha9FPrzv52NJ7IhNlTXfryYpsqSue5NWGxOdRPuh LfgdaWLahGzUQh7MneAARxFyRORHBt+pFusIm+H7k9zQrcn18DnAyM2wERQv+5r0rIsq 6bFavQhpO0+ivkrk5pEVgj5MtLpPP1jQrBAF+eV9QYVG6mqRjPzOJ8swVq4AsG2IQS7i jBiw== X-Forwarded-Encrypted: i=1; AJvYcCX1/dXPtFdNvmtrjwKN2QUyGMzHYi9uwu4jqVDDZRHxJR5oJiK2gLipeKL6jl0ooOtq6DDKTL0hJlwP/2Em@lists.postgresql.org X-Gm-Message-State: AOJu0YzwS+F6JYOgsQW8lDcNIVm8gcSjlAcpXim6pRvPvPim49NFkzae InwSV7xw6nYDlOlZy2cFFxtvAhUNfa4iAhQ1z9rZuZZn4ITIoHBdTAbR1dkNkCMi6ojvlN4J50J 0NRJG9hOj8p8zq/8zsJzUByb949wUx4A= X-Gm-Gg: AZuq6aIayvSzy47mCw5y+jLLRISqymscDORXZI0a7i0rJRKwzWquIVjmp5pUIcAyl+o anWzfnRgdWl78vGKy/lF2efpyrXtxlgea1ALF/9tOBrwQsvRCXV/ZP99YYR8HcU3su0fP79eOBg AQfqRT9hR9+aqYvXcDOnShekq2hKN72yqgsp+Nts+YrUKX6QDoaqRgDqXmzW2fLVQXsHC8Kpoi9 2GFYo4CRZQ9xA4jgrZgVAxfr5e5++y9KMtxUpVFlbq8uu/f0zh43Xr2bu2r84PCPjGbYuhpctPl 5CMp88UzwCElyt5s5to3mW2mdyIXV6JL3/7w/w== X-Received: by 2002:a05:6a21:4c85:b0:34e:8864:793c with SMTP id adf61e73a8af0-38ec62dde54mr8683126637.8.1769685382101; Thu, 29 Jan 2026 03:16:22 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Thu, 29 Jan 2026 16:46:10 +0530 X-Gm-Features: AZwV_QhGSCQvsZGjgHGfd69MkpVGEi8X62FSDBVrQ89yrtj4iWtu522jeE-r480 Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Dilip Kumar Cc: Peter Smith , vignesh C , Amit Kapila , 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 Dilip, I was testing patch002, few observations: 1) remote_commit_ts is '2026-01-29 14:38:02.777599+05:30' while local_conflicts.commit_ts is of format '2026-01-29T14:37:35.805819+05:30' i.e. a 'T' to separate date and time in local-commit_ts case. IIUC, this is the expected (standard) way for timestamps to be in json-format. Can you please confirm? 2) Differences between LOG and TABLE: a) In LOG, the column names are not included in the remote or local tuples, whereas in the TABLE, they are. For example: LOG: Could not apply remote change: remote row (2, 3, 4) TABLE: remote_tuple: {"a":2,"b":3,"c":4} b) remote_commit_ts is not recorded in LOG, but it is included in the TABLE= . IMO, both of these differences are okay as TABLE is expected to store (or can store) more detailed information. I=E2=80=99m just noting these her= e for others=E2=80=99 input. Let me know your thoughts. 3) If we look at the table overall, the name 'local_conflicts' can be a bit misleading. This column actually stores the details about local rows involved in a conflict, rather than describing the conflict itself. See example below. A clearer name might be local_data, local_tuples_data, or local_tuples_detail. Thoughts? local_conflicts for one update_exists: {"{\"xid\":\"791\",\"commit_ts\":\"2026-01-29T14:37:35.805819+05:30\",\"ori= gin\":null,\"key\":{\"i\":40},\"tuple\":{\"i\":40,\"j\":10}}"} ~~ patch002 works well in my testing done so far. thanks Shveta