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 1w4nh3-002ZII-1e for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 22:24:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4nh1-002kfd-1b for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 22:24:15 +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 1w4nh1-002kfV-0P for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 22:24:15 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4ngy-00000000lxg-2Y4R for pgsql-hackers@postgresql.org; Mon, 23 Mar 2026 22:24:14 +0000 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-506362ac5f7so30664851cf.1 for ; Mon, 23 Mar 2026 15:24:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774304651; cv=none; d=google.com; s=arc-20240605; b=f2kf6kjOJ1sHQvvQrp6uRPcumwt6wJdO5whPeXGodwOqh3vZXDXoE+4OV5H3fRUYug GFAX3ZGAHrXFPZPDop4Z4TXGTo9k79E7io2+UpoUgkcbaSB/ZZ8pTxADrYaveGN3NMAn 6yaVDqk5GoKJmtSpKpE00pLKbc9k9bXxmvDnottzXJpLFkdqBjiFiVAbB35uMA02M0gU nVK7fptdZUMoCjRntWSfdPHdRZMfBDo9IoH/wgBe5NmpQ2lHPF/hG7wf7w152QR3KqLU GUjEFkEJwwV0Tj6AXDs5rxTc+VPW9IpinNERlAULieQfcOuLTRn/2noBiFCLVX10pN25 rY4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=s71BYoBkCtm0KBacChASuXgaXqHCM78Jkpkw1k/RzoU=; fh=FIa6CnAOcDlblDMIqVQXhn30ONA1aoHzZ0tfczHgg8I=; b=XJgxXIWzTQlQYlQCaUEEinYyK6lOG0H1qHwsfwotFLsDX9XW3vdT8phbX8iBCShIBM 5sI8SkSfda8/FKhlqw+XiI0qOkPpI5hEho2d+bCp++fO5kZcNrunp4lwxQJlPmpPuJ8J a+p3tCQBdG3sWgmPzt/cdYYf7dt3EUPnSfZ0E/5r3ERHA96xMk+v3Q4ZgJtfcBzVnr7K dEs2rI4hUHFz44a4hrOzBDiViYvQRqVf0GQ6vwcYhF8E/tt45u0v0awdDjKpW0+rG7nw i18wO7x/HSYA6SreKRCktWUbXr6psgKYHRba6nzpsd/cVbfq3z1eLJgkfKOLe8jpvqZk mIVQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=supabase.io; s=google; t=1774304651; x=1774909451; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=s71BYoBkCtm0KBacChASuXgaXqHCM78Jkpkw1k/RzoU=; b=wWHwpx8ap29ldeOD0Wox+BTEBsDyd3pG36XtuUims4j83p6OWAiHFmnfWbE0c7b//L yCOTV3Lfzu88QIZjTnSILTDAhyZFl/+GdG8QJTXMH0kg1F0+X1HwbNN5Y6aBKgVY4eXv JYrM/T+wM8DNa+VhFisbpPEMC2KqzeSoDhkls8XIRgTlg3nNG7VoFfQ2+nDrkEwqeQp/ afsfMfNE4CeKNKBB5qn4kH1q/BvSXMnIqtYxPhhMngE+THPZZKo2VpF/Nfyc+Fy4Uf8O sjje0dbnuLiT74kLANmhEz4SCxj0dEBGHvZfoBwPMBrunx+mphKw/uWDKgOHIZ4Y9kMj B/Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774304651; x=1774909451; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=s71BYoBkCtm0KBacChASuXgaXqHCM78Jkpkw1k/RzoU=; b=VzTHJYnF7h9wYTqpIuCOeQzw0AsOrlx3NGp1cR/C6cFRD/3YGm/cvJTXjLB65TlT8L oc1U2UDTkrVhOyC2uvuV/Zms7pQmcuVmiCTcjXbEQjkxVLh6XSNH1inrhm8+sNJPURal cNJnmn2sRS06mwzAqZcfaIVdcv70mfraqGRXJg7Y/3ky4mRJTm8h35Pstt16wNT7y8wW RdTnYQUPEkAp12t1dnsKbjPcVvBcNvP/yiRD9snAc4o1nr4+ItZ66mE5JzoNKX3A2H+4 eSV194ik1Pec2ianubXfL32ah5+gv9Mq8VZ5n/HXHcIHcsz2oS28qLTK3i9jFhBgnDYZ pZ7g== X-Gm-Message-State: AOJu0Yxi4iL72rkMu0QUCf7y9NgtpgpEZjLsxnHQ5/nz+p1jdlP1JF4o IxNHmxxBQUcpD4cjZi2f9L2a79DEqpMK4+IFsaGnGUHPvgQ4rwgZSOz7FgXzE8fhXs8f06WM6Xv TCJ1A4UIOqYe3PQLacI/sbjWFKPHLSzQnEH5uiOIxe05+4R1KS7I5xcDa4g== X-Gm-Gg: ATEYQzzHtWyfzlV8aFpDim2tWOFdxl04Z/8rP9+Y9bq8r900o+7K+vG6yeT+g2F9eqv EAe6Omnu+bkyJ1z2AD+jBQv3dGzuQRfAYEwXQS1HssN00P86ucJXm3cWBYBkmCvFsd/oYN7kdTk A6Obo+LgWucpgsdkzNBL6DGzaE3QUGscVPmncqKswbVotUsPwvAyw/Q8pE5qD0RnGyE9vB7kv0E BA22TP+fz9emSdqlLzSojPVMfcV6/GMQYhvj/Uwrqd/CHMRNQHQoJMVGgiAvuPlYiJjwRWwSwzE tGytRppjKT2ueWUvnw== X-Received: by 2002:a05:622a:2611:b0:50b:4e65:95dd with SMTP id d75a77b69052e-50b4e6598dcmr126903651cf.62.1774304650578; Mon, 23 Mar 2026 15:24:10 -0700 (PDT) MIME-Version: 1.0 From: Steve Chavez Date: Mon, 23 Mar 2026 17:23:59 -0500 X-Gm-Features: AaiRm51Y0VI7j_EihOCeBkJ7D7yWWusnS4ccSFw0CLhcDKQgbh7-Xw0kMlWi9iw Message-ID: Subject: [PATCH] refactor ExecCheckPermissionsModified for ACL_SELECT To: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000006c6a60064db87e20" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006c6a60064db87e20 Content-Type: multipart/alternative; boundary="0000000000006c6a5f064db87e1e" --0000000000006c6a5f064db87e1e Content-Type: text/plain; charset="UTF-8" Hello hackers, Currently the code on ExecCheckOneRelPerms duplicates the logic in ExecCheckPermissionsModified. This change accommodates ExecCheckPermissionsModified to handle ACL_SELECT and makes ExecCheckOneRelPerms reuse code. It also merges similar comments. Main benefit is that it reduces LOCs and centralizes column privilege logic. Best regards, Steve Chavez --0000000000006c6a5f064db87e1e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello hackers,

