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.94.2) (envelope-from ) id 1tsOLX-001Syc-Iz for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Mar 2025 15:50:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tsOLV-007nAt-Sq for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Mar 2025 15:50:13 +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.94.2) (envelope-from ) id 1tsOLV-007nAl-J6 for pgsql-hackers@lists.postgresql.org; Wed, 12 Mar 2025 15:50:13 +0000 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tsOLS-002TbU-0u for pgsql-hackers@postgresql.org; Wed, 12 Mar 2025 15:50:13 +0000 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-2c1caacc1f7so8912fac.3 for ; Wed, 12 Mar 2025 08:50:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741794609; x=1742399409; darn=postgresql.org; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=bDweZOUjHDJJJzdRhmevZXykCSHe2q26wVe8q67pxF0=; b=Yzku0cUQdUzqV6ctJorjibHnq35Rk4Vh5YWX4H3CAYd54cPjl3kh5GxtvD+MOQRu/f ydab325ZVZ6Qog+k2kBsewn/00drGJ02nEH3x+KPAJG1FptmkC7er7rAJtg8xTepKPH2 OSH3PQjm5Jy1PJkptBoeGCGdKL16Ftc3qgs2tDjqCQ5xQwOCpxHTHtBoEB9JVSBKQ3mT mAdNOhLJbwdMtR5DfZ6SF2eFfYsk5BOyiEzNqpPUwsjIu8bdUcTzyEqVm+3KXCBvSmze u/LahIqsxVQ/pJS1l3L4/ORiTye+4d6zFA4zUbVyiAq/gNAB5m4eCAaLU6Q5JO1lnLXP NahA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741794609; x=1742399409; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bDweZOUjHDJJJzdRhmevZXykCSHe2q26wVe8q67pxF0=; b=cVroirU63LTuYS+7rO/xhzmaJ4Pxl0UQYiiyu9FoohGFJqLkIFJjE0CrX6A6Ci3Key xIriZ80nHPWoydMB8eHwdg9HNZIdU2hwXfm5RMfZNMNeOU9S+sUTcnZfiyfZAGCu8sOz aDWD08rOXNEaSbN8seW5Zg0FDOznrVJCYt8dYJTzoEIROKLVGAROgCbCRKkgd9elA6lv s344vPMVgrE1vzTtCRp88QGl5Bunya4WGGSXCICyFsBs+hM9nQXt7n+Qvem30WFQvi33 Thhb+TcMdOdDM7VOxS3iHSBa76ortz48RNUvmHjFEMwHQOnZPmqNVPwU6hbtwRoJ4ila XlWw== X-Gm-Message-State: AOJu0YwfuKZuyFDKs8d4Ng7vgs1d4jgYWaDoWCg2r/Jy/x7mrNdLHy4j k6vskyj8KzDWEEDNQRzI0kjWSxMUOE6nwtHJy1QfJ8fed/dCS8IosM9vXQ== X-Gm-Gg: ASbGncs4Zw9Bs26PaH6WWwmTmXs2ClvujjW1wmkEpI1QmotZlWue4UNVU56EfIuvmse AcWBmh7TWaVEPtWVJ09b7L4in74X63Jo2w7jnL5M5zjZOlGtPRReqRlsHMUfy7z7BJ7CfOJyguh XQK5TtFUJ3BbQXuB3r/sq4ZaxcVleCyR4yNSY1MjAjcHhx3tebW7lrUqZBPwVjhwealToEul4X2 MdsNuBvlJ2+rCZ1+KP6lA/onCsu9E01rzdntFCrnsgGYzXBELDoycJ9YVLZh1nqBG5xFOza6B1F OI5FvidAQtB1PAxXcMJvU1TzEZouZsKfRaFIjFFBXpK2XY2ZkwTMaAMmlaDQ8J4DJCi4Pwb27Rj 9xD2wM53DWumg0y21epgODrYWdcENQIheqdc= X-Google-Smtp-Source: AGHT+IFPPofhZYJVv1o6IXIY5UUjftWVvEwNykvKmLnDkjNfPG+qZPXmmTGGZvWPVTu2H24ZUqA5pA== X-Received: by 2002:a05:6871:3149:b0:29e:53cc:a6c1 with SMTP id 586e51a60fabf-2c2e8699ea8mr4878548fac.6.1741794609504; Wed, 12 Mar 2025 08:50:09 -0700 (PDT) Received: from nathan (162-195-168-172.lightspeed.stlsmo.sbcglobal.net. [162.195.168.172]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2c2dc9e666esm1005280fac.17.2025.03.12.08.50.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 08:50:09 -0700 (PDT) Date: Wed, 12 Mar 2025 10:50:07 -0500 From: Nathan Bossart To: pgsql-hackers@postgresql.org Subject: remove open-coded popcount in acl.c Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="j19q9Cmlejg/qqrQ" Content-Disposition: inline List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --j19q9Cmlejg/qqrQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline There's a count_one_bits() function in acl.c that can be replaced with a call to pg_popcount64(). This isn't performance-critical code, but IMHO we might as well use the centralized implementation. -- nathan --j19q9Cmlejg/qqrQ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="v1-0001-Remove-open-coded-popcount-in-acl.c.patch" From 932fac13bf168571b145a54c29d9ac28ca2a070f Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Wed, 12 Mar 2025 10:45:12 -0500 Subject: [PATCH v1 1/1] Remove open-coded popcount in acl.c. --- src/backend/utils/adt/acl.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index 6a76550a5e2..ba14713fef2 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -5432,24 +5432,6 @@ select_best_admin(Oid member, Oid role) return admin_role; } - -/* does what it says ... */ -static int -count_one_bits(AclMode mask) -{ - int nbits = 0; - - /* this code relies on AclMode being an unsigned type */ - while (mask) - { - if (mask & 1) - nbits++; - mask >>= 1; - } - return nbits; -} - - /* * Select the effective grantor ID for a GRANT or REVOKE operation. * @@ -5532,7 +5514,7 @@ select_best_grantor(Oid roleId, AclMode privileges, */ if (otherprivs != ACL_NO_RIGHTS) { - int nnewrights = count_one_bits(otherprivs); + int nnewrights = pg_popcount64(otherprivs); if (nnewrights > nrights) { -- 2.39.5 (Apple Git-154) --j19q9Cmlejg/qqrQ--