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 1vxMns-00AWwb-2b for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Mar 2026 10:16:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxMmr-006DwR-2g for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Mar 2026 10:15:34 +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 1vxMmr-006DwJ-1S for pgsql-hackers@lists.postgresql.org; Tue, 03 Mar 2026 10:15:34 +0000 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxMmp-00000000A9H-2YJl for pgsql-hackers@lists.postgresql.org; Tue, 03 Mar 2026 10:15:33 +0000 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-389f9e70ae6so92576831fa.2 for ; Tue, 03 Mar 2026 02:15:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772532931; cv=none; d=google.com; s=arc-20240605; b=iB+fBsIrBnbHbdkF0Ud3YYv9FMpUbqmiMZDx/Fd7pjzPuA3SV55/yuildnwmEIc9SB y6aZDlmeyqRJvFcHTGFpa+aXgzhw5qg6UIJgwHbTaVJt8Hw56AcF3gw6TcFekWKd+/Id fA3yYf1gVqRQHQ97lrgtuOKUrJwqZzcjmzyGGc8V/YThJNk3lMIyCQKkToasrL2gBBUL CYzF6Yktj7IgPUCDQNA6nAOxLUf6tFbHhOrOzZrzbY1YcefAqBrsjhfe6nnT7h8LCSxv zghKLH+V81oaYZfX4JDxCU6PPlAxK1ecbYMTcQvTjydTZ6fj3DQP9T59n3l9QwpOXwEf t7AQ== 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=quB8SrTw//BA9ibinTDXt2L4bf4TLxODzg3WmjRlSJ4=; fh=5H9SRKG/xrZQoAvue6blXFWIlpbs1xkwMOZ+NKBVpQ4=; b=ciM46NSxhOJNrDUDHPBuMxdrZzb+53j2J4KthkPjE3civvdm++CDRZOAM3eRDNqUhd 2hptd/FkIGSxSPS9Vqrx0ZQVnbSYPY510NzgdWxzLLS6zPJIV3bqyeyh0esap6GM+75p xMUM/UwhVT82Q1BWhO/Drr3kdhcdfUD3GRW8ybIX2OD9gx1brt1+g7XqWor6G8fMssGZ AOHv7IFO7u+VYIMHB69Ep0FL9gCoLAGqU/eNlDh0nSCfOqvWmBlvY7GeSP4r2n3uoBPy b+kK3XCmsuGnDufeXGpjzrVHF86yqM7FrYxbbgRFDhtUfi2hiRchx6zp3Id36ukfgDyQ Xsqg==; 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=1772532931; x=1773137731; 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=quB8SrTw//BA9ibinTDXt2L4bf4TLxODzg3WmjRlSJ4=; b=CtoJsqofEhvxfxwVHLY2n/Zma8oea49YYi9K2gDsuPMimb5x4fkki3ZalMsUpuHKYO Di7pTfFkDfwVScp/FnlkN1JAKzUiQ1+PA1HV5GvxSzNHh+OJTlRfUq5Bm498KxzPfZ35 kFxXn7pG95CYg6QExqYLeIgwUiusltjTFF0xnEQo6yyz+JYsEC0pRmI6C1Wrzeu68Ven nRhdFIPPXDbP2JSldW/m5DsKNuirIp3JNzkJdwtfbZUTgTO2uhFaWFfHk7/8bz1/2pmx bH9rb1HdjW6Z2qlWeetkLwdRvKoPFue5BCtFXey0NI0CcFV8WBhJhiZsaZ2EfKJpPtCi wIBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772532931; x=1773137731; 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=quB8SrTw//BA9ibinTDXt2L4bf4TLxODzg3WmjRlSJ4=; b=RhwjRcTWmUq8vLkTNaclPgJD+OVIsKXoMWrLB95/hvHdg0n49GsZGzk8r39GyR+ogX ECXHcngLBFf6BiBDlR3YComXYr6X3FVA2GPaSAK0WTf2++HxqeFQ/mkyE2JS2vxVHxHw Thz31gDJHi3z9BLZm5N8xqDMFraYxZzw/4F8dZwc1o4HFoTSZkGsvasCxbv4+/2Jyv81 e1KDUsFoOOoJbYRtkCN58G8wD2VW5C99031KPonBARzCiKdMU3a8XJhjD1XNyrUjzkAD X3RIgndCpNa4ddSOhWoHDT+CwoShswJHXqHUjCYeo4+up52XgLevCvYVM1U/+CWZj/Wf gURA== X-Forwarded-Encrypted: i=1; AJvYcCVWZs82NRvJaq0kkarzouNuKJIQKnKA8Oof054NySOrO1sZyQ32vk6CH8Azf4pm8dvcXh/8YaHKNZYAbpQl@lists.postgresql.org X-Gm-Message-State: AOJu0YyCmJONlpw6itt5Nct5agOSgcRgDVLHiXNsklAXZ0A9721/Lv9t BajI8i4Nih2aR/c65Gg8AzsCBEMIeRIoTRedHk05YOeRn5Gj9gJGpNzdFeg4+I4RCekDDwlX4kI ++KcBDx5gYb8XcW6O7hvaF0uCzDi1aw== X-Gm-Gg: ATEYQzxX+Jw9iDW9lG3sLSVjm9xMIsTtn8TLAFvxChPp2ja0AgiYXOI3rp6G8gEdVlr KrixGJX1R53B+BVRlW1uIjzzs5EjszoEl4vwZL96rkIwjDmFXxj9jwJsMHm/7GQSrU1vQ/SjHQ6 ojxLvNAkxo0Ii8Rw4VYxp4YNysJMIY5CiGeeHTrW8Vmh+mwt/j+Y27XvMkOTAvVe+rZRwF67QGN 92NLtnvgLgXwn6DUPsd23HQz7XOSD03t0/rSlKnTTB2+GL0XnwCgwplHQbPUKK+EbKGRYR0VVzZ 5gacCCWARsuE7J0BJv7CoHGl X-Received: by 2002:a2e:a548:0:b0:389:ffaa:7812 with SMTP id 38308e7fff4ca-389ffaa78femr105444551fa.41.1772532930438; Tue, 03 Mar 2026 02:15:30 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Tue, 3 Mar 2026 15:45:19 +0530 X-Gm-Features: AaiRm52EkyaVL9caHwTaSdwReGr_DjDGufF8ej2Z62zmK-ZnULYHuBaiKdhLbOA Message-ID: Subject: Re: Skipping schema changes in publication To: Shlok Kyal Cc: Amit Kapila , vignesh C , shveta malik , Ashutosh Sharma , "David G. Johnston" , Dilip Kumar , Peter Smith , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , 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 Mon, Mar 2, 2026 at 6:51=E2=80=AFPM Shlok Kyal wrote: > > Attached the updated v54 patch. > Few comments for v54 patch - 1) The partition description shows the publication name which it is excluded from. simple test case: CREATE TABLE t_part (a int) PARTITION BY RANGE(a); CREATE TABLE t_part_p1 PARTITION OF t_part FOR VALUES FROM (0) TO (100); CREATE PUBLICATION pub_p1 FOR ALL TABLES EXCEPT TABLE (t_part); postgres=3D# \d t_part_p1 Table "public.t_part_p1" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- a | integer | | | Partition of: t_part FOR VALUES FROM (0) TO (100) Publications: "pub_p1" ~~~ 2) File: 037_rep_changes_except_table.pl:147 +# Verify that data inserted into a table listed in the EXCEPT clause is no= t +# published. +$result =3D $node_publisher->safe_psql('postgres', + "SELECT count(*) =3D 0 FROM pg_logical_slot_get_binary_changes('test_slot', NULL, NULL, 'proto_version', '1', 'publication_names', 'tap_sub_schema')" +); There seems to be a mistake in the publication name in the above call as tap_sub_schema is a subscription name. ~~~ Couple of minor comments: 3) File: pgouput.c + /* + * For a parition, changes are published via top-most + * ancestor when pubviaroot is true, so populate pub_relid + * accordingly + */ 3a) typo parition -> partition 3b) There should be a full stop (.) at the end i.e. after accordingly ~~~ File: pg_publication.c + else + errormsg =3D gettext_noop("cannot add relation \"%s\" to publication"); + + + /* If in EXCEPT clause, must be root partitioned table */ >> there is an extra empty line ~~~ -- Thanks, Nisha