]> ruin.nu Git - ND.git/commitdiff
Just return the query and let the caller prepare
authorMichael Andreen <harv@ruin.nu>
Tue, 17 Jun 2008 21:31:28 +0000 (23:31 +0200)
committerMichael Andreen <harv@ruin.nu>
Tue, 17 Jun 2008 21:31:28 +0000 (23:31 +0200)
Include.pm

index e5f1f2fc47ec41480b3ab9f97149f8b8000b7703..7f960575681d7a31c8166e6f69e1655c44e293c0 100644 (file)
@@ -97,14 +97,17 @@ sub pa_xp {
 }
 
 sub unread_query {
 }
 
 sub unread_query {
-       return $ND::DBH->prepare_cached(q{
-                       SELECT count(*) AS unread, count(NULLIF(fp.time > $2,FALSE)) AS new
-FROM forum_boards fb NATURAL JOIN forum_threads ft 
-       JOIN forum_posts fp USING (ftid) LEFT OUTER JOIN 
-               (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv ON ftv.ftid = ft.ftid
-WHERE (ftv.time IS NULL OR fp.time > ftv.time) AND fbid > 0 AND
-       fbid IN (SELECT fbid FROM forum_access WHERE gid IN (SELECT groups($1)))
-               });
+       return q{
+               SELECT count(*) AS unread, count(NULLIF(fp.time > (SELECT max(time)
+                   FROM forum_thread_visits WHERE uid = $1),FALSE)) AS new        
+               FROM forum_threads ft                                              
+                       JOIN forum_posts fp USING (ftid)                               
+                       LEFT OUTER JOIN (SELECT * FROM forum_thread_visits             
+                               WHERE uid = $1) ftv ON ftv.ftid = ft.ftid                  
+               WHERE (ftv.time IS NULL OR fp.time > ftv.time) AND fbid > 0        
+                       AND fbid IN (SELECT fbid FROM forum_access                     
+                               WHERE gid IN (SELECT groups($1)))         
+               };
 }
 
 1;
 }
 
 1;