Skip to content

Commit 689f70b

Browse files
authored
Update wp_bbp_forums.sql
1 parent f730e1e commit 689f70b

File tree

1 file changed

+8
-39
lines changed

1 file changed

+8
-39
lines changed

generate/updates/wp_bbp_forums.sql

Lines changed: 8 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,51 +6,20 @@ UPDATE wp_bbp_forums o LEFT JOIN (
66
GROUP BY f.forum_id) r ON o.forum_id = r.forum_id
77
SET o.subforum_count = r.subforums;
88

9-
/* Update last_topic_id, basic pass */
10-
UPDATE wp_bbp_forums f LEFT JOIN (
11-
SELECT t.forum_id, MAX(t.topic_id) AS topic_id
9+
/* Update last_topic_id, topic_count */
10+
UPDATE wp_bbp_forums f INNER JOIN (
11+
SELECT t.forum_id, MAX(t.topic_id) AS topic_id, COUNT(t.topic_id) AS topic_count
1212
FROM wp_bbp_topics t
1313
INNER JOIN wp_bbp_forums f ON f.forum_id = t.forum_id AND f.forum_type = 'forum'
1414
INNER JOIN wp_posts p ON p.ID = t.topic_id AND p.post_status IN ('publish', 'closed')
1515
GROUP BY t.forum_id) t ON t.forum_id = f.forum_id
16-
SET f.last_topic_id = t.topic_id;
16+
SET f.last_topic_id = t.topic_id, f.topic_count = t.topic_count;
1717

18-
/* Update last_reply_id, basic pass */
19-
UPDATE wp_bbp_forums f LEFT JOIN (
20-
SELECT t.forum_id, MAX(t.reply_id) AS reply_id
18+
/* Update last_reply_id, reply_count */
19+
UPDATE wp_bbp_forums f INNER JOIN (
20+
SELECT t.forum_id, MAX(t.reply_id) AS reply_id, COUNT(t.reply_id) AS reply_count
2121
FROM wp_bbp_replies t
2222
INNER JOIN wp_bbp_forums f ON f.forum_id = t.forum_id AND f.forum_type = 'forum'
2323
INNER JOIN wp_posts p ON p.ID = t.reply_id AND p.post_status IN ('publish')
2424
GROUP BY t.forum_id) r ON r.forum_id = f.forum_id
25-
SET f.last_reply_id = r.reply_id;
26-
27-
/* Update last_topic_id, inner pass, might need to be repeated more than once */
28-
UPDATE wp_bbp_forums o INNER JOIN (
29-
SELECT f.forum_id, MAX(t.topic_id) AS topic_id
30-
FROM wp_bbp_forums f
31-
INNER JOIN wp_posts p ON p.post_parent = f.forum_id
32-
INNER JOIN wp_bbp_topics t ON t.forum_id = p.ID
33-
INNER JOIN wp_posts pt ON t.topic_id = pt.ID AND pt.post_status IN ('publish', 'closed')
34-
WHERE f.subforum_count > 0 AND f.last_topic_id = 0
35-
GROUP BY f.forum_id) r ON o.forum_id = r.forum_id
36-
SET o.last_topic_id = r.topic_id;
37-
38-
/* Update last_reply_id, inner pass, might need to be repeated more than once */
39-
UPDATE wp_bbp_forums o INNER JOIN (
40-
SELECT f.forum_id, MAX(t.reply_id) AS reply_id
41-
FROM wp_bbp_forums f
42-
INNER JOIN wp_posts p ON p.post_parent = f.forum_id
43-
INNER JOIN wp_bbp_replies t ON t.forum_id = p.ID
44-
INNER JOIN wp_posts pt ON t.reply_id = pt.ID AND pt.post_status IN ('publish', 'closed')
45-
WHERE f.subforum_count > 0 AND f.last_reply_id = 0
46-
GROUP BY f.forum_id) r ON o.forum_id = r.forum_id
47-
SET o.last_reply_id = r.reply_id;
48-
49-
/* Update last_active_id */
50-
UPDATE wp_bbp_forums f
51-
SET f.last_active_id = GREATEST(last_topic_id, last_reply_id);
52-
53-
/* Update last_active_time */
54-
UPDATE wp_bbp_forums f
55-
INNER JOIN wp_posts p ON p.ID = f.last_active_id
56-
SET f.last_active_time = p.post_date;
25+
SET f.last_reply_id = r.reply_id, f.reply_count = r.reply_count;

0 commit comments

Comments
 (0)