Optimization: don't fetch replay field since we don't use it.

This commit is contained in:
nise.moe 2024-02-22 17:49:25 +01:00
parent 1cbbeb1a1e
commit 691ff70664

View File

@ -39,7 +39,43 @@ class ScoreService(
}
fun getReplayData(replayId: Long): ReplayData? {
val result = dslContext.select(DSL.asterisk())
val result = dslContext.select(
SCORES.ID,
SCORES.USER_ID,
USERS.USERNAME,
SCORES.DATE,
BEATMAPS.BEATMAP_ID,
BEATMAPS.BEATMAPSET_ID,
BEATMAPS.ARTIST,
BEATMAPS.TITLE,
BEATMAPS.STAR_RATING,
BEATMAPS.CREATOR,
BEATMAPS.VERSION,
SCORES.PP,
SCORES.FRAMETIME,
SCORES.UR,
SCORES.ADJUSTED_UR,
SCORES.SCORE,
SCORES.MODS,
SCORES.RANK,
SCORES.SNAPS,
SCORES.EDGE_HITS,
SCORES.PERFECT,
SCORES.MAX_COMBO,
SCORES.COUNT_300,
SCORES.COUNT_100,
SCORES.COUNT_50,
SCORES.COUNT_MISS,
SCORES.MEAN_ERROR,
SCORES.ERROR_VARIANCE,
SCORES.ERROR_STANDARD_DEVIATION,
SCORES.MINIMUM_ERROR,
SCORES.MAXIMUM_ERROR,
SCORES.ERROR_RANGE,
SCORES.ERROR_COEFFICIENT_OF_VARIATION,
SCORES.ERROR_KURTOSIS,
SCORES.ERROR_SKEWNESS
)
.from(SCORES)
.join(USERS).on(SCORES.USER_ID.eq(USERS.USER_ID))
.join(BEATMAPS).on(SCORES.BEATMAP_ID.eq(BEATMAPS.BEATMAP_ID))
@ -101,7 +137,19 @@ class ScoreService(
}
fun getSuspiciousScores(condition: Condition = getDefaultCondition()): List<SuspiciousScoreEntry> {
val result = dslContext.select(DSL.asterisk())
val result = dslContext.select(
SCORES.USER_ID,
USERS.USERNAME,
SCORES.REPLAY_ID,
SCORES.DATE,
BEATMAPS.BEATMAP_ID,
BEATMAPS.BEATMAPSET_ID,
BEATMAPS.TITLE,
BEATMAPS.STAR_RATING,
SCORES.PP,
SCORES.FRAMETIME,
SCORES.UR
)
.from(SCORES)
.join(USERS).on(SCORES.USER_ID.eq(USERS.USER_ID))
.join(BEATMAPS).on(SCORES.BEATMAP_ID.eq(BEATMAPS.BEATMAP_ID))
@ -161,9 +209,25 @@ class ScoreService(
)
}
fun getSimilarReplaysRecords(condition: Condition = DSL.noCondition(), includeBanned: Boolean = false): Result<Record> {
fun getSimilarReplaysRecords(condition: Condition = DSL.noCondition(), includeBanned: Boolean = false): List<Record> {
return dslContext
.select()
.select(
osuScoreAlias1.REPLAY_ID,
osuScoreAlias1.USER_ID,
osuUserAlias1.USERNAME,
osuScoreAlias1.DATE,
osuScoreAlias1.PP,
osuScoreAlias2.REPLAY_ID,
osuScoreAlias2.USER_ID,
osuUserAlias2.USERNAME,
osuScoreAlias2.DATE,
osuScoreAlias2.PP,
BEATMAPS.BEATMAP_ID,
BEATMAPS.TITLE,
BEATMAPS.STAR_RATING,
BEATMAPS.BEATMAPSET_ID,
SCORES_SIMILARITY.SIMILARITY
)
.from(SCORES_SIMILARITY)
.join(osuScoreAlias1).on(osuScoreAlias1.REPLAY_ID.eq(SCORES_SIMILARITY.REPLAY_ID_1))
.join(osuUserAlias1).on(osuScoreAlias1.USER_ID.eq(osuUserAlias1.USER_ID))
@ -198,7 +262,7 @@ class ScoreService(
return mapSimilarReplays(replays)
}
private fun mapSimilarReplays(replays: Result<Record>) = replays.map {
private fun mapSimilarReplays(replays: List<Record>) = replays.map {
// Extract necessary fields
var replayId1 = it.get(osuScoreAlias1.REPLAY_ID, Long::class.java)
var replayId2 = it.get(osuScoreAlias2.REPLAY_ID, Long::class.java)