CRM-18109 towards removal of unindexed queries
authoreileenmcnaugton <eileen@fuzion.co.nz>
Fri, 19 Feb 2016 06:13:19 +0000 (19:13 +1300)
committereileenmcnaugton <eileen@fuzion.co.nz>
Thu, 25 Feb 2016 10:42:13 +0000 (23:42 +1300)
CRM/Contact/BAO/GroupContactCache.php

index f1a347db0b11fbdb4f927b7a7392b7a65888818b..771885466340b85eb90ff1ee539c429828712071 100644 (file)
@@ -331,24 +331,27 @@ SET    cache_date = null,
 ";
       }
       else {
+
         $query = "
 DELETE     gc
 FROM       civicrm_group_contact_cache gc
 INNER JOIN civicrm_group g ON g.id = gc.group_id
-WHERE      TIMESTAMPDIFF(MINUTE, g.cache_date, $now) >= $smartGroupCacheTimeout
+WHERE      g.cache_date >= %1
 ";
         $update = "
 UPDATE civicrm_group g
 SET    cache_date = null,
        refresh_date = null
-WHERE  TIMESTAMPDIFF(MINUTE, cache_date, $now) >= $smartGroupCacheTimeout
+WHERE  g.cache_date >= %1
 ";
         $refresh = "
 UPDATE civicrm_group g
 SET    refresh_date = $refreshTime
-WHERE  TIMESTAMPDIFF(MINUTE, cache_date, $now) < $smartGroupCacheTimeout
+WHERE  g.cache_date < %1
 AND    refresh_date IS NULL
 ";
+        $cacheTime = date('Y-m-d H-i-s', strtotime("- $smartGroupCacheTimeout minutes"));
+        $params = array(1 => array($cacheTime, 'String'));
       }
     }
     elseif (is_array($groupID)) {