From: Michael Andreen Date: Tue, 17 Jun 2008 21:31:28 +0000 (+0200) Subject: Just return the query and let the caller prepare X-Git-Url: https://ruin.nu/git/?p=ND.git;a=commitdiff_plain;h=245cb3b058157d719b02be466e1b4deaa72fc986 Just return the query and let the caller prepare --- diff --git a/Include.pm b/Include.pm index e5f1f2f..7f96057 100644 --- a/Include.pm +++ b/Include.pm @@ -97,14 +97,17 @@ sub pa_xp { } 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;