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 1wcKGv-003GTP-1z for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 09:51:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcKGu-0009Ek-1E for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 09:51:52 +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 1wcKGu-0009Eb-0G for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 09:51:52 +0000 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcKGs-000000000PJ-0nct for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 09:51:51 +0000 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-37de961d1bfso207745a91.0 for ; Wed, 24 Jun 2026 02:51:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782294709; cv=none; d=google.com; s=arc-20240605; b=IIqQnKSl2uN+PsUag5yr3zbaSWDl67HJz3ro2/AuzZF+BsshTzxfD1rHZ729sElU0/ 0UDzXdgKD4/m3HBrT4/EtLvFVpn8DSF6OXU/6ljsv211pWdHsxaDrZw5LUCYRA4NE585 V24240vPZfRS0BkBxV9l89tLRnuTZyLPgpWsONhX9pX11R3D2HGATjjknhddbP2eRQO4 XeZpsiVz3u7SOg/8u0ZQZi25hBvXyhN9V37QWMKbld8MQNmt+znznxsYh7XW8G+A+SdJ OsCecEmXGnO/u1SWyvHT7ZskQp/CpA6BMyRupd7C3z3S+8mzq7ecfyB/sk4+PPCYQEFN Ffiw== 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=1q3SolW4tpg8nfi0XAKrvgk/HvetQFj3fBkgzYbFCjA=; fh=a+ilzyfA5j6qMKaGCkBM3nioT3AZI8OvxG/8+PigGtM=; b=Laio1DBHZidvKa8HFdm9VkxpSbNCa0yESF14RpwWvjArTgdJeH1WAYsGU5cu6iQH1l 1FXMbHV0oQHuWD9dGq/LyvlkFJi1hi5/jKF8zygo+JBU2yweYUFEzDKbiEWbXs993wmx 9V6WC7wzZPiALGk4X01SGRTSvVR8iqTXxF4xE7D765QvqkI9TiXV4I3kY6iDRJSsGSjM eU8gN0I54/iW/ntY+tjGmeBg5yAQpK+21yFlOLlfKA2DEril7F9+S7eDytE3NnT+YaU0 WEKDKSNNzgQ5Q8sc/UM6yRf8XKW7nntmVRYfO4e4/EGqWwulIwIasuhJf957qG7cc5F7 wQ9w==; 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=1782294709; x=1782899509; 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=1q3SolW4tpg8nfi0XAKrvgk/HvetQFj3fBkgzYbFCjA=; b=OBxRVTNyMRO328Fd6PKjcu3QjJkLqpKeWmS2UkZbUmolh0BVoIb1fL8bvF0cYAHdNQ y/0YVoqLw/Z/YH2YEoDmw8ZjMPD2J7lIvMszGvf9LdtZWbFHL1PAsBlt/UTJL5jyxcbo EIdBd6KWsk6YL03MHHDwUilh+psIWAIKzj3+rRkPTTBAZ+6qvAzGchCf2Lkk2P7IEPUq txjrEQqE1WC98+/MA1pwswf75ZAwzEbnYdsV0elGuwpaDuIZEjkg4aBD29bXeiC7w0yH TkMA9kam6PK6CFQ4G6SC1eFWWpJOc0gkIyoDi9dy5A2uDvVvQX22xUBucmFzFNjryY9u +pcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782294709; x=1782899509; 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=1q3SolW4tpg8nfi0XAKrvgk/HvetQFj3fBkgzYbFCjA=; b=hrGTDgX5OsY/VB2EYA4aK5ie2DeVmNdy4KN8Mwopl8UDMrCsW+TvLquvhV+uOvO0Ag GgDGWTGN9UVcQcFvoaFddGsQvTWioKHDrL0st0seI+SnDtry5Vn5qbYZWwDPQ1+tUBPl 8WgMYniceTkNB4w7JG6FK1857MWoTyfe43SM1DjD3Eu7CGZ9RrVCU0Q9S3TjMuHZpeYr Fe9TcqPHdV2vQZiSEE/BsKMJKXFFKM6FUy8SCtpT9LpcM2GbN/Hg9GDUMECQ9iYuCoCv rQtNnJ4aIY1YqGJsGsJ6VqaWBFQa5frMfeyLKl1BNXgE0iR8aGF8S9N3iZ1km7B5Lquq gU8A== X-Forwarded-Encrypted: i=1; AHgh+RqSUyb3GahdaZcc39ndbw8jryIsSHyvppffQW9Xfd4z/19jUG+rOVsv7cQwyVMixfvt3+kZ13P94G8gzXsD@lists.postgresql.org X-Gm-Message-State: AOJu0Yy48iWROmBdTHJ8OqX5QMjeVuyBg1rct5N1uanj3Lp6K2rcuGH7 BrHa3rGwWsN5dvWQAgAHXOYSRXchOjwbaGfpuILbkPYdKopDaOEv80yZx553kuKcN+BL7PMvyJ6 ZXbsMxa7rquLVIhpVgJ84WEAP/veUh06Bizmb X-Gm-Gg: AfdE7cnZZyNkg46NoN0D4ddeqOsAekFHAzmcUdBSHqHOhu+yNhHShy7lSkatzGqystX eovPlPVLV50y7Bks7VjfPG273oHqfMDDQ+5VwKMPaiaq6poQjSiiT7mjO2rEB/aQ2zbQyG4wMUN 3jP0paieq1sbokWkCiS6Am1SJ4YGC8rlyIliVYyQjSIvu5XGPd8xaFPFrU6ajolag2XXJDLsRtA iw2qkBHsSN9huDbCrW14RKyrR7heoIubjgEF+Sge86+HYTomtR5VzX3l5buNgXx4DaOyoiZEL5C xDrX7tVrTT7m5fdQlopPQXB3Y/TIrNdWQhyCvqGZ1msaCvX1oJsb X-Received: by 2002:a17:90b:57cc:b0:36d:635b:85a0 with SMTP id 98e67ed59e1d1-37de415329bmr2877834a91.3.1782294709197; Wed, 24 Jun 2026 02:51:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Wed, 24 Jun 2026 15:21:35 +0530 X-Gm-Features: AVVi8CcapADiTtvasV6r4nSGBSsglVmXLBA66J57GbHBSQRfP-LxbK0V6IA3t_w Message-ID: Subject: Re: Support EXCEPT for ALL SEQUENCES publications To: Shlok Kyal Cc: Peter Smith , vignesh C , 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 Tue, Jun 23, 2026 at 3:03=E2=80=AFPM Shlok Kyal wrote: > > > I have addressed the comments and attached the updated v12 patch > Thanks Shlok. I have resumed review of this thread. A few comment for 001: 1) Can we make 'opt_sequence' (SEQUENCE | EMPTY) similar to opt_table and then use it here. It will be similar to pub_except_tbl_list and easier to understand. 2) getPublications: + if (relkind =3D=3D RELKIND_SEQUENCE) + simple_ptr_list_append(&pubinfo[i].except_sequences, tbinfo); + else + simple_ptr_list_append(&pubinfo[i].except_tables, tbinfo); Can we do this: if (relkind =3D=3D RELKIND_SEQUENCE) ... else if (relkind =3D=3D RELKIND_RELATION || relkind =3D=3D RELKIND_PARTITIONED_TABLE) ... else Assert(false); 3) describeOneTableDetails: + * Skip entries where this sequence appears in the publication's + * EXCEPT list. + * + * For a FOR ALL SEQUENCES publication, pg_publication_rel + * contains entries only for sequences specified in the EXCEPT + * clause, so there is no need to check pr.prexcept explicitly. My personal preference will be to have pr.prexcept check in the query and get rid of this comment. 4) - char *footers[3] =3D {NULL, NULL, NULL}; + char *footers[4] =3D {NULL, NULL, NULL, NULL}; Is this intentional? We are using only 3 of these though. thanks Shveta