fix(multiplayer): repair PostgreSQL integration invariants

This commit is contained in:
Josh Creek
2026-09-04 15:43:31 +01:00
parent 0acf144f45
commit e6733bd6cb
4 changed files with 43 additions and 12 deletions
+5 -1
View File
@@ -39,10 +39,14 @@ func ApplyRankedSeasonRollover(ctx context.Context, db *sql.DB, playerID, season
applied := false
err := RunSerializable(ctx, db, DefaultSerializableAttempts, func(ctx context.Context, tx *sql.Tx) error {
var locked domain.RankedProfile
var lockedPlayerID string
var revision int64
if err := tx.QueryRowContext(ctx, SeasonRatingLockSQL, playerID).Scan(&locked.Value, &locked.RD, &locked.Volatility, &locked.RankedGames, &revision); err != nil {
if err := tx.QueryRowContext(ctx, SeasonRatingLockSQL, playerID).Scan(&lockedPlayerID, &locked.Value, &locked.RD, &locked.Volatility, &locked.RankedGames, &revision); err != nil {
return err
}
if lockedPlayerID != playerID {
return fmt.Errorf("locked unexpected rating row")
}
var err error
updated, _, err = domain.ApplySeasonRollover(locked, seasonID)
if err != nil {