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

Commit 69dd143

Browse files
committed
Merge branch 'dev' of https://github.com/cloudspokes/tc-api into dev
2 parents 6db8fd7 + 5c0abb1 commit 69dd143

File tree

2 files changed

+9
-103
lines changed

2 files changed

+9
-103
lines changed

queries/get_practice_problems

Lines changed: 5 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ FIRST @pageSize@
55
FROM table(MULTISET(
66
SELECT
77
p.problem_id
8-
, c.component_id
8+
, c.component_id
99
, ro.room_id
1010
, rc.round_id
1111
, rc.division_id
@@ -16,62 +16,15 @@ SELECT
1616
WHEN (p.problem_type_id = 1 AND p.proposed_difficulty_id = 3) THEN 'Hard'::nvarchar(50)
1717
END AS difficulty
1818
, rc.points
19-
, NVL(CASE WHEN EXISTS (
20-
SELECT 1
21-
FROM component_state cs
22-
WHERE cs.status_id < 120
23-
AND cs.component_id = c.component_id
24-
AND cs.coder_id = @userId@
25-
UNION ALL
26-
SELECT 1
27-
FROM practice_component_state pcs
28-
WHERE pcs.status_id < 120
29-
AND pcs.component_id = c.component_id
30-
AND pcs.coder_id = @userId@
31-
) THEN 'New'::nvarchar(50)
32-
WHEN EXISTS (
33-
SELECT 1
34-
FROM component_state cs
35-
WHERE cs.status_id = 150
36-
AND cs.component_id = c.component_id
37-
AND cs.coder_id = @userId@
38-
UNION ALL
39-
SELECT 1
40-
FROM practice_component_state pcs
41-
WHERE pcs.status_id = 150
42-
AND pcs.component_id = c.component_id
43-
AND pcs.coder_id = @userId@
44-
) THEN 'Solved'::nvarchar(50)
45-
WHEN EXISTS (
46-
SELECT 1
47-
FROM component_state cs
48-
WHERE cs.status_id >= 120
49-
AND cs.component_id = c.component_id
50-
AND cs.status_id != 150
51-
AND cs.coder_id = @userId@
52-
UNION ALL
53-
SELECT 1
54-
FROM practice_component_state pcs
55-
WHERE pcs.status_id >= 120
56-
AND pcs.component_id = c.component_id
57-
AND pcs.status_id != 150
58-
AND pcs.coder_id = @userId@
59-
) THEN 'Viewed'::nvarchar(50)
60-
END, 'New') AS status
61-
, NVL((
62-
SELECT
63-
points
64-
FROM practice_component_state pcs
65-
WHERE pcs.round_id = rc.round_id
66-
AND pcs.component_id = c.component_id
67-
AND pcs.coder_id = @userId@
68-
), 0) AS my_points
19+
, 'New' AS status
20+
, 0 AS my_points
6921
FROM problem p
7022
INNER JOIN component c ON c.problem_id = p.problem_id
7123
INNER JOIN round_component rc ON rc.component_id = c.component_id
72-
INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A'
24+
INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A' AND r.round_type_id = 3
7325
INNER JOIN room ro ON ro.round_id = rc.round_id AND ro.room_type_id = 3 -- practice room
7426
INNER JOIN problem_type_lu ptl ON ptl.problem_type_id = p.problem_type_id
27+
INNER JOIN contest con ON con.contest_id = r.contest_id
7528
WHERE p.status_id = 90
7629
)) srp
7730
WHERE 1=1

queries/get_practice_problems_count

Lines changed: 4 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,62 +13,15 @@ SELECT
1313
WHEN (p.problem_type_id = 1 AND p.proposed_difficulty_id = 3) THEN 'Hard'::nvarchar(50)
1414
END AS difficulty
1515
, rc.points
16-
, NVL(CASE WHEN EXISTS (
17-
SELECT 1
18-
FROM component_state cs
19-
WHERE cs.status_id < 120
20-
AND cs.component_id = c.component_id
21-
AND cs.coder_id = @userId@
22-
UNION ALL
23-
SELECT 1
24-
FROM practice_component_state pcs
25-
WHERE pcs.status_id < 120
26-
AND pcs.component_id = c.component_id
27-
AND pcs.coder_id = @userId@
28-
) THEN 'New'::nvarchar(50)
29-
WHEN EXISTS (
30-
SELECT 1
31-
FROM component_state cs
32-
WHERE cs.status_id = 150
33-
AND cs.component_id = c.component_id
34-
AND cs.coder_id = @userId@
35-
UNION ALL
36-
SELECT 1
37-
FROM practice_component_state pcs
38-
WHERE pcs.status_id = 150
39-
AND pcs.component_id = c.component_id
40-
AND pcs.coder_id = @userId@
41-
) THEN 'Solved'::nvarchar(50)
42-
WHEN EXISTS (
43-
SELECT 1
44-
FROM component_state cs
45-
WHERE cs.status_id >= 120
46-
AND cs.component_id = c.component_id
47-
AND cs.status_id != 150
48-
AND cs.coder_id = @userId@
49-
UNION ALL
50-
SELECT 1
51-
FROM practice_component_state pcs
52-
WHERE pcs.status_id >= 120
53-
AND pcs.component_id = c.component_id
54-
AND pcs.status_id != 150
55-
AND pcs.coder_id = @userId@
56-
) THEN 'Viewed'::nvarchar(50)
57-
END, 'New') AS status
58-
, NVL((
59-
SELECT
60-
points
61-
FROM practice_component_state pcs
62-
WHERE pcs.round_id = rc.round_id
63-
AND pcs.component_id = c.component_id
64-
AND pcs.coder_id = @userId@
65-
), 0) AS my_points
16+
, 'New' AS status
17+
, 0 AS my_points
6618
FROM problem p
6719
INNER JOIN component c ON c.problem_id = p.problem_id
6820
INNER JOIN round_component rc ON rc.component_id = c.component_id
69-
INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A'
21+
INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A' AND r.round_type_id = 3
7022
INNER JOIN room ro ON ro.round_id = rc.round_id AND ro.room_type_id = 3 -- practice room
7123
INNER JOIN problem_type_lu ptl ON ptl.problem_type_id = p.problem_type_id
24+
INNER JOIN contest con ON con.contest_id = r.contest_id
7225
WHERE p.status_id = 90
7326
)) srp
7427
WHERE 1=1

0 commit comments

Comments
 (0)