Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m5fPj-0001Sw-39 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jul 2021 02:23:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1m5fPg-0002gl-KI for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jul 2021 02:23:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m5fPg-0002gc-CQ for pgsql-hackers@lists.postgresql.org; Tue, 20 Jul 2021 02:23:16 +0000 Received: from new3-smtp.messagingengine.com ([66.111.4.229]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m5fPd-0007zu-03 for pgsql-hackers@lists.postgresql.org; Tue, 20 Jul 2021 02:23:15 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id 11A7A580A21; Mon, 19 Jul 2021 22:23:12 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Mon, 19 Jul 2021 22:23:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=M9YQol/w5YfZxW+rVJ3UONiVPNvLWXPKN9JTwtGnt0o=; b=v2zKBP07 f0+boU/We+oI2iGCbTaEO7in+DX30W1obdF3ByPs5x7Bqv4kh/Cg3TrkGghxMPyw P0kBs6lotJ0Gm59rN8cPvmkC9v8ycCpngtEvNUd9gzGfC0MJpm8X/yYOhPqbt4aL 0E4TKRj9YDaxzOf3ZLxl7aws+pSUwuEQ5LSS9Jd3XYrXzyaOkLdLMmIWut5hxX0X BPXVY0pJsKYx9BCH3ebppjI0RkA6fZZazV/16Ny30PvQYEurq9Hii1dnS0yy1465 mimV3OBM3jtaODkIXy7iZc+XcViQG1DsiQYHRZxwTvdDDh0vBiOLnAmOIJQrevJR Ya4c9KEXpwIkjA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrfedugdehudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpeffhffvuffkgggtugfgjgesthekredttddtjeenucfhrhhomheptehlvhgrrhho ucfjvghrrhgvrhgruceorghlvhhhvghrrhgvsegrlhhvhhdrnhhoqdhiphdrohhrgheqne cuggftrfgrthhtvghrnhepudejveejffejveduudetvdekieeuiedtvdeileefkeevjedu feeguedvjefhueelnecuffhomhgrihhnpegvnhhtvghrphhrihhsvggusgdrtghomhenuc evlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhvhhgv rhhrvgesrghlvhhhrdhnohdqihhprdhorhhg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 19 Jul 2021 22:23:10 -0400 (EDT) Received: by perhan.alvh.no-ip.org (Postfix, from userid 1000) id 633392A0803; Mon, 19 Jul 2021 22:23:07 -0400 (-04) Date: Mon, 19 Jul 2021 22:23:07 -0400 From: Alvaro Herrera To: Tomas Vondra Cc: Dilip Kumar , Amit Kapila , Greg Nancarrow , Euler Taveira , Peter Smith , Rahila Syed , Peter Eisentraut , =?utf-8?B?w5ZuZGVyIEthbGFjxLE=?= , japin , Michael Paquier , David Steele , Craig Ringer , Tomas Vondra , Amit Langote , PostgreSQL Hackers Subject: Re: row filtering for logical replication Message-ID: <202107200223.j7ban5mbxsjo@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2021-Jul-19, Tomas Vondra wrote: > I have a feeling it's getting overly complicated, to the extent that > it'll be hard to explain to users and reason about. I don't think > there's a "perfect" solution for cases when the filter expression gives > different answers for old/new row - it'll always be surprising for some > users :-( > > So maybe the best thing is to stick to the simple approach already used > e.g. by pglogical, which simply user the new row when available (insert, > update) and old one for deletes. OK, no objection to that plan. -- Álvaro Herrera 39°49'30"S 73°17'W — https://www.EnterpriseDB.com/ "No es bueno caminar con un hombre muerto"