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 1wUWYf-001Dug-1x for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 21:21:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUWYe-00G1dE-08 for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jun 2026 21:21:56 +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 1wUWYd-00G1d6-2O for pgsql-hackers@lists.postgresql.org; Tue, 02 Jun 2026 21:21:55 +0000 Received: from mail-yx1-xb131.google.com ([2607:f8b0:4864:20::b131]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUWYZ-00000000vsR-0q7M for pgsql-hackers@lists.postgresql.org; Tue, 02 Jun 2026 21:21:55 +0000 Received: by mail-yx1-xb131.google.com with SMTP id 956f58d0204a3-66077e90382so2939194d50.3 for ; Tue, 02 Jun 2026 14:21:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780435309; cv=none; d=google.com; s=arc-20240605; b=UeQXB1FtbXckR8PvwLFLiJu0G7RSB+xZPuMsnk9nRgALFcwpGYWPNtlKbyiCxojs6y zDCVvqm5cxaaz/bOGGRTd3lPybgyy0ZE6c8L+4432G//inMzMyUZW+5wbqd6KLxdJs6M rE6j//2bMJ6rrXLiBjxXcCCGscnrYE3OwlYT4ftLkFNIqBMUZbxmb0ESj5tITqqACrpe 5XpwbizXgrwArvQ8mttegzE9Y8ivrDdkwAiDgMScaM9Hz5ukLMCZjNRu/R4gHTXJEK+F Z7tMeak3OjWMDC7Z3UBw31ST2DORX4t4cvW6fhDb40pnmRwzVfWUHroxyyh8gu/wRlyp hQDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :dkim-signature; bh=x+F5m+nKEscyEdV3TOoIMANyqAlZrr4et83XBu4HLLE=; fh=nwNxTtLLPTU0ewfLM7SSbrjMajMl+wwnFkCY/fi90vE=; b=X29m1TqXXMFCE9yoGdMLQupFKwOUSRJFA4eK/0Nw841aA4Mbaowp6Gfel/oot2RfG1 CVqEDREZM8BMhj45IIfTrLHhm8dj2e2YPj6dn5XyomwSnJmkasqkqQP5cC24mIAQp2x1 3L9IUDFJ4Rl1hvz1E4Qx81o3DlrPhx+5r2k3jmFd7AXyZ+o9n+KpES+qriyUy2OAbDCY //lqEVKjxQhdFI0/UonoNriyOLg5B1qUGUMx7MCSsElha5+mQ+cV+KCRwYWRYZy2SFkP UX/Y57UBlLk8UCP9v84fAV6ycdOH1urngUekxpx+i1DHiJsNuA+aghcolstzSdJhfHHO E7Tw==; 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=percona.com; s=google; t=1780435309; x=1781040109; darn=lists.postgresql.org; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :from:to:cc:subject:date:message-id:reply-to; bh=x+F5m+nKEscyEdV3TOoIMANyqAlZrr4et83XBu4HLLE=; b=NUtJjfvgn3Twsm4vkHpo/N1Sek5gf4CEhDgyIsoYl0lBCKunAb2kmrAzKafDk793DM 77fGd76fDH1zIBXeYg/c5axhRVjP0YuKm4MTeVDZlpP1Rgg56bz7Ksdrm0paSiN6bgbK qjwFIjSKc94MkSCcZS4EgG3SlzBMZC5zCqB98= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780435309; x=1781040109; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=x+F5m+nKEscyEdV3TOoIMANyqAlZrr4et83XBu4HLLE=; b=q4A+Y463J7Qkqj9bISB+pLphVWIJ0R9EjeT593oLAg3NMtV/XPbBCH+lcHiMKiRwZt DrAk+lk3OcdZ/tLYuTinBy0O1PP3Q8jh40Sb5wpcFnWAricsqjg1tftCDrb2HKYA+3cs t65Xxve+OWzVVcacEBGuqlX8Ksl+01jeQs8utIcP+467+TbKNk2S7TlWXgYiwm3tug09 YwA0XVKoq7d9FhW/O5u2/IN24RzUPAQSzHwbJoyehhCWCOqyR795vrjRJdU0qsj771PR 34qopFElhjBvXH9zeOrAC/7QFWi4v+p/qkFVYWi4oaBOJtIQRTzERf7Toz2IxM+qXPyx 9luQ== X-Gm-Message-State: AOJu0YyOtK/LOtHjmuCOvh04XGI53o48wpZFnlR/WvFGR2P+iC4pD96m ydr1B4bvNZG1HGhnsF0z3ohMW2SktwY5euHEgfxi3dbjrXVVBSVW+wXBODSW+2c4OQ62BP1rcJs aAXa5pt/FooqsDFLyM+KKgKReTbbQ1Fy3+Pf2vIX8kHAgqwQOXTAFzvLbCObfLB41zLERRtXpZl DxQHGNhMxnn/bIuqiEJ/I7MNdwFjAAeQEjT3k0pADPzFneQtcp5ktE1WsXDKNlVs7aOaDncPBvP vjXMkf772bwe0GkyE5Gd8cTLExhfZM6OfIJNiKvhsC9u2a7BgUeDP7Fvtc1uo/CNfHXZE8Y9441 6w== X-Gm-Gg: Acq92OEv1Ooprf8Kp4kITlCGyjkE9kjm/i8QvnufT12JTcuLXcWkc04Zi8IXF/ISJzv 2C44WkqM67GjPiUwLxbCQQwV25wsj6x6IOBG2ChzVirObIZHJ/TKgE0SErJo0C/R2pCTPJeh2UN snMc0ar7bkmrPSKrs1oG9YnyF9y6TjdnRlk4ahfMncF2WfmOdo5gnM8TLqqHkbGBCyXMx0SBZwZ l8yfNxe1jLAco7r9ERZlnzfV8aXT/LwwqDbcigJAUGLvMNOJUw62bm/ixvof2wtcX9kvJ3uEyfR pJWsfw7qBxrBuYd58y3piQfiq/KGdUcOQjCDhUox4ms7ckhavGmTTqEp4biDjpegF/XEo/s/A3v t5aWTrJFXMZ8tDw== X-Received: by 2002:a05:690e:1384:b0:65c:6f79:1dd0 with SMTP id 956f58d0204a3-660dbbb0cb9mr623427d50.20.1780435309004; Tue, 02 Jun 2026 14:21:49 -0700 (PDT) Received: from 298783833264 named unknown by gmailapi.google.com with HTTPREST; Tue, 2 Jun 2026 14:21:48 -0700 Received: from 298783833264 named unknown by gmailapi.google.com with HTTPREST; Tue, 2 Jun 2026 14:21:48 -0700 From: Zsolt Parragi In-Reply-To: References: MIME-Version: 1.0 Date: Tue, 2 Jun 2026 14:21:48 -0700 X-Gm-Features: AVHnY4KU9UD0hZhw2rJVQ5h2XT3MviooB3_pmySicha5VPFMKNbE6EH3ALypnD0 Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: pgsql-hackers@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: percona,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello In this simple script: CREATE SCHEMA s; CREATE TABLE s.a(i int); CREATE TABLE s.b(i int); CREATE PUBLICATION p FOR TABLES IN SCHEMA s EXCEPT (TABLE s.b); SELECT * FROM pg_publication_tables WHERE pubname = 'p'; SELECT * FROM pg_get_publication_tables(ARRAY['p'], 's.b'::regclass); Shouldn't the second select return an empty list? Currently it returns one row for s.b. And I think there's also a bug with CREATE PUBLICATION with IN SCHEMA CURRENT_SCHEMA: CREATE SCHEMA s1; CREATE TABLE s1.a(i int); CREATE TABLE public.x(i int); CREATE TABLE public.onlypub(i int); -- exists only in public, not in s1 CREATE PUBLICATION pn FOR TABLES IN SCHEMA s1 EXCEPT (TABLE public.x); -- error out, good SET search_path = s1, public; CREATE PUBLICATION pn2 FOR TABLES IN SCHEMA s1 EXCEPT (TABLE onlypub); -- error out, good SET search_path = s1, public; SELECT current_schema(); -- s1 CREATE PUBLICATION pc FOR TABLES IN SCHEMA CURRENT_SCHEMA EXCEPT (TABLE public.x); -- doesn't error out CREATE PUBLICATION pc4 FOR TABLES IN SCHEMA CURRENT_SCHEMA EXCEPT (TABLE onlypub); -- also doesn't error out