From 802f7aa03dea53ce4e4b941f4944f93b1ea582fc Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Thu, 19 Feb 2009 12:09:30 +0000
Subject: [PATCH] - Patch #374568 by chx: remove useless JOIN from permission
 query.

---
 modules/user/user.module | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/user/user.module b/modules/user/user.module
index 5892786f8296..015facca24d3 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -572,10 +572,10 @@ function user_role_permissions($roles = array(), $reset = FALSE) {
     if ($fetch) {
       // Get from the database permissions that were not in the static variable.
       // Only role IDs with at least one permission assigned will return rows.
-      $result = db_query("SELECT r.rid, p.permission FROM {role} r INNER JOIN {role_permission} p ON p.rid = r.rid WHERE r.rid IN (:fetch)", array(':fetch' => $fetch));
+      $result = db_query("SELECT rid, permission FROM {role_permission} WHERE rid IN (:fetch)", array(':fetch' => $fetch));
 
-      while ($row = db_fetch_array($result)) {
-        $stored_permissions[$row['rid']][$row['permission']] = TRUE;
+      foreach ($result as $row) {
+        $stored_permissions[$row->rid][$row->permission] = TRUE;
       }
       foreach ($fetch as $rid) {
         // For every rid, we know we at least assigned an empty array.
-- 
GitLab