Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 29f744e

Browse files
committed
fix badges SQL
1 parent 56f8327 commit 29f744e

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

db/fixtures/001_badges.rb

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
first_solution_query = <<~SQL
44
SELECT post_id, user_id, created_at AS granted_at
55
FROM (
6-
SELECT p.id AS post_id, p.user_id, pcf.created_at,
7-
ROW_NUMBER() OVER (PARTITION BY p.user_id ORDER BY pcf.created_at) AS row_number
8-
FROM post_custom_fields pcf
9-
JOIN badge_posts p ON pcf.post_id = p.id
10-
JOIN topics t ON p.topic_id = t.id
11-
WHERE pcf.name = 'is_accepted_answer'
12-
AND p.user_id <> t.user_id -- ignore topics solved by OP
13-
AND (:backfill OR p.id IN (:post_ids))
6+
SELECT p.id AS post_id, p.user_id, dss.created_at,
7+
ROW_NUMBER() OVER (PARTITION BY p.user_id ORDER BY dss.created_at) AS row_number
8+
FROM discourse_solved_solutions dss
9+
JOIN badge_posts p ON dss.answer_post_id = p.id
10+
JOIN topics t ON p.topic_id = t.id
11+
WHERE p.user_id <> t.user_id -- ignore topics solved by OP
12+
AND (:backfill OR p.id IN (:post_ids))
1413
) x
1514
WHERE row_number = 1
1615
SQL
@@ -32,12 +31,11 @@
3231

3332
def solved_query_with_count(min_count)
3433
<<~SQL
35-
SELECT p.user_id, MAX(pcf.created_at) AS granted_at
36-
FROM post_custom_fields pcf
37-
JOIN badge_posts p ON pcf.post_id = p.id
34+
SELECT p.user_id, MAX(dss.created_at) AS granted_at
35+
FROM discourse_solved_solutions dss
36+
JOIN badge_posts p ON dss.answer_post_id = p.id
3837
JOIN topics t ON p.topic_id = t.id
39-
WHERE pcf.name = 'is_accepted_answer'
40-
AND p.user_id <> t.user_id -- ignore topics solved by OP
38+
WHERE p.user_id <> t.user_id -- ignore topics solved by OP
4139
AND (:backfill OR p.id IN (:post_ids))
4240
GROUP BY p.user_id
4341
HAVING COUNT(*) >= #{min_count}

0 commit comments

Comments
 (0)