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 1whU6b-000FnR-30 for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 15:22:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whU6a-007gsj-1W for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 15:22:33 +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 1whU6a-007gsN-0C for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 15:22:32 +0000 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whU6Y-00000000Adv-3nI7 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 15:22:31 +0000 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-39957d210f4so9212451fa.0 for ; Wed, 08 Jul 2026 08:22:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783524150; cv=none; d=google.com; s=arc-20260327; b=MlsJkgC+TZyMWjh4gdgPaxAcxwbYGJLrO654vUA0WofheCW/MQwrsEDFhwB0QjEOgt GyYyOEbCdU142OHJpgTQjpO1kXmDr6N8ajGnWC1UKX51p6L0e7LXWSFZzEtK716qagxH iC2L+dHYk5lHLLcUa7tWhVSFaVtIZwHTYbqNO2Ws6sh9rKQhHQgErCFAHmH3Xc9xc2+c p/uyLYI6tTz55nMosdHUoRba0uNodZ8q1n9dwqUw3vIx+fv1rYvYw/H9dgPXqYH35WQe ONUi8yZWfN5XYq0zR/UghnLXokleusF5/ijp7qMaImmOmtpg5QNO+n8S0+W04klvTSP6 CfqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=f4W7LWVSuanwWTdR9NP4wJ5bAMEr2vuv8Jo2ohFVs9I=; fh=iHNOP7rGAsAQ1x7qfz5DlVxLVTklCeHwpPXwRtil008=; b=QGCk+T82qTsBQqoXN1WgCcpQlBaM3U9AbWqkKs/U4XgGkjOs+BsFeyJifQ/gED/DnV NMCcVM+I7rkJ3HSgMPA3AuUcu2d0F+1sS75670jEdTdMCq3hfJI9crTDd2RukBrd88nY 6ALkzu8wd/IVFOTyLRNcYTM1fVHprNSgIDn7uKyRsFL9JXgmuH9B5zxFzqr7Mych7Anw qWlBeNwfjCcVOp07pzWO0x586bx4YTknX01aXF1vjkzD9d7eo4mxm00YhQhFaMn536xq 38ZvNMBCuyegNwsg8tS20JtK7ouHxdmquw8KbBpDqLURBxEN+TdjAgdr6RE+0HZ8gP3q O1rQ==; 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=20251104; t=1783524150; x=1784128950; darn=lists.postgresql.org; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to:content-type; bh=f4W7LWVSuanwWTdR9NP4wJ5bAMEr2vuv8Jo2ohFVs9I=; b=b41jIeXeL4mMLm01Au5XVc+dOm/T3Oc7MD3oMtaIGjTGSU2r8fGmVi5GQI/Cgp7aga U8sHoYqy2wufnIonByKVauWdf/Nf27LViM+OgAV12fS8ZUKD4xOMa1JjYzSwjf3Zl7MF eF2dplvCDOobeyW8p+/n4ox9HLfqcHgGMjQbpWnjX06XC0L071rLc5COAG81pQ9CpjS2 owXEFni6rPSC1b/NczMDAbdXetICRtporOEloQBGyzWyPenwtsA/Ev718Le6ZY6i62YO Gf87FJtt2nSUvzTcNlw6P9t+2ByJqp4vW/1uJWjSu7+PnVkdM5nAgaeqLF+3ZrP5iEgp RE+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783524150; x=1784128950; h=content-transfer-encoding:content-type: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 :content-type; bh=f4W7LWVSuanwWTdR9NP4wJ5bAMEr2vuv8Jo2ohFVs9I=; b=W4pqTPOCiCmDv1TjrbbTyHostzp2V3eFId3yQqKjQlk313j+aXokGqumJYyh93cYfF j50qDydZLvzjhbjmrpWfKPrnQYy0eTizO2gzRy4tJBJFTkRnfS6lvSKmQXQjzz/8MGwA pEaDKI3CNOP7OM1aRxsHsfdG2iVLI4ox+rvM5VWiQ0D9jE6iJ0f16WdzzSEK153VZk2v hML466MBgwO+Uk0j739aV/A6YcxO8CZIV7rGapXqOGXLzUG8fy773hU26SbIxDkVv50i sZbHuuWv/HlRuv5BV24xUBYQIFvPclwcsUOplvXzXNboohlSfPqmKrJmN1QHmGUJ7vT0 24jQ== X-Forwarded-Encrypted: i=1; AHgh+Rqn5mnU5eu8mG03xfRuwrEJE0s84/qv48mRqPLjUut6iwWamyISuxsSHOZZtJdIH+uUJoxYYdMZVJMNZI0U@lists.postgresql.org X-Gm-Message-State: AOJu0YyHHbrl44H9UEdIRLlnpjo8jDp2obfzkLUqY5xTxTCmOl2zQXaZ 3W6Sebtcdx6ecUZ8umwYFCAEjaOVPPFqn+oJ7g/57vEX9vaGGmnJKm8dUPWmuetWRYL+9XfGFHR I9QvQeT68+47VotMMklpOeWaxConGoA== X-Gm-Gg: AfdE7clvIrv4ZL6b/USkEW5YWAWjrrJ14BWT2REHZ0r3zPeh7tc8pU5s6+ELS7Eyv1B M++uQ1xwrpFTiBxB+MDN1js+sHqCmFCkaaTrKK4spPHwsU8CBGIL+FBlfQniAkiS32bpkc/1hKT uO8KuUysi64MduAZTqeR3SweJAOyAvha5vP7aW+GZMChFFJmXGB9p78yMRPtxs/R4reaC8wHcm0 HPKuSZaXL4FfZV29gjbg96EuEHrY3h5Pzo61SP+MO09u6WNHOoXLPJ+UHapHZZtr0Jpijcowamm Vms= X-Received: by 2002:a2e:a9ab:0:b0:39a:e3c7:6649 with SMTP id 38308e7fff4ca-39c798fb91cmr7193411fa.28.1783524149412; Wed, 08 Jul 2026 08:22:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Wed, 8 Jul 2026 20:52:17 +0530 X-Gm-Features: AVVi8Ce8R6roT4ykKxLFm0Q8yQTswWEAM_KSQi_5ALRZMdeE2aQ8BqgEUGizJdw Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Peter Smith Cc: shveta malik , Amit Kapila , Zsolt Parragi , pgsql-hackers@lists.postgresql.org 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 Mon, Jul 6, 2026 at 1:25=E2=80=AFPM Peter Smith = wrote: > > Hi Nisha. > > Some review comments for v18. > > ////////// > Patch v18-0001 > ////////// ... > > ~ > > 1b. > Why hint to change the except list -- who says the EXCEPT list is wrong? > > It seemed more like a user error to me if they are trying to drop > something from a publication when it is already excluded. Why does > this need any hint at all? Okay, I see your point. The intent of the hint was to guide users who are actually trying to remove a table from the EXCEPT list by pointing them to SET. I've reworded it to: HINT: Use ALTER PUBLICATION ... SET TABLES IN SCHEMA ... EXCEPT to drop the table from the EXCEPT list. Hopefully this is clearer and more helpful. Let me know if this works, or if you still think no hint is the better option. > > =3D=3D=3D=3D=3D=3D > src/test/regress/sql/publication.sql > > 2. > I did not recognise the distinction in the test comments between > "fail:" and "error:". > Fixed. I now use "fail" consistently throughout. ... > > ////////// > Patch v18-0004 > ////////// > > doc/src/sgml/ref/create_publication.sgml > > 1. > > For partitioned tables, only the root partitioned table may be spe= cified > in EXCEPT. Doing so excludes the root table and > - all of its partitions from replication. The optional > + all of its partitions from replication, even any partition that li= ves > + in a schema which is itself included in the publication. > > BEFORE > For partitioned tables, only the root partitioned table may be > specified in EXCEPT. Doing so excludes the root table and all of its > partitions from replication, even any partition that lives in a schema > which is itself included in the publication. > > SUGGESTION #1 > For partitioned tables, only the root partitioned table may be > specified in EXCEPT. Excluding the root table automatically excludes > all of its partitions from replication, including those in schemas > that are otherwise included in the publication. > > SUGGESTION #2 (TI doubt you even needed to mention about other schemas) > For partitioned tables, only the root partitioned table may be > specified in EXCEPT. Excluding the root table automatically excludes > all of its partitions from replication, including those that would > otherwise be included in the publication. > I lean towards Suggestion #1, as not publishing a table/partition when its schema is published without any exception is a non-obvious case and should be stated explicitly. -- Thanks, Nisha