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 1my7HO-0007D9-IE for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Dec 2021 07:03:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1my7HN-0003DD-5k for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Dec 2021 07:03:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1my7HM-0003D4-Re for pgsql-hackers@lists.postgresql.org; Fri, 17 Dec 2021 07:03:44 +0000 Received: from out2-smtp.messagingengine.com ([66.111.4.26]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1my7HF-0003CP-V8 for pgsql-hackers@postgresql.org; Fri, 17 Dec 2021 07:03:44 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id DA2365C01AD; Fri, 17 Dec 2021 02:03:35 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 17 Dec 2021 02:03:35 -0500 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:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=WgxXDJzMHIAXQDxOUTRvgefV/Fot1bvKULVvJti2x +Y=; b=S1oUeCbbd2bHAVWFqOCRMp8Y377Zus0mDX7BZa0Lw88Xog5Yr6nHbo5Mw 3cX3Y+pq2IRgKQFBHBfIQw/O60VR3Ju+CAkBy1LHn7CsyLYJaIxCqhpgd7bl1ROP Awns/OOtO0+7HFyezAwXSbSPq2fVxLiEp98Gc1dROrNPtbA1z3zDFIXy1CVID7EE RcngnI65mWAsksS8xOJ0JEKwXCqc1WgYFZwM8EkZLdSWjunfv7LRfpbJdXhEsTjY OLLqrGOZqidW4HGhwJKTMqHThnPDKX5apB/X5vlgf/FdghWoOqOEyJPJvtL8slqn ldMiSNaeF6XtD2RZmyYxuCsTUlMQQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrleehgddutdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthejredttdefjeenucfhrhhomheprfgvthgv rhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvg hrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvghrnhepfeejgeehteeuhfevvedu leeufedtjeetiefftedvudfhtdeifefgueettdevgefgnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhht segvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 17 Dec 2021 02:03:34 -0500 (EST) Message-ID: <1f1bee97-4a8e-c5a1-3b96-82d389b34480@enterprisedb.com> Date: Fri, 17 Dec 2021 08:03:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: Re: Column Filtering in Logical Replication Content-Language: en-US To: Amit Kapila , Alvaro Herrera Cc: Tomas Vondra , Rahila Syed , Peter Smith , PostgreSQL-development References: <202112141935.3j2lva3je7o6@alvherre.pgsql> From: Peter Eisentraut In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 17.12.21 05:47, Amit Kapila wrote: > I think in the above sentence, you mean to say "dropped from the > publication". So, IIUC, you are proposing that if one drops a column > that was part of the column list of a relation in a publication, an > error will be raised. Also, if the user specifies CASCADE in Alter > Table ... Drop Column, then we drop the relation from publication. Is > that right? BTW, this is somewhat on the lines of what row_filter > patch is also doing where if the user drops the column that was part > of row_filter for a relation in publication, we give an error and if > the user tries to drop the column with CASCADE then the relation is > removed from the publication. That looks correct. Consider how triggers behave: Dropping a column that a trigger uses (either in UPDATE OF or a WHEN condition) errors with RESTRICT and drops the trigger with CASCADE.