Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pEuG1-0004Zy-Op for pgsql-docs@arkaria.postgresql.org; Mon, 09 Jan 2023 15:40:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pEuG0-00083G-H7 for pgsql-docs@arkaria.postgresql.org; Mon, 09 Jan 2023 15:40:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pEuG0-000837-3V for pgsql-docs@lists.postgresql.org; Mon, 09 Jan 2023 15:40:16 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pEuFx-0002dv-FQ for pgsql-docs@lists.postgresql.org; Mon, 09 Jan 2023 15:40:15 +0000 Received: by mail-ed1-x52d.google.com with SMTP id m21so13112047edc.3 for ; Mon, 09 Jan 2023 07:40:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=W0vd86VAvzpqZzoy+InXiAO/SE1ya9Zh+2sZyM4gTus=; b=HCxdSxPJhH1bgybsq0Hi826xJHuzym9y20v1Q9T9Rsj01/Np82NNSJnv7e+ksQM6WO c290ZwGlk1fi8+AqUj/D07BehugpgdvvQilUeGUIVEI22eFoU+JaTBstXxysBaTEY8Bx b8irOdwlzC/TNayFVLGcIe3nruWDa8ZBINBZfYzx79n10IWFbOd4Fbi28mBW7YRFbnqK KEOUjbmw+fU6qigMXSbYXO16OuQ8FyMyfin2ICQoIZ4jYHLtfN4w1W95v/wIiY/6dikl 1UgdBJ/Iojf+u7k+miqB62NF/ER4OpsPV/9gFM02mJMJua1Lyio2o/Kq4LQRhjs2wacA QtJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=W0vd86VAvzpqZzoy+InXiAO/SE1ya9Zh+2sZyM4gTus=; b=edDrBzA0AgwQ0khDMmkEaSzls856mKh0cHTcQ+0Duxduvi7qWPX+W6/YFa5E82VhEI 9j1kZ8Mpo9/wA7h9zbY4VvVf9Ou5lf9YFonk1MflkbU7UC1xKTQ3SN6WRiAWxaNgj53j VtHa3sQAxLKScvhINIFHmfmPNOy/kVw1unzpRBFcXi/NJ/jBZCEitWexSxy5UImGz1o0 TwRvzBFdCzxMegmOr4EiOZXuttcYbKgHV8YCN8WUyZzjcT/1GLqhLDKdXST2qrROEal0 j+q9TJhFAUN+4z1PJbAAR4aJaUpX4tPUAeTsA8sn9++kJkAgsEc6LIlSQoS3MekxyJ4s Yj3g== X-Gm-Message-State: AFqh2kpEmECVUdqOt34h2fC6tuHcX9go87/0TgNifp6HfQLeqduiAGGg UKoN0QXgEMVBMSB8uC5QROdD9Q== X-Google-Smtp-Source: AMrXdXsyzqi/Rs5G1VQ0oa6srGYrLRPuba+F/2d6g1VwGmoDBjTGZjqX8OCMG8HlnjXzmNXdwn4MWA== X-Received: by 2002:aa7:c393:0:b0:499:b604:4de6 with SMTP id k19-20020aa7c393000000b00499b6044de6mr2820911edq.25.1673278811686; Mon, 09 Jan 2023 07:40:11 -0800 (PST) Received: from dynamic-pd01.res.v6.highway.a1.net ([2001:871:5e:539:1b2c:c52a:475d:310c]) by smtp.gmail.com with ESMTPSA id o7-20020aa7d3c7000000b0045bd14e241csm3855658edr.76.2023.01.09.07.40.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Jan 2023 07:40:11 -0800 (PST) Message-ID: Subject: Re: Postgres Partitions Limitations (5.11.2.3) From: Laurenz Albe To: navbarry@gmail.com, pgsql-docs@lists.postgresql.org Date: Mon, 09 Jan 2023 16:40:10 +0100 In-Reply-To: <167299368731.659.16130012959616771853@wrigleys.postgresql.org> References: <167299368731.659.16130012959616771853@wrigleys.postgresql.org> Content-Type: multipart/mixed; boundary="=-q1oXsWShCi5C8MrO8FkB" User-Agent: Evolution 3.46.2 (3.46.2-1.fc37) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-q1oXsWShCi5C8MrO8FkB Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2023-01-06 at 08:28 +0000, PG Doc comments form wrote: > The following documentation comment has been logged on the website: >=20 > Page: https://www.postgresql.org/docs/15/ddl-partitioning.html > Description: >=20 > Link: > https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITI= ONING-DECLARATIVE >=20 > "Using ONLY to add or drop a constraint on only the partitioned table is > supported as long as there are no partitions. Once partitions exist, usin= g > ONLY will result in an error. Instead, constraints on the partitions > themselves can be added and (if they are not present in the parent table) > dropped." This seems in contradiction to the example involving adding a > unique constraint while minimizing locking at the bottom of "5.11.2.2. > Partition Maintenance", which seems to run fine on my local Pg instance: >=20 > " > This technique can be used with UNIQUE and PRIMARY KEY constraints too; t= he > indexes are created implicitly when the constraint is created. Example: >=20 > ```ALTER TABLE ONLY measurement ADD UNIQUE (city_id, logdate); >=20 > ALTER TABLE measurement_y2006m02 ADD UNIQUE (city_id, logdate); > ALTER INDEX measurement_city_id_logdate_key > =C2=A0=C2=A0=C2=A0 ATTACH PARTITION measurement_y2006m02_city_id_logdate_= key; > ... > ``` > " >=20 > I might be misinterpreting something. Sorry if that's the case!=20 No, that is actually an omission in the documentation. The attached patch tries to improve that. Yours, Laurenz Albe --=-q1oXsWShCi5C8MrO8FkB Content-Disposition: attachment; filename*0=0001-Fix-omission-in-partitioning-limitation-documentatio.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Fix-omission-in-partitioning-limitation-documentatio.patch"; charset="UTF-8" RnJvbSBlY2RjZTc0MDU4NmUzM2VlYjM5NGQ0NzU2NGIxMGY4MTM4OTZmZjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogTW9uLCA5IEphbiAyMDIzIDE2OjM4OjU4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g Rml4IG9taXNzaW9uIGluIHBhcnRpdGlvbmluZyBsaW1pdGF0aW9uIGRvY3VtZW50YXRpb24KClVO SVFVRSBhbmQgUFJJTUFSWSBLRVkgY29uc3RyYWludHMgY2FuIGJlIGNyZWF0ZWQgb24gT05MWSB0 aGUKcGFydGl0aW9uZWQgdGFibGUuICBXZSBhbHJlYWR5IGhhZCBhbiBleGFtcGxlIGRlbW9uc3Ry YXRpbmcgdGhhdCwKYnV0IGZvcmdvdCB0byBtZW50aW9uIGl0IGluIHRoZSBkb2N1bWVudGF0aW9u IG9mIHRoZSBsaW1pdHMgb2YKcGFydGl0aW9uaW5nLgoKQXV0aG9yOiBMYXVyZW56IEFsYmUKRGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS8xNjcyOTkzNjg3MzEuNjU5LjE2MTMwMDEyOTU5 NjE2NzcxODUzQHdyaWdsZXlzLnBvc3RncmVzcWwub3JnCi0tLQogZG9jL3NyYy9zZ21sL2RkbC5z Z21sIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAppbmRleCA2ZTkyYmJkZGQyLi5iNGE3NWY5YzhmIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC00MjgyLDcgKzQy ODIsMTAgQEAgQUxURVIgSU5ERVggbWVhc3VyZW1lbnRfY2l0eV9pZF9sb2dkYXRlX2tleQogICAg ICAgICBVc2luZyA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiB0byBhZGQgb3IgZHJvcCBhIGNvbnN0 cmFpbnQgb24gb25seQogICAgICAgICB0aGUgcGFydGl0aW9uZWQgdGFibGUgaXMgc3VwcG9ydGVk IGFzIGxvbmcgYXMgdGhlcmUgYXJlIG5vCiAgICAgICAgIHBhcnRpdGlvbnMuICBPbmNlIHBhcnRp dGlvbnMgZXhpc3QsIHVzaW5nIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+Ci0gICAgICAgIHdpbGwg cmVzdWx0IGluIGFuIGVycm9yLiAgSW5zdGVhZCwgY29uc3RyYWludHMgb24gdGhlIHBhcnRpdGlv bnMKKyAgICAgICAgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgKHRoZSBleGNlcHRpb24gdG8gdGhp cyBhcmUKKyAgICAgICAgPGxpdGVyYWw+VU5JUVVFPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+UFJJ TUFSWSBLRVk8L2xpdGVyYWw+CisgICAgICAgIGNvbnN0cmFpbnRzLCB3aGljaCB3aWxsIGJlIGNy ZWF0ZWQgd2l0aCBhbiBpbnZhbGlkIGluZGV4LCBhcyBzaG93biBpbgorICAgICAgICB0aGUgZXhh bXBsZSBhYm92ZSkuICBJbnN0ZWFkLCBjb25zdHJhaW50cyBvbiB0aGUgcGFydGl0aW9ucwogICAg ICAgICB0aGVtc2VsdmVzIGNhbiBiZSBhZGRlZCBhbmQgKGlmIHRoZXkgYXJlIG5vdCBwcmVzZW50 IGluIHRoZSBwYXJlbnQKICAgICAgICAgdGFibGUpIGRyb3BwZWQuCiAgICAgICAgPC9wYXJhPgot LSAKMi4zOS4wCgo= --=-q1oXsWShCi5C8MrO8FkB--