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 1whFZA-0006ad-2c for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jul 2026 23:51:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whFY9-003TSR-2a for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jul 2026 23:50:02 +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 1whFY9-003TSI-1a for pgsql-hackers@lists.postgresql.org; Tue, 07 Jul 2026 23:50:02 +0000 Received: from mail-qv1-xf29.google.com ([2607:f8b0:4864:20::f29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whFY6-0000000080l-3sdJ for pgsql-hackers@postgresql.org; Tue, 07 Jul 2026 23:50:01 +0000 Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-8eefd4a8057so1125446d6.0 for ; Tue, 07 Jul 2026 16:49:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783468197; cv=none; d=google.com; s=arc-20260327; b=cJDikx/FemI60G/hdkIOi/hXUwww/aDEtYCxw7Zc4owGg2SO6n7CuImwGJnyig7r6W WvH368MDCIqAgyIZhPBE6hWczYyOjY3t6jKq35G/SXsXJcaJteUkDsm8bETgMSBKzECr E/FweLIG/SP7MnH6GCAGUBADckj6T0eDAxt+KxJiLy9AO0D9zr83xBxXBISmZa6QrZX0 dqCLP1gODs36HSyR+JZ4sNHS8HODZI+VMsxVcuuJvfFXL18fqgzaQ4aCOllVnNmm+vI3 ZfzGy0k11o51X05nlVVX2cxQpNzj9Hi+sANl/nbbJ/kTuBzqmD9VJj6TxxGeBuiNLsoI LlQg== 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=Jn6pvREHO7FQY0K0/VkE9nmimzJ17j+f7hiaZHsuTVo=; fh=zFgR5BbWkUT7qZoh95oB12qx5Y1c6n6hxXxHAjN1gPc=; b=L4nTavrO4sbzKeNCzklDIlCnotk7a58hDiMEKsOun/CglgpifuPf9bk5UowXkPoq3b NKayYFYaGoMUHEsel1HPgCMBV99o9utH0XLmLxDMoWBOH7VQAqG8Z1ASFhPxwtmHwRzx 2Bbi1bNR7nrFOM1dSMBihR7rEeZYbqOXtcBfW/ve71MixPi4x+epP2A7TSsGKc5/F4C4 HCjFNfD8iYTTz5vZuw6YHGbRY8Dr/9U2ewnIzUWH9UZy6Y2kfdr/3RWKhj1fXtpHulQx pITsCJEbhQJcoLfULeXIlS5vpYiWdpFWqctFkXwxeCAaSSyKlepICreCaYoeLqG4Rfav ogXA==; darn=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=1783468197; x=1784072997; darn=postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Jn6pvREHO7FQY0K0/VkE9nmimzJ17j+f7hiaZHsuTVo=; b=sNF1Nhsp7eFlvTr7zkYxLcYzIFe8kCqamMaGaHSio+KAuRGMlxeur3f1G96yRpi67T mE31Ur3CaPntobui6o/p6CYiwxQf1HzNA6difnaLvJLujzyhMEYYOhyEeFwusRXUpQ37 vNQcrwr4KCHWZr6rzCwIQPKFfo3bLYq702sPy0ORair6sYyg6IO7LBehTFKe2gYvEghd PJFLQurFQ1hqVvYwIGWjZ/LgvTHTzEntnmr9LCqrCKFLILBw/hQ6MfG5f9+E9Nlh1it8 IY3PDAJKPeiu2ibwbi2wL8r6/xpXSnKUEqjCTLlMRMP8adsuwtdmiBh2kG6B0i/6o3Yr 8vlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783468197; x=1784072997; h=content-type: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:content-type; bh=Jn6pvREHO7FQY0K0/VkE9nmimzJ17j+f7hiaZHsuTVo=; b=RgxWlaB/LQaBiF6YPRZQDDy8l6kgHLzGAY8vNz0sYeFY/akrZVeK9GuHUlAUX7bpYD 9Z0xJnpXSxVCRcQlG0KT8f35MW6ULgc8yr2XFlamiMG5CB0foephIa/mmtStRujeu+yC HcATmE54p6OtFhzdoOb8Bh4j2z1NAviWYb/c/fXZOLVq6ebtMb+FOu9oa2wQ25e+4md6 E3WOGVIHWs6PfVocOMboNw+QQg65UmIDrbRwfwUMJM/oYcsROG3eY+6T8+snpovA94fy 1Prtafn+judfoFbeY2h7gz4NVTIAkCOBY3xtVRBNKMSX48J03ND016ctLrRK62uVDLO7 BguQ== X-Forwarded-Encrypted: i=1; AHgh+Rr9QDRHTOsj/QCRfPglIQdxG5dj8wLQAWsyLH6+0I60e+tXAcAMw1wFym1cLj9EeOnB73kx0P0O6fVbD2cg@postgresql.org X-Gm-Message-State: AOJu0YwRB0BseHuW0TL7PH7nbAhhN/3QFIqz2Yq/V+/DRyvjDK4kYX4y 8E4fuV4gY3fCxCRXKf94R17IiLMONGCShNvM1G6GM9QQC4i4b9WYjuMBTnJkRWFdFOgF6mqcHNj 029BacNvxArQqQFGeGbHrFgBBBBvVVjY72xeB213nsg== X-Gm-Gg: AfdE7cklAIsNg/DfjVOwHX7OvfdGVdPFunkH+G170MY0pgceVp/YXV9Z/K+wvt6cXU4 UidW9zsKJuwvTRq5dhUpkJRKCjBbz/DyJ1bxES7RwWzx5NYcqYwTkNJusVuUIiIutk6VL4sK9qr TQP+ypeb1hMy2DvrVFjleYD48hvCXwn3pMJOU9nEOfYf0hlOGE9GRmlCAz6k5uAp8AWH9rPBlWI 5PUzssJqjX8KV1hQzQ5UOdTgOvBLg8y+0WZbqX3bputTM9Weze//KXbv+hXUu3oFPbDf4ySxiJo VnyKlz3qBmKruXqh9gEk+G3Ye66o4aPgVhXJTdwIWxQxm9+GRF/VIvOOF/oKv6bspBs4UjjgCIr XS73w+Hi5yVfHrCgNYPk/nn0s X-Received: by 2002:a05:6214:76d:b0:8ed:80aa:37a1 with SMTP id 6a1803df08f44-8fcb50e76b7mr85887486d6.43.1783468197523; Tue, 07 Jul 2026 16:49:57 -0700 (PDT) MIME-Version: 1.0 References: <20260707185751.f9.noahmisch@microsoft.com> In-Reply-To: <20260707185751.f9.noahmisch@microsoft.com> From: Alexander Korotkov Date: Wed, 8 Jul 2026 02:49:45 +0300 X-Gm-Features: AVVi8Cec7Ain4YB6KNEwK_3_Fu0btYgItd2-iCP-R5Xv9Gn_FEKSpi6c8t2oEdU Message-ID: Subject: Re: SPLIT/MERGE use of is_internal=true To: Noah Misch Cc: d.koval@postgrespro.ru, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="00000000000062402a06560e0cfd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000062402a06560e0cfd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jul 7, 2026 at 9:57=E2=80=AFPM Noah Misch wrote= : > > commit f2e4cc4 wrote: > > +/* > > + * createPartitionTable: > > + * > > + * Create a new partition (newPartName) for the partitioned table (par= ent_rel). > > + * ownerId is determined by the partition on which the operation is pe= rformed, > > + * so it is passed separately. The new partition will inherit the acc= ess method > > + * and persistence type from the parent table. > > + * > > + * Returns the created relation (locked in AccessExclusiveLock mode). > > + */ > > +static Relation > > +createPartitionTable(List **wqueue, RangeVar *newPartName, > > + Relation parent_rel, Oid ownerId= ) > > +{ > ... > > + /* Create the relation. */ > > + newRelId =3D heap_create_with_catalog(newPartName->relname, > > + = namespaceId, > > + = parent_relform->reltablespace, > > + = InvalidOid, > > + = InvalidOid, > > + = InvalidOid, > > + = ownerId, > > + = relamId, > > + = descriptor, > > + = NIL, > > + = RELKIND_RELATION, > > + = newPartName->relpersistence, > > + = false, > > + = false, > > + = ONCOMMIT_NOOP, > > + = (Datum) 0, > > + = true, > > + = allowSystemTableMods, > > + = true, > > + = InvalidOid, > > + = NULL); > > This and other places in the SPLIT/MERGE patches pass is_internal=3Dtrue,= which > ultimately flows to hooks with the following meaning: > > /* > * If this flag is set, the user hasn't requested that the object= be > * altered, but we're doing it anyway for some internal reason. > * Permissions-checking hooks may want to skip checks if, say, we= 're alter > * the constraints of a temporary heap during CLUSTER. > */ > bool is_internal; > > SPLIT/MERGE constitute user requests to create and/or drop tables, so the= y're > not like a CLUSTER temporary heap. They should pass is_internal=3Dfalse,= like > when the user runs CREATE/DROP directly. Thank you for catching this. For sure, we shouldn't pass is_internal=3Dtrue here. Attached patch fixes this. I'm going to push it if no objections. ------ Regards, Alexander Korotkov Supabase --00000000000062402a06560e0cfd Content-Type: application/octet-stream; name="v1-0001-Don-t-create-SPLIT-MERGE-partitions-as-internal-r.patch" Content-Disposition: attachment; filename="v1-0001-Don-t-create-SPLIT-MERGE-partitions-as-internal-r.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrbawdji0 RnJvbSA3NzUzOThmNjgyMzM3OGE2ODJlYzUzNDc4ODRmZDRhOTM5MGQ5Njc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogV2VkLCA4IEp1bCAyMDI2IDAyOjQ3OjA3ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2MV0gRG9uJ3QgY3JlYXRlIFNQTElUL01FUkdFIHBhcnRpdGlvbnMgYXMgaW50ZXJuYWwg cmVsYXRpb25zCgpjcmVhdGVQYXJ0aXRpb25UYWJsZSgpLCB3aGljaCBidWlsZHMgdGhlIG5ldyBw YXJ0aXRpb25zIGZvciBBTFRFUiBUQUJMRQouLi4gU1BMSVQgUEFSVElUSU9OIGFuZCBBTFRFUiBU QUJMRSAuLi4gTUVSR0UgUEFSVElUSU9OUywgcGFzc2VkCmlzX2ludGVybmFsPXRydWUgdG8gaGVh cF9jcmVhdGVfd2l0aF9jYXRhbG9nKCkuICBUaGVzZSByZWxhdGlvbnMgYXJlCmNyZWF0ZWQgYXQg dGhlIGV4cGxpY2l0IHJlcXVlc3Qgb2YgdGhlIHVzZXIsIGp1c3QgbGlrZSBhIHBsYWluIENSRUFU RQpUQUJMRSwgc28gcGFzcyBpc19pbnRlcm5hbD1mYWxzZSBpbnN0ZWFkLiAgVGhlIGlzX2ludGVy bmFsIGZsYWcgaXMgbWVhbnQKZm9yIG9iamVjdHMgY3JlYXRlZCBhcyBhbiBpbnRlcm5hbCBpbXBs ZW1lbnRhdGlvbiBkZXRhaWwgKGZvciBleGFtcGxlLCBhCnRyYW5zaWVudCBoZWFwIGJ1aWx0IGR1 cmluZyBDTFVTVEVSKSwgYW5kIGl0IGlzIG9ic2VydmVkIGJ5Cm9iamVjdC1hY2Nlc3MgaG9va3Mu CgpSZXBvcnRlZC1ieTogTm9haCBNaXNjaCA8bm9haEBsZWFkYm9hdC5jb20+CkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vMjAyNjA3MDcxODU3NTEuZjkubm9haG1pc2NoQG1pY3Jvc29m dC5jb20KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKaW5kZXggOTVhYmFmNDg5MGMuLjBiNmE4NGIzMmI3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwpAQCAtMjMxMzcsNyArMjMxMzcsNyBAQCBjcmVhdGVQYXJ0aXRpb25UYWJsZShM aXN0ICoqd3F1ZXVlLCBSYW5nZVZhciAqbmV3UGFydE5hbWUsCiAJCQkJCQkJCQkJKERhdHVtKSAw LAogCQkJCQkJCQkJCXRydWUsCiAJCQkJCQkJCQkJYWxsb3dTeXN0ZW1UYWJsZU1vZHMsCi0JCQkJ CQkJCQkJdHJ1ZSwKKwkJCQkJCQkJCQlmYWxzZSwJLyogaXNfaW50ZXJuYWwgKi8KIAkJCQkJCQkJ CQlJbnZhbGlkT2lkLAogCQkJCQkJCQkJCU5VTEwpOwogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --00000000000062402a06560e0cfd--