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 1wdCZi-003xPT-1e for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Jun 2026 19:50:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wdCZh-00Cnpc-0m for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Jun 2026 19:50:53 +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 1wdCZg-00CnpK-2Y for pgsql-hackers@lists.postgresql.org; Fri, 26 Jun 2026 19:50:52 +0000 Received: from mail-qv1-xf34.google.com ([2607:f8b0:4864:20::f34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wdCZe-00000000Nhh-3VTR for pgsql-hackers@lists.postgresql.org; Fri, 26 Jun 2026 19:50:51 +0000 Received: by mail-qv1-xf34.google.com with SMTP id 6a1803df08f44-8dd6e530061so20575836d6.2 for ; Fri, 26 Jun 2026 12:50:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782503450; cv=none; d=google.com; s=arc-20260327; b=l7W/gy3IsxnhEGVUQLz72aaWGSWLp6XAkT+LHI0iZ1UKrGSQV901G+FWaduiWv8L4F Y+Ga4R1TbVsjUVimPO2ETLDzZALmVZ1HHaWkJo12IaAqnCBNcEp3sSe05U1tMlfQINxx 6J4DaXAFLp77eB4mhYTPPEfGi+giKMzLaXjI5WI2sOXajzInGriwGS+4Jsk5OtqWX+iH B/2y1ZiQBcXZvvomxtiuABDMzaEBtVIJ9KRKSTG+0++XGkQmhhrLy/h8OvqbJI9JOJsr 2Mh2gVhJKS7bQ0OdHpR/qmKJogZ9q6LYxiIRltj4RYWYLQs3ZOtjHc5v/BOwQehYf41a vokg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=TlRNlavYyWAKrg6/QZIXzMy3RkGx1IUb8eJlnbHuwQk=; fh=QGkGVOtDeqn8obgaC0lUoSgW59jAbuKy2/E94ywARCo=; b=oficBeke64eAQIzQ0wfHjELw0/46Hr5G7uF8CKz3f+GdUSEVl9rVMJuBxKqd9kiaR2 GZxcTG9ZqpIqPzDdT1ci+llumDuSJoX3RJwP0et/F7dShRm/XH+7EYfYseZwwaeEPqhD HMDNd3EMPWxE+A/4SiZjlRs8QmjNJIWwFdPIwVYr7Mtqxk3EeQa0tNozsILtX/K3YR0P 2AN23GOoaMyBGzsK5PpNXwDRXoL0e2DHRGOT4Z5bihp4WDhc/Cz8nNphzaa/HFKG/Dt7 IgitdQY9TGaF5PGtYP/E/X4Cj14am6GvjbR/6cL3uj+s8UCCqmUH4rmwno5Wa+81Dxsk H7sg==; 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=1782503450; x=1783108250; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TlRNlavYyWAKrg6/QZIXzMy3RkGx1IUb8eJlnbHuwQk=; b=N7ykb+UjlsQE7+xNmQmz8Fn7stp/WFgtRED7QSXKw14zD0zqwKI2BON3o43MmOjMFu 3zgw/fOGjrJv/naYhAJuScMeaiO0yoaUD2TdB3SCQda86awCnOUu+1ho4bb/EasUvSvo poIZGm1R42OJQybl9NsO0s1gNOsIJpfOOsBW1Mhl5aSmNuxZAUZjlDjWeXFkya3WP05N KitfiworWzbyA0YTptPMQFyxkKM5L+XZOZo6tDr3h4c7HVHl+8n29x2Hyhad4/uNC+e3 iuf9QUr2FcMl5qgsnjtiMps9XB8WVS66v9ZcI38feDPO0Tv5Z6QRN1v/VlVJNUh83J0C PhWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782503450; x=1783108250; h=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=TlRNlavYyWAKrg6/QZIXzMy3RkGx1IUb8eJlnbHuwQk=; b=EnlMxyCrIeIPZPGB5suGR121fK9nN205igeoLp+WwrljzpGt1t6VLbyWL5cXQcKMZi iQd7BM+zT6r21SLCTmUOzU9dOcNg7s2DXHyyhpKQfi7U7qTd7fMzCHe9ngAoppI3dOyG Y2G7stNY6xJyqwZ0ZWRKYz1WOuA5Qr+zVYFVNFgJ5l4sQ4I7ww1Xscf3KZbP7dXbwDZY 0PDG7UtPi6jnnvhFfiBWkNDWNJaJwqchw9KOUIAvYZBNY1Lle7Nq4eZ5g+Vdb3iQwSKO BEXQcouxJ3i8ghtyJjbXx6Uwsxv/tRRKJJ5fhu46fetDewW4OtBGOmnQbJF5QZ4YjPbC n1Zw== X-Forwarded-Encrypted: i=1; AHgh+Rp0g8sh2XbMrsYFN+Cp5ebI8vuyUV6Tzie9pMbFuqdsgz6+VPOJ+UAsh3KPc7DsR2MXgh+ENl76NA1HQfBE@lists.postgresql.org X-Gm-Message-State: AOJu0YwhvzoyeD0Q/LIgZbnSO7+cnqAEbt7JaJvclj9ayCIV+TcwUxjO 5MIE7bWEb+l3DSOhVskSFH/KIs0wbR7WB0/eKNNmn6xp0F2l08jfEnd3V7UHmKRYnrPpcKl1I/V 2/hLJ7GeSqiGe9+pkx8pSFDf/NvkUSuo= X-Gm-Gg: AfdE7cmXQa/9Zv3q2HC8SFxMNsUCA/ibRVPSauqJSxt49lqagA+aHV558vKQ6e2icU4 0ACeNpIujOg9V+8UKJyihx2z6x4BnEA5xZdEM61oKQgRJxhQpk+iN7nM1qY9bEPj9tfvze7tfas /5tFV17X9cGD+HwDYl6wD4DpdfAFJPXGfuo91mJNBir7R/6EqdeuNI6vY8In4baGWx6X17BQDN2 qQUAfHlXTtA/JL3gbl/tjg6POEJkmOZiGu7JTeUIzGBUsxS8feltcimMm+MWvhAwnHeTYt0o7VA VWgg0V4yiXrbiFxsL/qUaJsFveRokdR+51EukNZeuQ4l8QRE3XbFQ8OdDfJmqNe7pE9qdEp5mjl +LNOrebH66MXh3g== X-Received: by 2002:a05:6214:4344:b0:8c2:bbef:cccc with SMTP id 6a1803df08f44-8e6d628aaccmr147332836d6.31.1782503449845; Fri, 26 Jun 2026 12:50:49 -0700 (PDT) MIME-Version: 1.0 References: <232439a3-af7a-4a13-82ae-33da5520d4bf@postgrespro.ru> In-Reply-To: <232439a3-af7a-4a13-82ae-33da5520d4bf@postgrespro.ru> From: Alexander Korotkov Date: Fri, 26 Jun 2026 22:50:36 +0300 X-Gm-Features: AVVi8CcNzVuj84aN4QXYO5XG3KTwkEhRrIveefeKutmEbjoc9Ae6UHFLoaZsDMw Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Dmitry Koval Cc: Pavel Borisov , Justin Pryzby , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000f088a806552d6ca0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f088a806552d6ca0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 26, 2026 at 6:20=E2=80=AFPM Dmitry Koval wrote: > If we exclude case with DEFAULT partition, MERGE PARTITIONS command was > intended to be used when an incorrect table partitioning was chosen. > For example, a table was initially partitioned by month, but later we > needed to change table partitioning by quarter. In this case, MERGE > PARTITIONS command should merge several adjacent partitions into one. > Current checks are made for this case. > > >- If there's *no* default partition, then I think the check should be > >relaxed; it's sufficient to verify that the bounds of the merged > >partition do not overlap with any partition which is not being merged; > > It's probably possible to do this. But in this case, the command will > not exactly be "MERGE PARTITIONS" ("MERGE PARTITIONS & EXPAND"?). +1, We can implement a support for this for 20. For 19, I propose to state the restriction more explicit in the docs. See the attached patch. ------ Regards, Alexander Korotkov Supabase --000000000000f088a806552d6ca0 Content-Type: application/octet-stream; name="v1-0001-doc-clarify-MERGE-PARTITIONS-adjacency-requiremen.patch" Content-Disposition: attachment; filename="v1-0001-doc-clarify-MERGE-PARTITIONS-adjacency-requiremen.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvcirrc0 RnJvbSBiNjBhMGQ4Njc0NDNhZjdhYjQ1ZWM3MGRlNWQ2NWRmOGY5M2FiOTBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogRnJpLCAyNiBKdW4gMjAyNiAyMjo0NDowMSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjFdIGRvYzogY2xhcmlmeSBNRVJHRSBQQVJUSVRJT05TIGFkamFjZW5jeSByZXF1aXJl bWVudAoKVGhlIGV4aXN0aW5nIGRlc2NyaXB0aW9uIHNheXMgdGhlIHJhbmdlcyBvZiBtZXJnZWQg cmFuZ2UtcGFydGl0aW9ucwoibXVzdCBiZSBhZGphY2VudCBpbiBvcmRlciB0byBiZSBtZXJnZWQi IG9ubHkgdW5kZXIgdGhlIGhlYWRpbmcKIklmIHRoZSBERUZBVUxUIHBhcnRpdGlvbiBpcyBub3Qg aW4gdGhlIGxpc3Qgb2YgbWVyZ2VkIHBhcnRpdGlvbnMiLAp3aGljaCBjYW4gYmUgbWlzcmVhZCBh cyBhIHJlc3RyaWN0aW9uIHRpZWQgdG8gdGhlIHByZXNlbmNlIG9mIGEKZGVmYXVsdCBwYXJ0aXRp b24uICBJbiBmYWN0LCBtZXJnaW5nIG5vbi1hZGphY2VudCByYW5nZXMgaXMgcmVqZWN0ZWQKcmVn YXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBoYXMgYSBkZWZhdWx0IHBh cnRpdGlvbjsKc3BlbGwgdGhhdCBvdXQgZXhwbGljaXRseS4KClJlcG9ydGVkLWJ5OiBKdXN0aW4g UHJ5emJ5IDxwcnl6YnlAdGVsc2Fzb2Z0LmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9hajZCUG96aVNiLUY4YUp6JTQwcHJ5emJ5ajIwMjMKLS0tCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3RhYmxlLnNnbWwgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFi bGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAppbmRleCA2N2EwNTU5 MzE0MC4uMGRmNzM5NmYyNjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFi bGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTExOTYs NyArMTE5Niw4IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgPGxpc3RpdGVtPgog ICAgICAgICA8cGFyYT4KICAgICAgICAgIEZvciByYW5nZS1wYXJ0aXRpb25lZCB0YWJsZXMsIHRo ZSByYW5nZXMgb2YgbWVyZ2VkIHBhcnRpdGlvbnMKLSAgICAgICAgIG11c3QgYmUgYWRqYWNlbnQg aW4gb3JkZXIgdG8gYmUgbWVyZ2VkLgorICAgICAgICAgbXVzdCBiZSBhZGphY2VudCBpbiBvcmRl ciB0byBiZSBtZXJnZWQ7IHRoaXMgYXBwbGllcyBldmVuIGlmCisgICAgICAgICB0aGUgcGFydGl0 aW9uZWQgdGFibGUgaGFzIG5vIGRlZmF1bHQgcGFydGl0aW9uLgogICAgICAgICAgVGhlIHBhcnRp dGlvbiBib3VuZHMgb2YgbWVyZ2VkIHBhcnRpdGlvbnMgYXJlIGNvbWJpbmVkIHRvIGZvcm0gdGhl IG5ldyBwYXJ0aXRpb24gYm91bmQgZm9yCiAgICAgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cGFydGl0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi4KICAgICAgICAgPC9wYXJhPgot LSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000f088a806552d6ca0--