Currently the code on Ex= ecCheckOneRelPerms duplicates the logic in ExecCheckPermissionsModified.
This change accommodates ExecCheckPermissionsModified to handle ACL_SE= LECT and makes ExecCheckOneRelPerms reuse code. It also merges similar comm= ents.

Main benefit is that it reduces LOCs and centralizes column pr= ivilege logic.

Best regards,
Steve C= havez
--0000000000006c6a5f064db87e1e-- --0000000000006c6a60064db87e20 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-refactor-ExecCheckPermissionsModified-for-ACL_SELECT.patch" Content-Disposition: attachment; filename="0001-refactor-ExecCheckPermissionsModified-for-ACL_SELECT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3r3yaf0 RnJvbSA2MTExZDJlMDI0ODdlNmRlNjcyNmM2YTVmZTI3NDZjZTdmOWQ1NTlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzdGV2ZS1jaGF2ZXogPHN0ZXZlY2hhdmV6YXN0QGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyMyBNYXIgMjAyNiAxNzowODo0MSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IHJlZmFjdG9yIEV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQgZm9yIEFDTF9TRUxFQ1QKCkN1 cnJlbnRseSB0aGUgY29kZSBvbiBFeGVjQ2hlY2tPbmVSZWxQZXJtcyBkdXBsaWNhdGVzIHRoZSBs b2dpYwppbiBFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkLgoKVGhpcyBjaGFuZ2UgYWNjb21t b2RhdGVzIEV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQgdG8gaGFuZGxlCkFDTF9TRUxFQ1Qg YW5kIG1ha2VzIEV4ZWNDaGVja09uZVJlbFBlcm1zIHJldXNlIGNvZGUuIEl0IGFsc28gbWVyZ2Vz CnNpbWlsYXIgY29tbWVudHMuCgpNYWluIGJlbmVmaXQgaXMgdGhhdCBpdCByZWR1Y2VzIExPQ3Mg YW5kIGNlbnRyYWxpemVzIGNvbHVtbiBwcml2aWxlZ2UKbG9naWMuCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyB8IDcwICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDU4Yjg0OTU1YzJiLi5jMWNjODI1MTE4NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCkBAIC02NzYsOCArNjc2LDYgQEAgRXhlY0NoZWNrT25lUmVsUGVy bXMoUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvKQogCXJlbWFpbmluZ1Blcm1zID0gcmVxdWly ZWRQZXJtcyAmIH5yZWxQZXJtczsKIAlpZiAocmVtYWluaW5nUGVybXMgIT0gMCkKIAl7Ci0JCWlu dAkJCWNvbCA9IC0xOwotCiAJCS8qCiAJCSAqIElmIHdlIGxhY2sgYW55IHBlcm1pc3Npb25zIHRo YXQgZXhpc3Qgb25seSBhcyByZWxhdGlvbiBwZXJtaXNzaW9ucywKIAkJICogd2UgY2FuIGZhaWwg c3RyYWlnaHQgYXdheS4KQEAgLTY5Miw0NSArNjkwLDEzIEBAIEV4ZWNDaGVja09uZVJlbFBlcm1z KFJURVBlcm1pc3Npb25JbmZvICpwZXJtaW5mbykKIAkJICogdG8gcmVwb3J0IGEgY29sdW1uLWxl dmVsIGVycm9yIGlmIHdlIGhhdmUgc29tZSBidXQgbm90IGFsbCBvZiB0aGUKIAkJICogY29sdW1u IHByaXZpbGVnZXMuCiAJCSAqLwotCQlpZiAocmVtYWluaW5nUGVybXMgJiBBQ0xfU0VMRUNUKQot CQl7Ci0JCQkvKgotCQkJICogV2hlbiB0aGUgcXVlcnkgZG9lc24ndCBleHBsaWNpdGx5IHJlZmVy ZW5jZSBhbnkgY29sdW1ucyAoZm9yCi0JCQkgKiBleGFtcGxlLCBTRUxFQ1QgQ09VTlQoKikgRlJP TSB0YWJsZSksIGFsbG93IHRoZSBxdWVyeSBpZiB3ZQotCQkJICogaGF2ZSBTRUxFQ1Qgb24gYW55 IGNvbHVtbiBvZiB0aGUgcmVsLCBhcyBwZXIgU1FMIHNwZWMuCi0JCQkgKi8KLQkJCWlmIChibXNf aXNfZW1wdHkocGVybWluZm8tPnNlbGVjdGVkQ29scykpCi0JCQl7Ci0JCQkJaWYgKHBnX2F0dHJp YnV0ZV9hY2xjaGVja19hbGwocmVsT2lkLCB1c2VyaWQsIEFDTF9TRUxFQ1QsCi0JCQkJCQkJCQkJ CSAgQUNMTUFTS19BTlkpICE9IEFDTENIRUNLX09LKQotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQl9 Ci0KLQkJCXdoaWxlICgoY29sID0gYm1zX25leHRfbWVtYmVyKHBlcm1pbmZvLT5zZWxlY3RlZENv bHMsIGNvbCkpID49IDApCi0JCQl7Ci0JCQkJLyogYml0ICNzIGFyZSBvZmZzZXQgYnkgRmlyc3RM b3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlciAqLwotCQkJCUF0dHJOdW1iZXIJYXR0bm8gPSBj b2wgKyBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyOwotCi0JCQkJaWYgKGF0dG5v ID09IEludmFsaWRBdHRyTnVtYmVyKQotCQkJCXsKLQkJCQkJLyogV2hvbGUtcm93IHJlZmVyZW5j ZSwgbXVzdCBoYXZlIHByaXYgb24gYWxsIGNvbHMgKi8KLQkJCQkJaWYgKHBnX2F0dHJpYnV0ZV9h Y2xjaGVja19hbGwocmVsT2lkLCB1c2VyaWQsIEFDTF9TRUxFQ1QsCi0JCQkJCQkJCQkJCQkgIEFD TE1BU0tfQUxMKSAhPSBBQ0xDSEVDS19PSykKLQkJCQkJCXJldHVybiBmYWxzZTsKLQkJCQl9Ci0J CQkJZWxzZQotCQkJCXsKLQkJCQkJaWYgKHBnX2F0dHJpYnV0ZV9hY2xjaGVjayhyZWxPaWQsIGF0 dG5vLCB1c2VyaWQsCi0JCQkJCQkJCQkJCSAgQUNMX1NFTEVDVCkgIT0gQUNMQ0hFQ0tfT0spCi0J CQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQotCQkJfQotCQl9CisJCWlmIChyZW1haW5pbmdQZXJt cyAmIEFDTF9TRUxFQ1QgJiYKKwkJCSFFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKHJlbE9p ZCwKKwkJCQkJCQkJCQkgIHVzZXJpZCwKKwkJCQkJCQkJCQkgIHBlcm1pbmZvLT5zZWxlY3RlZENv bHMsCisJCQkJCQkJCQkJICBBQ0xfU0VMRUNUKSkKKwkJCXJldHVybiBmYWxzZTsKCi0JCS8qCi0J CSAqIEJhc2ljYWxseSB0aGUgc2FtZSBmb3IgdGhlIG1vZCBjb2x1bW5zLCBmb3IgYm90aCBJTlNF UlQgYW5kIFVQREFURQotCQkgKiBwcml2aWxlZ2UgYXMgc3BlY2lmaWVkIGJ5IHJlbWFpbmluZ1Bl cm1zLgotCQkgKi8KIAkJaWYgKHJlbWFpbmluZ1Blcm1zICYgQUNMX0lOU0VSVCAmJgogCQkJIUV4 ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQocmVsT2lkLAogCQkJCQkJCQkJCSAgdXNlcmlkLApA QCAtNzUwLDcgKzcxNiw3IEBAIEV4ZWNDaGVja09uZVJlbFBlcm1zKFJURVBlcm1pc3Npb25JbmZv ICpwZXJtaW5mbykKCiAvKgogICogRXhlY0NoZWNrUGVybWlzc2lvbnNNb2RpZmllZAotICoJCUNo ZWNrIElOU0VSVCBvciBVUERBVEUgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIHNpbmdsZSByZWxh dGlvbiAodGhlc2UKKyAqCQlDaGVjayBTRUxFQ1QsIElOU0VSVCBvciBVUERBVEUgYWNjZXNzIHBl cm1pc3Npb25zIGZvciBhIHNpbmdsZSByZWxhdGlvbiAodGhlc2UKICAqCQlhcmUgcHJvY2Vzc2Vk IHVuaWZvcm1seSkuCiAgKi8KIHN0YXRpYyBib29sCkBAIC03NjAsOSArNzI2LDExIEBAIEV4ZWND aGVja1Blcm1pc3Npb25zTW9kaWZpZWQoT2lkIHJlbE9pZCwgT2lkIHVzZXJpZCwgQml0bWFwc2V0 ICptb2RpZmllZENvbHMsCiAJaW50CQkJY29sID0gLTE7CgogCS8qCi0JICogV2hlbiB0aGUgcXVl cnkgZG9lc24ndCBleHBsaWNpdGx5IHVwZGF0ZSBhbnkgY29sdW1ucywgYWxsb3cgdGhlIHF1ZXJ5 Ci0JICogaWYgd2UgaGF2ZSBwZXJtaXNzaW9uIG9uIGFueSBjb2x1bW4gb2YgdGhlIHJlbC4gIFRo aXMgaXMgdG8gaGFuZGxlCi0JICogU0VMRUNUIEZPUiBVUERBVEUgYXMgd2VsbCBhcyBwb3NzaWJs ZSBjb3JuZXIgY2FzZXMgaW4gVVBEQVRFLgorCSAqIFdoZW4gdGhlIHF1ZXJ5IGRvZXNuJ3QgZXhw bGljaXRseSByZWZlcmVuY2UgYW55IGNvbHVtbnMgKGZvcgorCSAqIGV4YW1wbGUsIFNFTEVDVCBD T1VOVCgqKSBGUk9NIHRhYmxlIG9yIElOU0VSVCBERUZBVUxUIFZBTFVFUyksCisgICAqIGFsbG93 IHRoZSBxdWVyeSBpZiB3ZSBoYXZlIHBlcm1pc3Npb24gb24gYW55IGNvbHVtbiBvZiB0aGUgcmVs LCBhcyBwZXIgU1FMIHNwZWMuCisJICoKKwkgKiBUaGlzIGhhbmRsZXMgU0VMRUNUIEZPUiBVUERB VEUgYXMgd2VsbCBhcyBwb3NzaWJsZSBjb3JuZXIgY2FzZXMgaW4gVVBEQVRFLgogCSAqLwogCWlm IChibXNfaXNfZW1wdHkobW9kaWZpZWRDb2xzKSkKIAl7CkBAIC03NzYsMTAgKzc0NCwyMCBAQCBF eGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1c2VyaWQsIEJpdG1h cHNldCAqbW9kaWZpZWRDb2xzLAogCQkvKiBiaXQgI3MgYXJlIG9mZnNldCBieSBGaXJzdExvd0lu dmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyICovCiAJCUF0dHJOdW1iZXIJYXR0bm8gPSBjb2wgKyBG aXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyOwoKKwkJLyogV2hvbGUtcm93IHJlZmVy ZW5jZSwgbXVzdCBoYXZlIHByaXYgb24gYWxsIGNvbHMgKi8KIAkJaWYgKGF0dG5vID09IEludmFs aWRBdHRyTnVtYmVyKQogCQl7Ci0JCQkvKiB3aG9sZS1yb3cgcmVmZXJlbmNlIGNhbid0IGhhcHBl biBoZXJlICovCi0JCQllbG9nKEVSUk9SLCAid2hvbGUtcm93IHVwZGF0ZSBpcyBub3QgaW1wbGVt ZW50ZWQiKTsKKworCQkJLyogSW4gdGhlIGNhc2Ugb2YgU0VMRUNUICogd2UgaGF2ZSB0byBjaGVj ayBmb3IgYWxsIGNvbHVtbiBwZXJtaXNzaW9ucyAqLworCQkJaWYgKHJlcXVpcmVkUGVybXMgPT0g QUNMX1NFTEVDVCkKKwkJCXsKKwkJCQlpZiAocGdfYXR0cmlidXRlX2FjbGNoZWNrX2FsbChyZWxP aWQsIHVzZXJpZCwgcmVxdWlyZWRQZXJtcywKKwkJCQkJCQkJCQkJICBBQ0xNQVNLX0FMTCkgIT0g QUNMQ0hFQ0tfT0spCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCWVsc2UKKwkJCQkvKiB3 aG9sZS1yb3cgcmVmZXJlbmNlIGNhbid0IGhhcHBlbiBoZXJlICovCisJCQkJZWxvZyhFUlJPUiwg Indob2xlLXJvdyB1cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIik7CiAJCX0KIAkJZWxzZQogCQl7 Ci0tCjIuNDAuMQoK --0000000000006c6a60064db87e20--