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 1wEcHp-004D25-13 for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Apr 2026 00:14:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wEcHo-00GrLK-0G for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Apr 2026 00:14:48 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wEcHn-00GrLC-2Z for pgsql-hackers@lists.postgresql.org; Mon, 20 Apr 2026 00:14:47 +0000 Received: from mail-qv1-xf29.google.com ([2607:f8b0:4864:20::f29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wEcHl-000000022wu-2yYl for pgsql-hackers@lists.postgresql.org; Mon, 20 Apr 2026 00:14:47 +0000 Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-8acb856a674so30933976d6.0 for ; Sun, 19 Apr 2026 17:14:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776644083; cv=none; d=google.com; s=arc-20240605; b=CykhKzq+oxaI6IZWRT2nvz46SkiVIbkmPrGGlAnmK/0/CRmuGW7v9y7LSXjQqMcpis yLTE3Bu5TTFm6mEBbT5n/5uhEKVsZ0sffOVwh4JGeaGBluXdTGI69gXMtr68L5ht3xbp xnyv20wk5TSxL88enaD8gw4qOoAcPmKrpjArGA8LZQDhQ4GNVeu24TGQjobtg5auOOF0 mhuYPtcLXE+KYgI2tqcDZ9qhWIWEEG0+so89tj9jpwbhCWbSStZhMAzB+rAmfzrSuAUo snKKbob0k01eS60VsBk4bS/urtKhheXequxQ56CSwjojIXwZIZBIxBMTHe4/DIQfP353 TFCg== 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=X9y8nvaYeu421QJD0tHq4uQqpRhelVnJX7WKYpCb2Zg=; fh=99cPETC/63IsvQoFoENkZwbGQFmSkW+Huy3VpGrhYuI=; b=HNvhc5YxUrf55/DRxL0qBm6QTNMZ1VQ+gwQOoBhyZEjm4eA9xcgbL/uGJ8O18zKidT RjSRwo1hfz28nZdCCOqXaL81IC2s6uTP36kK8IgSiXZXnMx/cosD/PqyTA3kmCkyb3Nk yNdgWteZo44RJt2b3EfsMq/h6u/df5cbpbtnx+sq7MgLIhEolBPNhKwiEkJR+yiTFTAT zw2zm2Z4AOqeT82VEyKUCDdmbqSFBdVCrnytgwq/muR2rhs8pNGEMSwI28DtbIQBYjo9 KcQYNZljxH11qBLC8GmU+S4GQGhJmrN2CzdFd4CpLKcKHEdYcP0IUm1tXWvTaMbxJCaq Pk5g==; 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=1776644083; x=1777248883; 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=X9y8nvaYeu421QJD0tHq4uQqpRhelVnJX7WKYpCb2Zg=; b=KeHiAJ/aM2o6wVmJzLEipPo1rAbsr/typmSB+AJSXvgKitTWbJ91cJZv9OpX1FwLjo 19j517gSWgrCm3kJrJpLwzqOrWIIwK0rCWp0ciyqrA81OOvi5FUX40RQgwy0v2bYjD/n SKcGmb+E1iZtFEE/y1gdwXvt87dyzQ/aVO4N1vqbRMJ0vOKdOJH4mDTGW1gClW6pq7Z7 5Pfn5GA8JY4hySROET3dBkFo+ayeh668t4aZmR9uOXFkctCTVH3bY6jGP6avZ18IFMa3 dRcKCM6IDHlx+Am+wn0I5x9OR3q5pZQBQTGKWVjMwuh1vhaSvpS+wbX3SPo1EdNbM2UG I2+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776644083; x=1777248883; 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=X9y8nvaYeu421QJD0tHq4uQqpRhelVnJX7WKYpCb2Zg=; b=rxl0eEePiDLJ50bqYIsJUOlFaroNjXBwW+lUf2tWf0XkoqMyw+8RRK9+6iMZaZWSbL a/ZzR/KLY+cGVkxd0uBZ9L6yv6g45UuTlc7HpALDsv5R5hOPK6Xv7CSHxBkDbPEjQ3EZ cM7Uz6rdwOCDF9sN3RX4UPQbRGhwrpEND0nnUpb5hGQqIfUBZVTJurULsNXDbQj/5wXb rqq3jIHDQicOAQYRWl344VrVZpg+ZARzi2ACCy3AqlcEWV3Cv0MOjcMJglgkjTzylKkM VLiX1QAMedGq7SHWhKk7EahOoCQvIDnqhJdgBmOqtQ4/d1RbEbRJGCWFdJ/H8FEQCbin 0vQQ== X-Gm-Message-State: AOJu0YwOL7nQ1+j6Hd29YFb8XXpQ2pNAUUnWLL+wgwyNATftgenp5PbS lHQ7sQ6dTu9plfhFsS+ulMJo6ilvDxl1e4oyg3XjS+cxo/0ss2TdyCAIIX7bELo8TqdZ50JCdhI WYWoSREeXCIoYmERI8VL5uEHcE/hPeWw= X-Gm-Gg: AeBDievX+gKKq/kU94AgnHFtwDDfueR3ZQBy5gDwI18bfQlbAQxebSbpDTpK/513NqO QLhSD/BaKRih8SZbvs+J3ordrS0BtsxuLLmOcgSgEFI1BcL4ZATcuGn2q+3H5PtvwttLucjL0EK PsLB/YWh2aGd+8qwdVpxVjzFJtKnX1UxUgRb9PqClrbHqkvDAXQo8z5+ZeDX1TASklIviBNXQiI wfftm8lSFopJ2QhGpF5ucj0ZxUzCzmKwRIKduRJ7lydWOSJoOuxLE0hPMcHcICGQiYJ/beOOAz0 n0UetSIDY7VlZiWtbTctMK93rFuA X-Received: by 2002:a05:6214:ace:b0:8ac:a266:ce34 with SMTP id 6a1803df08f44-8b028325095mr155956296d6.3.1776644083417; Sun, 19 Apr 2026 17:14:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Mon, 20 Apr 2026 10:14:17 +1000 X-Gm-Features: AQROBzBJCjQq60p-cr9w6Uzgrhua5JvadAVUii6lNXRT3Seohjtholf1feZAhzA Message-ID: Subject: Re: DOCS - CREATE PUBLICATION ... EXCEPT missing details on ONLY To: Amit Kapila Cc: PostgreSQL Hackers 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, Apr 17, 2026 at 8:44=E2=80=AFPM Amit Kapila wrote: > > On Fri, Apr 17, 2026 at 5:26=E2=80=AFAM Peter Smith wrote: > > > > Currently, the EXCEPT (TABLE ...) part mentions how 'ONLY' and '*' > > work for inheritance tables, but how they have no effect for > > partitioned tables [1]. > > > > It seems we accidentally missed saying that these also have no effect > > for *regular* tables. > > > > The sentence you quoted speaks about partitioned tables specifically, > so not mentioning regular tables there seems reasonable to me. > I think you missed my point. The EXCEPT clause syntax allows any of the following: ... EXCEPT (TABLE ONLY parent_table); ... EXCEPT (TABLE parent_table *); ... EXCEPT (TABLE ONLY partitioned_root_table); ... EXCEPT (TABLE partitioned_root_table *); ... EXCEPT (TABLE ONLY regular_table); ... EXCEPT (TABLE regular_table *); ~~ Where: 1. Using ONLY/* for parent_table has a meaning. 2. Using ONLY/* for partitioned_root_table has no meaning but it is allowed/ignored. 3. Using ONLY/* for regular_table has no meaning but it is allowed/ignored. The EXCEPT clause documentation already described cases 1 and 2, but it said nothing about case 3. I could have left the original 'partitioned tables' paragraph alone, and then written separately about the regular tables. e.g: ------ 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. The optional ONLY and * has no effect for partitioned tables. The optional ONLY and * have no effect for regular tables. ------ But it seemed unnecessarily repetitive, so the patch seperates that common behaviour to say: ------ 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. The optional ONLY and * have no effect for regular or partitioned tables. ------ =3D=3D=3D=3D=3D=3D Kind Regards, Peter Smith. Fujitsu Australia.