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 1vWnUP-009axH-0z for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Dec 2025 03:18:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vWnUM-009a5e-38 for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Dec 2025 03:18:39 +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 1vWnUM-009a5W-1s for pgsql-hackers@lists.postgresql.org; Sat, 20 Dec 2025 03:18:39 +0000 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vWnUF-001hTJ-0G for pgsql-hackers@lists.postgresql.org; Sat, 20 Dec 2025 03:18:33 +0000 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-64b9cb94ff5so1610349a12.2 for ; Fri, 19 Dec 2025 19:18:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766200709; x=1766805509; 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=39s+Wc5WLEmRGICx4zrsO1Hgbw3pP3QCV1hN4ZsZEfw=; b=EhqkeiOf+vajx8Ph4qkZjo763X7qA2tF+LTA7XQfGgVowuds5LmeWOGjAhePfc4xoR E5KB1tBUPibdCJvG53UYtShjcBIKFWuloL4kygAP0ZWPYgy4bK/+vgJFt1zuOgX6+Jq5 gdNNSnFdHueKsw4o0/KzUVqQdUJIGHa1+xeBLlGG1+p5SRXuzffExci9GBBAjbSOaL64 u52104HbC++mngbxAEUk1KxZL48yJZ3YXRV1VK+AiO/1rEbEgUK4n9K5Tzfo5yqAQqaD 9UGdZGrXzYbybCd4yCfG2RN2IHOB3V/ebXPtF4f2ZiBveNDf3+r6SZWzQzi/VeHxKrrw aOQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766200709; x=1766805509; 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=39s+Wc5WLEmRGICx4zrsO1Hgbw3pP3QCV1hN4ZsZEfw=; b=Ls4gqZNOKAMT7rGmxdj4zQRejvj5fQbUXZl+j2yx777G085bg++BzSWweI2WStXDyV E3gQHxt/1tiQhA61N1jez3HaCDPcHeU40NAOJFo6lL8lGWnxJ82u6EcO77/e/CO+Gd7w YEYHKPdfH/0Bjq1kyUV6csa2hezYxowFIpfau64UVHbzzojl3Qr0SuOq3VpO1JYe0y4b LBcI0xCkKW2YnnN8lypFrQKiJ/BTYoyTPNTiBxh5q6dsKJ0G2ehw8J2UmpQgLdFfy67C Mz1wnuo4Jku6ih5VCaJ2h37LQFIh9RazivBfSdWUeTFeK/P3CkHXjq+4yf3p6TTpqixC /Yew== X-Gm-Message-State: AOJu0Yw8gvJUSaixzg9IRJoGM53re4AyO4ev2C23nH1rkt6YfhMfbNKG UQ8ZekB532K1XiompkCmmsWiaWqBLnsToVBxnlpABmaDGv0rQzWZrhSRar9kxUjocS1QHrlOK9b Ea9ovTUckUQbpUozmbP72TXvDY9RymDQ= X-Gm-Gg: AY/fxX5a9UjOXatkEO8xLSqG6/KLhoiIL2iDQrdjnJPFBfiVxk2U8+mEEpxcSukB14S Y3KnZe55avIcSdqn4Pe0x42Mf0IOqP+99d6FNSvrxVEKzIfAgple9tGf6OAnzOVZQgO016qHL7l meCBsFQySmv9Vlgs9Ex/nSsgaaeYYYEhJ9K7/Xo5rlzLE9n27+Of1HzIZ83Br97FhSIUxyrIZ/o qV1U8AuNppR5SOaiAzjfR3AAu9KN6PDspERxsIAWP9JQj4WKT8woydaJS4BHFPC3UxJHGYF+mFs 2L4= X-Google-Smtp-Source: AGHT+IHyHw3Lchy9FahcHXrT57Baic1p/mqNCm610UskmdZSjEjqrEwOW8f2cD16JLNshOlcxhge8Fyo+eaJKGc8o9A= X-Received: by 2002:a17:907:72c8:b0:b73:6bd8:ebde with SMTP id a640c23a62f3a-b8037261007mr464526466b.53.1766200708705; Fri, 19 Dec 2025 19:18:28 -0800 (PST) MIME-Version: 1.0 References: <171085360143.2046436.7217841141682511557.pgcf@coridan.postgresql.org> <2643645f-2a02-43de-9321-c995ab1b7ef8@postgrespro.ru> <57a94d8a-d7b6-4c5e-9001-be1cd403b172@postgrespro.ru> <54414932-9E82-47AA-902B-2DED18F07F64@gmail.com> <3280c458-a886-4c58-8e2b-4d220b73161d@postgrespro.ru> <09414bf8-9326-431c-9422-b13bddf5f554@postgrespro.ru> <29ff27f5-d359-4479-b11c-ce28e525d806@postgrespro.ru> In-Reply-To: From: Tender Wang Date: Sat, 20 Dec 2025 11:18:16 +0800 X-Gm-Features: AQt7F2rE3fRjNIgv0fnAyJchYhawfAVbcaNuywyCpjNbYs3o10M2AyC1t161hWc Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Alexander Korotkov Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000d86508064659a5af" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d86508064659a5af Content-Type: multipart/alternative; boundary="000000000000d86507064659a5ad" --000000000000d86507064659a5ad Content-Type: text/plain; charset="UTF-8" Hi Alexander, I found this feature merged; thanks for this work. I tested it and found that one place in the error errcode may need to be changed. In checkPartition(): ... if (get_partition_parent(partRelOid, false) != RelationGetRelid(rel)) ereport(ERROR, errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" is not a partition of relation \"%s\"", ... ERRCODE_UNDEFINED_TABLE usually means "table does not exist." When entering here, the table should exist, otherwise table_open() already reports an error. I found another two errcode in checkPartition() use ERRCODE_WRONG_OBJECT_TYPE, In the attached patch, I replace ERRCODE_UNDEFINED_TABLE with ERRCODE_WRONG_OBJECT_TYPE. -- Thanks, Tender Wang --000000000000d86507064659a5ad Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
=C2= =A0Hi Alexander,

