replace sql mostly with sqlc

This commit is contained in:
2025-07-16 22:10:49 +02:00
parent a3440326e8
commit 7c29f64f6d
14 changed files with 418 additions and 741 deletions

View File

@@ -12,17 +12,20 @@ SELECT * FROM Beatmap WHERE MD5Hash = ?;
-- name: GetBeatmapCount :one
SELECT COUNT(*) FROM Beatmap;
-- name: GetBeatmapSetCount :one
SELECT COUNT(*) FROM Beatmap GROUP BY BeatmapSetId;
-- name: GetRecentBeatmaps :many
SELECT BeatmapId, MD5Hash, Title, Artist, Creator, Folder, File, Audio, TotalTime
SELECT *
FROM Beatmap GROUP BY Folder ORDER BY LastModifiedTime DESC LIMIT ? OFFSET ?;
-- name: SearchBeatmaps :many
SELECT BeatmapId, MD5Hash, Title, Artist, Creator, Folder, File, Audio, TotalTime
SELECT *
FROM Beatmap
WHERE Title LIKE ? OR Artist LIKE ?
LIMIT ? OFFSET ?;
-- name: GetArtists :many
-- name: SearchArtists :many
SELECT Artist, COUNT(Artist) AS count
FROM Beatmap
WHERE Artist LIKE ? OR Title LIKE ?

View File

@@ -4,15 +4,19 @@ INSERT INTO Collection (Name, MD5Hash) VALUES (?, ?);
-- name: GetCollectionCountByName :one
SELECT COUNT(*) FROM Collection WHERE Name = ?;
-- name: GetCollections :many
SELECT c.Name, COUNT(b.MD5Hash) AS Count, MIN(b.Folder) AS Folder, MIN(b.File) AS File
FROM Collection c
-- name: SearchCollection :many
SELECT
c.Name,
COUNT(b.MD5Hash) AS Count,
b.Folder,
b.File
FROM Collection c
JOIN Beatmap b ON c.MD5Hash = b.MD5Hash
WHERE c.Name LIKE ?
GROUP BY c.Name
LIMIT ? OFFSET ?;
-- name: GetCollection :many
-- name: GetCollectionByOffset :many
SELECT
c.Name,
b.BeatmapId,
@@ -26,13 +30,14 @@ SELECT
b.TotalTime
FROM Collection c
JOIN Beatmap b ON c.MD5Hash = b.MD5Hash
JOIN (
SELECT DISTINCT Name
WHERE c.Name = (
SELECT Name
FROM Collection
GROUP BY Name
ORDER BY Name
LIMIT 1 OFFSET ?
) selected_name ON c.Name = selected_name.Name
LIMIT ? OFFSET ?;
LIMIT 1 OFFSET ?1
)
LIMIT ?2 OFFSET ?3;
-- name: GetCollectionByName :many
SELECT c.Name, b.BeatmapId, b.MD5Hash, b.Title, b.Artist, b.Creator, b.Folder, b.File, b.Audio, b.TotalTime