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.94.2) (envelope-from ) id 1tH7Xs-003eRs-32 for pgsql-general@arkaria.postgresql.org; Fri, 29 Nov 2024 20:24:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tH7Xp-00AYNc-Jm for pgsql-general@arkaria.postgresql.org; Fri, 29 Nov 2024 20:24:54 +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.94.2) (envelope-from ) id 1tH7Xp-00AYNT-8M for pgsql-general@lists.postgresql.org; Fri, 29 Nov 2024 20:24:54 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tH7Xn-000DT3-M8 for pgsql-general@lists.postgresql.org; Fri, 29 Nov 2024 20:24:53 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-385dece873cso642111f8f.0 for ; Fri, 29 Nov 2024 12:24:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732911890; x=1733516690; darn=lists.postgresql.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DhCNaWhhPCqdjiMwHrziCHQBW24Q4VEzk+vp9XR/8J8=; b=fibIMDozZPYsLplOnRXGkjN6XzUwwE4BbnRRex+lqQfN/QcXvzFnVAOZQPMnwfW4BT dyRZNmZI2hKDLAG+reWLKVvPZbBKWvQjt7aGZ+FXKl3Gz5OgIs3Tr7UdN8TeVGJhODsx dq5ePHBZ9N6BVPsbS5uK5b2L/n9kSoDIJIfzqhn3cvx9vbIbnTpBQq1vaFLGri3y+rSj pmWKRw8/hXCVz6m0sf+o0k12X4KU+CHrUc/N2E799DQOWbFCftk8kYpiTIMrPp2yPT9R IF8QBWUOU0+sn3mw+PA3csVb4MGjIbL3iyAWNZ1rZo+jZQTkf8gCp1QlY3UXbroWEi1m dRYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732911890; x=1733516690; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DhCNaWhhPCqdjiMwHrziCHQBW24Q4VEzk+vp9XR/8J8=; b=PXEU8N60R16KwAIOWRc1XLJFgn0L6CXuYS3GxqlliLQXhnfRcaIy2gHEgNAhNrpDT1 p0eUmotZIAmjK6pRpckup2gyaYPqNpEQAgECW8aM9F8AMt+MBcaoRoZ9MYLBZEcDhLrm ZuSs1SFzwfww0kWwDlkKF2VJ8YvIRHeMaCmNoy5Z2KfjZqGoST8UKbag5v78H14VaNLo f7dgvWFuL0dXERJf4hgm6HwMil0jXV6MsB66+x/VtXQ1KaZrenvLdi2zBHIkSenwPiWG YZ5MTdjGOX/KbF3w/QKgHcTXeNAMyJLNThlpRarNwcloYWt2pXuqVu5GsqscFEruCPK+ UXqw== X-Forwarded-Encrypted: i=1; AJvYcCV8d05Bf1+mXvp23maVqnw0flWaOPDZ/Xuis4LFN43UtDoiXvo7KyhkRB8VKg3d9Q960itBhapN0p91BewP@lists.postgresql.org X-Gm-Message-State: AOJu0YzyCL4TbsJULpf2B3Rncna5nVY1mFjY5h6gXqvAEanSPPJvD0T2 zMDRGBbdUrY+lmxUJbL5YFZbBU60uzGPy+5I5+tuiCrl4b0JhaiNyvWEpA== X-Gm-Gg: ASbGncuEgb9U77EugMssaqus84KQU55cZ5DN0SiSdWnUMG0gv/F7D6SmLZlXSk8QkI0 Ha61SqyYF4VQ07NNCvMAcTX0Q/ODAsImUpmrFTnB0SdZbKrezbBEuED8jgNzDGlTR//U/crqN0X G1/iHRgrIZ3l7QUcyuR7kxdmyLnixEUDRZIOwOOy3nMH85WG4rJ3xz5t22Yc921dQfvLCocWaQS JgL6Zv169h/EfwlocaoakFZc+iq8CR4nBpdkqiKFSc9vKPAWe0As+KwDy85Q94Mw1axIEPKVN0M ior//9H+D2CC1BFZat5bRHt31zE= X-Google-Smtp-Source: AGHT+IHYhT29uVOixCV5cYIIbGizaotlvUUm5rfHBx0RunCgW8Wc4MQBDDpfF9THN9XUjA/m8FEVyA== X-Received: by 2002:a05:6000:2b03:b0:37d:3735:8fe7 with SMTP id ffacd0b85a97d-385c6ec08e2mr7795307f8f.32.1732911889891; Fri, 29 Nov 2024 12:24:49 -0800 (PST) Received: from smtpclient.apple (143-45-239-77.dyn.cable.qlnet.ch. [77.239.45.143]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434aa78c202sm93974595e9.26.2024.11.29.12.24.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Nov 2024 12:24:48 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\)) Subject: Re: PostgreSQL 15.10 update corrective action for ATTACH PARTITION/DETACH PARTITION From: Paul Foerster In-Reply-To: <202411291715.lwona3kp2xvv@alvherre.pgsql> Date: Fri, 29 Nov 2024 21:24:17 +0100 Cc: Tom Lane , Adrian Klaver , pgsql-general list Content-Transfer-Encoding: quoted-printable Message-Id: <41055379-D0D4-487D-9D8D-A624B79FEA56@gmail.com> References: <202411291715.lwona3kp2xvv@alvherre.pgsql> To: Alvaro Herrera X-Mailer: Apple Mail (2.3826.200.121) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Alvaro, > On 29 Nov 2024, at 18:15, Alvaro Herrera = wrote: >=20 > This all was to say that the query in the release notes is undoubtedly > wrong. After thinking some more about it, I think the fix is to add 1 > to the number of constraints: >=20 > SELECT conrelid::pg_catalog.regclass AS "constrained table", > conname AS constraint, > confrelid::pg_catalog.regclass AS "references", > pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', > conrelid::pg_catalog.regclass, conname) AS = "drop", > pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', > conrelid::pg_catalog.regclass, conname, > pg_catalog.pg_get_constraintdef(oid)) AS "add" > FROM pg_catalog.pg_constraint c > WHERE contype =3D 'f' AND conparentid =3D 0 AND > (SELECT count(*) FROM pg_catalog.pg_constraint c2 > WHERE c2.conparentid =3D c.oid) <> > ((SELECT count(*) FROM pg_catalog.pg_inherits i > WHERE (i.inhparent =3D c.conrelid OR i.inhparent =3D c.confrelid) = AND > EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table > WHERE partrelid =3D i.inhparent)) + > CASE when pg_partition_root(conrelid) =3D confrelid THEN 1 ELSE 0 = END); >=20 > This reports case 2 as OK and case 1 as bogus, as should be. I tried > adding more partitions and this seems to hold correctly. I was afraid > though that this would fail if we create an FK in an intermediate = level > of the partition hierarchy ... but experimentation doesn't seem to = give > that result. I've run out of time today to continue to look though. Thanks very much for this really detailed analysis and sharing your = insights. I'll give the new query a try on Monday when I'm back at work. = Do I also need to recheck all other databases with this new query which = didn't report anything with the original query? > =C3=81lvaro Herrera 48=C2=B001'N 7=C2=B057'E =E2=80=94 = https://www.EnterpriseDB.com/ > "La vida es para el que se aventura" You're located in the middle of the forest east of Freiburg im Breisgau = in Germany? =F0=9F=A4=A3 Cheers, Paul=