I found this feature merged; than= ks for this work.
I tested it and found that one place in the err= or errcode may need to be changed.
In=C2=A0checkPartition():
...
if (get_partition_parent(partRelOid, false) !=3D Relati= onGetRelid(rel))
=C2=A0 =C2=A0 ereport(ERROR,
=C2=A0 =C2=A0 errcode(E= RRCODE_UNDEFINED_TABLE),
=C2=A0 =C2=A0 errmsg("relation \"%s\&= quot; is not a partition of relation \"%s\"",
...<= /div>

ERRCODE_UNDEFINED_TABLE usually means "table = does not exist."
When entering here, the table should exist,= otherwise table_open() already reports an error.
I found another= two errcode in checkPartition() use=C2=A0ERRCODE_WRONG_OBJECT_TYPE,
<= div>In the attached patch, I replace ERRCODE_UNDEFINED_TABLE with ERRCODE_W= RONG_OBJECT_TYPE.

--
Thanks,
Tender Wang
--000000000000d86507064659a5ad-- --000000000000d86508064659a5af Content-Type: application/octet-stream; name="0001-Adjust-errcode-in-checkPartition.patch" Content-Disposition: attachment; filename="0001-Adjust-errcode-in-checkPartition.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjdpri6q0 RnJvbSA2NzZjZGU4MWZkYTAxMjMzZWY3MDc3NjEzMzRkNmQ1OWM5MDZlZmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUZW5kZXIgV2FuZyA8dG5kcndhbmdAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIwIERlYyAyMDI1IDEwOjU2OjM2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gQWRqdXN0 IGVycmNvZGUgaW4gY2hlY2tQYXJ0aXRpb24oKS4KClJlcGxhY2UgRVJSQ09ERV9VTkRFRklORURf VEFCTEUgd2l0aCBFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFLgotLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAyYjdi MDg0ZjIxNi4uM2FiZTU0MTBiNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAt MzU0NCw3ICszNTQ0LDcgQEAgY2hlY2tQYXJ0aXRpb24oUmVsYXRpb24gcmVsLCBPaWQgcGFydFJl bE9pZCwgYm9vbCBpc01lcmdlKQogCiAJaWYgKGdldF9wYXJ0aXRpb25fcGFyZW50KHBhcnRSZWxP aWQsIGZhbHNlKSAhPSBSZWxhdGlvbkdldFJlbGlkKHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCi0J CQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJZXJyY29kZShFUlJDT0RF X1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBub3Qg YSBwYXJ0aXRpb24gb2YgcmVsYXRpb24gXCIlc1wiIiwKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocGFydFJlbCksIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJCWlz TWVyZ2UKLS0gCjIuMzQuMQoK --000000000000d86508064659a5af--