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 1nezpT-0000QO-0m for pgsql-hackers@arkaria.postgresql.org; Thu, 14 Apr 2022 13:48:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nezpR-00066Y-Sn for pgsql-hackers@arkaria.postgresql.org; Thu, 14 Apr 2022 13:48:09 +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 1nezpQ-000668-Ss for pgsql-hackers@lists.postgresql.org; Thu, 14 Apr 2022 13:48:09 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nezpL-00038y-Ow for pgsql-hackers@lists.postgresql.org; Thu, 14 Apr 2022 13:48:06 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 20CBC32025A3; Thu, 14 Apr 2022 09:48:01 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Thu, 14 Apr 2022 09:48:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1649944080; x=1650030480; bh=SASD4KkLQudjMqRougM+GMio1Yfo WGfoDD0iVFimEe0=; b=sTLG2J2zix5cFVTFzAyAUvEV5iBHMBx8pPPhMHYpZiW+ yMYe4omW5zWY9oMgRs3Hi/+v0ezkoeg0VXW2ZO2LRQx6q1NeAZjOFMWUToPbZhLz TJmyiknQ4ljTAaqiSE67VZM3pp2IzWAlyxaP4xY/u1lR+F5w1D+K6v7atYZDfc6n Nuq/aoAp9npznhR89/sk8Ny0Zh+aOCdBPYaOas9S3c0dK5xZHJxkxJsmCtqLpxD4 gJ7jWvLIPpHxVxRqcNPJbggzs3wd5hdF790er64oGHF/2wmhMSXpk2MRxjrndjvF yLQLw4bezQkTVUPlofd8OgYrpRHbvMo8QpmKED02Wg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudelfedgieelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthejredttdefjeenucfhrhhomheprfgvthgv rhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvg hrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvghrnhepfeejgeehteeuhfevvedu leeufedtjeetiefftedvudfhtdeifefgueettdevgefgnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhht segvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 14 Apr 2022 09:47:59 -0400 (EDT) Message-ID: Date: Thu, 14 Apr 2022 15:47:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: Skipping schema changes in publication Content-Language: en-US To: vignesh C , PostgreSQL Hackers References: 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 12.04.22 08:23, vignesh C wrote: > I have also included the implementation for skipping a few tables from > all tables publication, the 0002 patch has the implementation for the > same. > This feature is helpful for use cases where the user wants to > subscribe to all the changes except for the changes present in a few > tables. > Ex: > CREATE PUBLICATION pub1 FOR ALL TABLES SKIP TABLE t1,t2; > OR > ALTER PUBLICATION pub1 ADD SKIP TABLE t1,t2; We have already allocated the "skip" terminology for skipping transactions, which is a dynamic run-time action. We are also using the term "skip" elsewhere to skip locked rows, which is similarly a run-time action. I think it would be confusing to use the term SKIP for DDL construction. Let's find another term like "omit", "except", etc. I would also think about this in broader terms. For example, sometimes people want features like "all columns except these" in certain places. The syntax for those things should be similar. That said, I'm not sure this feature is worth the trouble. If this is useful, what about "whole database except these schemas"? What about "create this database from this template except these schemas". This could get out of hand. I think we should encourage users to group their object the way they want and not offer these complicated negative selection mechanisms.