Loading server/core_leaderboard.go +5 −11 Original line number Diff line number Diff line Loading @@ -445,7 +445,8 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, query := `INSERT INTO leaderboard_record (leaderboard_id, owner_id, username, score, subscore, metadata, expiry_time) VALUES ($1, $2, $3, $4, $5, COALESCE($6, '{}'::JSONB), $7) ON CONFLICT (owner_id, leaderboard_id, expiry_time) DO UPDATE SET ` + opSQL + `, num_score = leaderboard_record.num_score + 1, metadata = COALESCE($6, leaderboard_record.metadata), username = COALESCE($3, leaderboard_record.username), update_time = now()` + filterSQL DO UPDATE SET ` + opSQL + `, num_score = leaderboard_record.num_score + 1, metadata = COALESCE($6, leaderboard_record.metadata), username = COALESCE($3, leaderboard_record.username), update_time = now()` + filterSQL + ` RETURNING username, score, subscore, num_score, max_num_score, metadata, create_time, update_time` params := make([]interface{}, 0, 9) params = append(params, leaderboardId, ownerID) if username == "" { Loading @@ -464,12 +465,6 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, params = append(params, scoreDelta, subscoreDelta) } _, err := db.ExecContext(ctx, query, params...) if err != nil { logger.Error("Error writing leaderboard record", zap.Error(err)) return nil, err } var dbUsername sql.NullString var dbScore int64 var dbSubscore int64 Loading @@ -478,10 +473,9 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, var dbMetadata string var dbCreateTime pgtype.Timestamptz var dbUpdateTime pgtype.Timestamptz query = "SELECT username, score, subscore, num_score, max_num_score, metadata, create_time, update_time FROM leaderboard_record WHERE leaderboard_id = $1 AND owner_id = $2 AND expiry_time = $3" err = db.QueryRowContext(ctx, query, leaderboardId, ownerID, time.Unix(expiryTime, 0).UTC()).Scan(&dbUsername, &dbScore, &dbSubscore, &dbNumScore, &dbMaxNumScore, &dbMetadata, &dbCreateTime, &dbUpdateTime) if err != nil { logger.Error("Error after writing leaderboard record", zap.Error(err)) if err := db.QueryRowContext(ctx, query, params...).Scan(&dbUsername, &dbScore, &dbSubscore, &dbNumScore, &dbMaxNumScore, &dbMetadata, &dbCreateTime, &dbUpdateTime); err != nil { logger.Error("Error writing leaderboard record", zap.Error(err)) return nil, err } Loading server/leaderboard_cache.go +1 −1 Original line number Diff line number Diff line Loading @@ -529,7 +529,7 @@ func (l *LocalLeaderboardCache) CreateTournament(ctx context.Context, id string, leaderboard = &Leaderboard{ Id: id, Authoritative: true, Authoritative: authoritative, SortOrder: sortOrder, Operator: operator, ResetScheduleStr: resetSchedule, Loading Loading
server/core_leaderboard.go +5 −11 Original line number Diff line number Diff line Loading @@ -445,7 +445,8 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, query := `INSERT INTO leaderboard_record (leaderboard_id, owner_id, username, score, subscore, metadata, expiry_time) VALUES ($1, $2, $3, $4, $5, COALESCE($6, '{}'::JSONB), $7) ON CONFLICT (owner_id, leaderboard_id, expiry_time) DO UPDATE SET ` + opSQL + `, num_score = leaderboard_record.num_score + 1, metadata = COALESCE($6, leaderboard_record.metadata), username = COALESCE($3, leaderboard_record.username), update_time = now()` + filterSQL DO UPDATE SET ` + opSQL + `, num_score = leaderboard_record.num_score + 1, metadata = COALESCE($6, leaderboard_record.metadata), username = COALESCE($3, leaderboard_record.username), update_time = now()` + filterSQL + ` RETURNING username, score, subscore, num_score, max_num_score, metadata, create_time, update_time` params := make([]interface{}, 0, 9) params = append(params, leaderboardId, ownerID) if username == "" { Loading @@ -464,12 +465,6 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, params = append(params, scoreDelta, subscoreDelta) } _, err := db.ExecContext(ctx, query, params...) if err != nil { logger.Error("Error writing leaderboard record", zap.Error(err)) return nil, err } var dbUsername sql.NullString var dbScore int64 var dbSubscore int64 Loading @@ -478,10 +473,9 @@ func LeaderboardRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB, var dbMetadata string var dbCreateTime pgtype.Timestamptz var dbUpdateTime pgtype.Timestamptz query = "SELECT username, score, subscore, num_score, max_num_score, metadata, create_time, update_time FROM leaderboard_record WHERE leaderboard_id = $1 AND owner_id = $2 AND expiry_time = $3" err = db.QueryRowContext(ctx, query, leaderboardId, ownerID, time.Unix(expiryTime, 0).UTC()).Scan(&dbUsername, &dbScore, &dbSubscore, &dbNumScore, &dbMaxNumScore, &dbMetadata, &dbCreateTime, &dbUpdateTime) if err != nil { logger.Error("Error after writing leaderboard record", zap.Error(err)) if err := db.QueryRowContext(ctx, query, params...).Scan(&dbUsername, &dbScore, &dbSubscore, &dbNumScore, &dbMaxNumScore, &dbMetadata, &dbCreateTime, &dbUpdateTime); err != nil { logger.Error("Error writing leaderboard record", zap.Error(err)) return nil, err } Loading
server/leaderboard_cache.go +1 −1 Original line number Diff line number Diff line Loading @@ -529,7 +529,7 @@ func (l *LocalLeaderboardCache) CreateTournament(ctx context.Context, id string, leaderboard = &Leaderboard{ Id: id, Authoritative: true, Authoritative: authoritative, SortOrder: sortOrder, Operator: operator, ResetScheduleStr: resetSchedule, Loading