viewgit/inc/functions.php:22 Function utf8_encode() is deprecated [8192]

Rewrite group discussion query to used joins so can handle is delete item_impression_summary info, a=chris

Chris Pollett [2022-11-02 04:Nov:nd]
Rewrite group discussion query to used joins so can handle is delete item_impression_summary info, a=chris
Filename
src/models/GroupModel.php
diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php
index 3548cb13f..fc8d70e5f 100644
--- a/src/models/GroupModel.php
+++ b/src/models/GroupModel.php
@@ -1114,8 +1114,9 @@ class GroupModel extends Model implements MediaConstants
                 I.DESCRIPTION AS DESCRIPTION,
                 I.USER_ID AS USER_ID, II.USER_ID AS LAST_POSTER_ID,
                 U.USER_NAME AS USER_NAME, P.USER_NAME AS LAST_POSTER,
-                IIS.NUM_VIEWS AS NUM_VIEWS, IIS.FUZZY_NUM_VIEWS AS
-                FUZZY_NUM_VIEWS, IIS.TMP_NUM_VIEWS AS TMP_NUM_VIEWS";
+                COALESCE(IIS.NUM_VIEWS, 0) AS NUM_VIEWS,
+                COALESCE(IIS.FUZZY_NUM_VIEWS, 0) AS FUZZY_NUM_VIEWS,
+                COALESCE(IIS.TMP_NUM_VIEWS, 0) AS TMP_NUM_VIEWS";
             $sub_select = "SELECT DISTINCT MIN(GI.ID) AS ID,
                 MAX(GI.ID) AS LAST_ID,
                 COUNT(DISTINCT GI.ID) AS NUM_POSTS, GI.PARENT_ID AS PARENT_ID,
@@ -1128,14 +1129,16 @@ class GroupModel extends Model implements MediaConstants
             $sub_sql = "$sub_select
                 FROM GROUP_ITEM GI, SOCIAL_GROUPS G, USER_GROUP UG
                 $where $group_by";
-            $sql = "$select FROM ($sub_sql) E,
-                GROUP_ITEM I, GROUP_ITEM II, USERS U, USERS P,
-                ITEM_IMPRESSION_SUMMARY IIS
-                WHERE E.ID = I.ID AND E.LAST_ID = II.ID AND
-                I.USER_ID = U.USER_ID  AND IIS.ITEM_TYPE=" .
+            $sql = "$select FROM ($sub_sql) E JOIN GROUP_ITEM I
+                    ON E.ID = I.ID
+                JOIN GROUP_ITEM II ON E.LAST_ID = II.ID
+                JOIN USERS U ON I.USER_ID = U.USER_ID
+                JOIN USERS P ON II.USER_ID = P.USER_ID
+                LEFT OUTER JOIN ITEM_IMPRESSION_SUMMARY IIS ON
+                    IIS.ITEM_ID = E.PARENT_ID AND IIS.ITEM_TYPE=" .
                 C\THREAD_IMPRESSION . " AND IIS.USER_ID=" .
                 C\PUBLIC_USER_ID . " AND
-                IIS.ITEM_ID = E.PARENT_ID AND II.USER_ID = P.USER_ID AND
+                IIS.ITEM_ID = E.PARENT_ID AND
                 IIS.UPDATE_PERIOD=" . C\FOREVER .
                 " $outer_where $order_by $limit";
         } else {
ViewGit