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 1vmmXh-00GAjG-1C for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Feb 2026 05:32:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vmmXe-00BiSL-11 for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Feb 2026 05:32:07 +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 1vmmXd-00BiSD-2e for pgsql-hackers@lists.postgresql.org; Mon, 02 Feb 2026 05:32:06 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vmmXc-000000008by-2QqO for pgsql-hackers@lists.postgresql.org; Mon, 02 Feb 2026 05:32:05 +0000 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-29f102b013fso42867115ad.2 for ; Sun, 01 Feb 2026 21:32:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770010323; cv=none; d=google.com; s=arc-20240605; b=C+3YZvYgm8AyA9R1ymkquYCvq/v0EJh+D11sw4EZH5sb/93iPlLnsubm2UKAeYoCmB EdgX8CZeLphUt+mCkhZFEDqMUWFdYkTtGAjrGIdn96L8akiRB3DYRVN93EYwGF0sJxKa S+y69G4aa6hBoJGRST1CEWukGg0tnoJvpdNvFJs9Af0J/hyvW6As2diCabqy2QBD1hBW TeCTf0pH6jDWllmgoEUqDapOq7QjuYYMsLrmag24XwxRGgpZEiBsQHl+TkKRjojguRym XkberhpRy5Mjg347QPWxeU1HNcLT0acN2lPMWadpiWFhkLA9Cgqb8pBcqocy3Ky8kd5O YBMg== 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=Q7I+SGYEHuaMhNmCEepToSRvcAMfnsi9vuU3UkJJcQk=; fh=HPJameBgc6qzHjYRt/mmOTFv594cxjm7ZPM6piGRbzY=; b=LIo5dkhJorms0LRkktYCDzUoYjR7K2xBiNoSpeLGd/+dGUyHvEUKzY1b/bDnsszfs7 Heh8nSJBv7lFDf3d806hMh9h28uAcyRPHsylt0FtGxxqy47c/ogxIKxJ8LEhzKnkpgeG cxmVc3FTghqHJKruHhnH27mg48ir1wi/o97y2mut19Xh96F4j0BOs6PXao0e5/kqb599 iBFXhjsM/FASY3ZU7w/jVXJO6uwtn8tFNpTG9urc2TcmXdIIunF8uz2eFPi/FnUT4XD/ rVSfH0tihBZLSeMDY9YWtJRMNXxuq7BEyhxUuLksIffexkMBGjx5GvdYKmBlMtxyiYlu n94g==; 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=1770010323; x=1770615123; 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=Q7I+SGYEHuaMhNmCEepToSRvcAMfnsi9vuU3UkJJcQk=; b=jLeTU4traPr/OxdWkpnkZci8uVZcUEkJEVo0xkT4loAQ0HqwCtQ09G4ELVPBM3OeR0 vg18jPLl8eeMWZbLap70pZE6QoMuaRQIfdbsVfMwhDXKWIVc8Efll7cMbrbPFWmYF5kk aU6l1TFegARd6viXHJLhJisZN4s41KRpX3ntLDuPiGulVq5WeR06vLH1pUjkujCV+LXZ EDJLL2HHGRXep1J85IOabsDwpMMOFcJ3/Sp7fVLyTtpsbsnGCiVNnY5CrCokbj8ulGWX Py0SPC21+8me+OQUCIt2b6yLmjS59X2hHQEPtZewcHvcB55mZ5nmXvaDwQfRNYiREgoG SLSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770010323; x=1770615123; 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=Q7I+SGYEHuaMhNmCEepToSRvcAMfnsi9vuU3UkJJcQk=; b=lYEJUa6230V/oYSTCmbrvsTP9H0+DqHl/WD5VUyWNATAwMRMmU76GiNVXF8uXWBkTd Rsz47gDmtSPSUOFzGMtwSrBu7a/zZ+EnCCq1QIJIhGqIK8IglZUFHoIIhL5SxRZg9UQD FT2kv46rcx+HSVBMZXO0ABe1nyYJ7Xyrs0RS3C4L9kpR2wIYA5omEFCKdfo7iUDKP7gx e/uPD4aM2d1KY5EmEcFxPQEkssOhS1FtkNb5lSSvkCy49tG+JctC/MlIbbOR2TMNq+1g RRDZQozYWc+FFAebPm2iACxvdUQVNVubQaw+FhF1LeTiYX3sbX5FBa+v4c3x94ajpEus v6hA== X-Forwarded-Encrypted: i=1; AJvYcCX+bWKTkSNJTi38K7wEcuky9P4nPv59eFSnZTaNzVxSYcJ1nY5SUoH7JrPZwr2Z6JuZ7z72ANgfAhpQCLwL@lists.postgresql.org X-Gm-Message-State: AOJu0YyTlizz15LKWU0iZSSPvetnkEMtGx453C2bcL5teGuDMmqD9A6i DaQPAM/HaGJwCYOYa6I/B5tqKAKII67tHY6C0Goz1XWfBt8Cs1tr/rA4w5WH1+9mke7y153PEKH 93IXckk9haQw3iT6ZNAfzXccdScWKrKI= X-Gm-Gg: AZuq6aIc2yqyeLEM+1o2kYh2pIhXLoP1vHe+XSJfdm/iN7oY2v5WZs/ZeeiMka2GhFH b9gJThwpuudDyZdVf2AdM4XPGh0/gs4H5uwlL35EWa5omMllLSQiA+7HCrBBgRHMl55VaQraW/p EgeLjYGO4lY0/kHUWBowmd3Vw63OjuV5YKX/4mehMoooQSImMEV32+eCibG9jO05OvKa8qI1V+J E+5iUUtQrdQwGGhGsFBAnqq8MVt3PWU3lIZprvl5pTuVaoUTBlYqK7ECeKVGio1mqQN7oFQ0rf9 3u+e+ukKAK6tCuox54oQzGM4P4Z6O8O1igv2gpFj X-Received: by 2002:a17:90b:2b43:b0:340:ad5e:ca with SMTP id 98e67ed59e1d1-3543b30535fmr10413786a91.12.1770010323353; Sun, 01 Feb 2026 21:32:03 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Mon, 2 Feb 2026 11:01:52 +0530 X-Gm-Features: AZwV_QgIToxShKL9GuBvU8nKdS_eeTAhyi6Dt4QpE3zmP4mNdUGomfBU5nA75HM Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: vignesh C , Dilip Kumar , Amit Kapila , Shlok Kyal , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , 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 On Fri, Jan 30, 2026 at 1:46=E2=80=AFPM Peter Smith = wrote: > > Hi Vignesh. > > Some review comments for v38-0001. > > =3D=3D=3D=3D=3D=3D > > 1. General. Patch structure > > This patch set structure seems muddled to me; I think patch 0001 > requires proper handling for EXCEPT (partitions), otherwise, it cannot > be independently committed. > > It's my understanding that the goal is to try approach #1, but if that > proves too difficult, then the fallback would be approach #3. Yet > AFAICT this patch 0001 is neither -- I have no idea anymore what patch > 0001 does for partitions; IIUC it looks like just old partition logic > from a few versions back (???). > > Personally, I felt it would be better to combine 0001 + 0002 (approach > #3), then 0002 would be a patch that *replaces* approach #3 logic with > approach #1 logic. That way, 0001 is self-contained, and 0002 is an > evolution of the feature. > I agree that the current patch structure is hard to follow and doesn=E2=80= =99t add much value, since patch001 isn=E2=80=99t aligned with a specific approa= ch. How about this patch structure: patch001: Implement EXCEPT syntax and CREATE PUBLICATION changes. This includes all changes required to correctly populate pg_publication_tables and pg_publication_rel. Expectation for patch001: When this patch is applied on its own, CREATE PUBLICATION command with the EXCEPT clause should work, and the appropriate entries should appear in pg_publication_tables/pg_publication_rel with the except flag set correctly. No publishing expected in this patch. patch002: Enable publishing and subscription support. All changes required to make subscriptions work should go here, including: --table sync and other subscriber-side changes --pgoutput logic to determine which tables are published Expectation for patch002: Changes should be published and replicated correctly to the subscriber. patch003: pg_dump, tests, documentation, etc. All of the above changes/patches are intended to support Approach001. Approach003 has a limitation in that it allows 'only' ROOT table to be specified in the EXCEPT clause. If tab_root is listed in EXCEPT and a user later attempts to attach it as a partition of another table using: 'ALTER TABLE root ATTACH PARTITION tab_root', we would need to block the ATTACH PARTITION command. Given this, we should first try to implement Approach001 and evaluate its feasibility. If it turns out to be impractical, we can fall back to Approach003 or consider other alternatives. For now, the Approach003 patch can remain on hold. thanks Shveta