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 1w4ZLl-002Jyk-2B for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 07:05:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4ZLk-00G3av-0O for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 07:05:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4ZLj-00G3am-29 for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 07:05:20 +0000 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4ZLi-00000000aHu-108q for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 07:05:19 +0000 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2b0586d5bb8so27571945ad.3 for ; Mon, 23 Mar 2026 00:05:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774249517; cv=none; d=google.com; s=arc-20240605; b=SjUR90nhcHlq1/lSO0d2DlSCzzzL+WihvaeE8Kn2rojUKMpXmyaGlbUmuj/EKGR154 3dfEfdyjP1WiomfO8r2fHyhhyEatPriQxB2WzAjhN9Xrasr1+DcYp4/yatlBaKLunP7X lPAOyxzrzuwWtdduNrcDADXkurQMA/+1L3Yf02G0o7P47YZSOQHgONmSkK4X7RnpiNqy acz131GnOVxvEgrmMTg5vjLtnYu0WLQ8OCt/oKO1/OgZ8TfEP+GwieCsNhIzFLgGtV10 eXofetVGpez4ao4NFba7++ndTTNt4ExdLA2Np4243+av6hXfsnfgS+9oTsrUnntrWspy +8yQ== 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=J1GCJ77OOFTobcZodAj3YAtrWYpAxZeJM8j2Bm06Uuk=; fh=TG016/rBvYe6BCcgdcjvcIxZoC+IX2uhELJ3dsvRnOg=; b=jKD9KRxnTRqRIJKP96J/m4hytfO1po9dyyRn0I1BOUGibDL5GNZciitA6I2RnVJeMQ uqf8ceIfvPjWZ+0sugsDii14rnmEk5HZZcwEVnF6FcPXsbECb6HNtGePLb/CdPN+PkZ7 Y2JLPsu0Qv1hRu8hEbWc01WPALtd37iXAgpYEO9eF/ZGVKHJwvpNggyXPlXU2MaS2kJo kw6Dy5dOFyFgRQ1x+ncwntQZPfL6pFvKaS4oYKoQDJ8Ua66OHkHaCrVsz1AHaXDVBKxG xyKUmZJhCj7yL0PD7jMv89RvoVC5Tm6geKe40G2Sov5ZsVx4wEhh8UrPzJ3wqmmaE5Y9 Wapg==; 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=1774249517; x=1774854317; 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=J1GCJ77OOFTobcZodAj3YAtrWYpAxZeJM8j2Bm06Uuk=; b=T7oSoeyRETlKUGuUgI4FwdtxS4D8p2SyB/gF6yDO9BjNxxQlh28CH+drOxtfTnEptx qIAS4/quLxNvxSA6JZDy2+M4dVoUDChck1VBRnnto3mTRVBusLz0XnCp0mQVA57fME2h o9Nm/E4tkpDmGiFFQKp3w5ksngIjH9JrEHM5anKBrrE/XkC5gf8/wlRFd2UHtAcGEDPN 8hWdPjfSAbaRyGupoSD1s2wciNVx48SYCpMiGe5ZX3ldDOkDuN8slCzGQ2iYPlm4HU/w wcm5M+HiYs3efGTTIKzFiY5Gj/as1PsL46dL3s+/cU9M9Ul6OLCT22QwTF6VIIhZRQHZ pW+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774249517; x=1774854317; 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=J1GCJ77OOFTobcZodAj3YAtrWYpAxZeJM8j2Bm06Uuk=; b=OrZdDfa4bbRo/PuMNRkGr95rL6ok+KqP1BMSZQEiqReZzcywvZaWyAIpRo/+wHUq7L KTTZY8atXGiNpkNmb8pcvJimq1QhpHBCMUpOmhl+vwDmUrXwQ90NWbqhMRobJ1mEtSIf KosR8ce7NUBUoMTn/SPnoZ+QoNTyWWpNPwc8ErnVL+s4HHwYkQDiPKvs9ooHqc3iTtOU IPmn4dqKQMd1TyjxfXvYWVeGb7pnuhIy97AKlAuKMAZBtLsutk0xoe2Am/jtGPXIZLLk 93lhN02ij21GGlbDNoW7uOJEeR2pOicFlSD6bgvXa0GUGtfAhmDOFlmNlxEyxdJZAnmk wHpA== X-Forwarded-Encrypted: i=1; AJvYcCX80IPIxfeP+MJI9NSZevLrOJE9k/ArPByU+bMWF6S25eKDzOHIFFVG+G7bIXefFNygCETAxPpcov/FXXEb@lists.postgresql.org X-Gm-Message-State: AOJu0Yw+QLipf4FR7Iue1gnMcPThy2njsF6KnQAnJertf6dPhzChil8K jkTiCV+qAG5ELdvJ3XuSaYqadLG5PkZmRVn27wJZ6LDfmNXX41Esl5n5nl5W9thK0AstdBb3Yl2 y69PZSxm6N8hreorlStqLHDoNiG6jbPg= X-Gm-Gg: ATEYQzwEiDlvEsCmHoSJabT8H2W34LaqG7wxRkOtHdledRuJTLLrg6vqW/ZIH48/Mu+ oPcusO3vc7RUrcp6GByfsxcueKwcwhJYloVj/bh3Dql49exR3dg1zVYBzdbCuUR8f5oxpD/dGXT qsyiXZdi/RbYJaeXIo4py284MMJpbAtXI5p6NnnktHD+1IPSQAOW0SKmDUWq3xy3em8sY8eJ9ON 0dcmT2hnfk/ktA0xqXhsfXYm/HKzsVlYLb3fbB4aKIa3h3s33R6AsoL6JuIGY1xK2UjIycsBqPt k0np9pE9dXMUwdjIxQDQT5N+udTW45/AoUn0mLDXXJP6aHI2u9NxcQ== X-Received: by 2002:a17:902:cec2:b0:2b0:5d17:6de with SMTP id d9443c01a7336-2b0827de1eamr102894915ad.50.1774249517246; Mon, 23 Mar 2026 00:05:17 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Mon, 23 Mar 2026 12:35:02 +0530 X-Gm-Features: AaiRm52DpUl4ELnBEVmhW8NlwUQK2ZTofg-oz1EulwnM7HnjD2uDWdaZE3ptCy4 Message-ID: Subject: Re: Skipping schema changes in publication To: Amit Kapila Cc: vignesh C , Peter Smith , Masahiko Sawada , "Hayato Kuroda (Fujitsu)" , Shlok Kyal , Nisha Moond , Ashutosh Sharma , "David G. Johnston" , Dilip Kumar , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , 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 I would like to summarize the discussion/feedback for the EXCEPT syntax implemented in [1]. 1) The currently implemented syntax is ([1]): CREATE PUBLICATION pub FOR ALL TABLES EXCEPT TABLE (a, b, c); There were concerns about why the TABLE keyword and the parentheses '()' are required. These have been answered in [2]. Please review the discussion there. 2) Another feedback on current syntax was to move the TABLE keyword inside the parentheses: CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE t1, TABLE t2, TABLES IN SCHEMA s1); CREATE PUBLICATION pub FOR TABLES IN SCHEMA s1 EXCEPT (TABLE t1, TABLE t2), TABLE t3; While this approach is workable, a downside is the repeated use of the TABLE keyword inside the parentheses, which can become verbose. But it can then be optimized to have: CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE t1, t2, t3); This could be extended further in the future: CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE t1, t2, TABLES IN SCHEMA s1, s2); This approach gives users flexibility to mix styles, for example: EXCEPT (TABLE t1, TABLE t2, TABLE t3) EXCEPT (TABLE t1, t2, t3) EXCEPT (TABLE t1, t2, TABLE t3) EXCEPT (TABLE t1, TABLES IN SCHEMA s1, s2, TABLE t2, t3) While flexible, this can reduce clarity due to mixed styles, making the statement harder to read. If extended further, the syntax could evolve into something like: CREATE PUBLICATION pub1 FOR ALL TABLES EXCEPT (TABLE t1, t2, TABLES IN SCHEMA s1, s2), ALL SEQUENCES EXCEPT (SEQUENCE s1); At this point, one might also question why not allow something like: FOR ALL (TABLES, SEQUENCES). Additionally, this shows a potential drift toward less structured syntax. Instead, with the syntax already implemented in [1], its future extension would look like: CREATE PUBLICATION pub1 FOR ALL TABLES EXCEPT TABLE (t1, t2), EXCEPT TABLES IN SCHEMA (s1, s2), ALL SEQUENCES EXCEPT SEQUENCE (seq1, seq2); Although slightly more verbose, this approach keeps each clause self-contained and explicit. The meaning of each part is determined locally, rather than depending on elements appearing far in the statement. The current syntax in [1] is simple and easy to follow. We have retained the current implementation for now, while remaining open to further discussion and suggestions. [1]: https://www.postgresql.org/message-id/CALDaNm2-Ob9qPR%2BvqUSVMkxYO8RW4LQ_S1XiB0Y7xa54U%3DDqbA%40mail.gmail.com https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=fd366065e06ae953c4f2d973d5c5f0474f3b87b6 [2]: https://www.postgresql.org/message-id/CAJpy0uB20MhJJEaPJdm31t4fykJ%2BfChA_76jU2P9HX5knbJvAA%40mail.gmail.com thanks Shveta