Move OffsetNewest and OffsetOldest into keyserver types, change them to be more sane values

This commit is contained in:
Neil Alexander 2022-02-04 12:46:51 +00:00
parent a4fe510519
commit 4acf2a05dd
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
6 changed files with 18 additions and 24 deletions

View file

@ -17,11 +17,9 @@ package postgres
import ( import (
"context" "context"
"database/sql" "database/sql"
"math"
"github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/keyserver/storage/tables" "github.com/matrix-org/dendrite/keyserver/storage/tables"
"github.com/matrix-org/dendrite/setup/jetstream"
) )
var keyChangesSchema = ` var keyChangesSchema = `
@ -78,9 +76,6 @@ func (s *keyChangesStatements) InsertKeyChange(ctx context.Context, userID strin
func (s *keyChangesStatements) SelectKeyChanges( func (s *keyChangesStatements) SelectKeyChanges(
ctx context.Context, fromOffset, toOffset int64, ctx context.Context, fromOffset, toOffset int64,
) (userIDs []string, latestOffset int64, err error) { ) (userIDs []string, latestOffset int64, err error) {
if toOffset == jetstream.OffsetNewest {
toOffset = math.MaxInt64
}
latestOffset = fromOffset latestOffset = fromOffset
rows, err := s.selectKeyChangesStmt.QueryContext(ctx, fromOffset, toOffset) rows, err := s.selectKeyChangesStmt.QueryContext(ctx, fromOffset, toOffset)
if err != nil { if err != nil {

View file

@ -17,11 +17,9 @@ package sqlite3
import ( import (
"context" "context"
"database/sql" "database/sql"
"math"
"github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/keyserver/storage/tables" "github.com/matrix-org/dendrite/keyserver/storage/tables"
"github.com/matrix-org/dendrite/setup/jetstream"
) )
var keyChangesSchema = ` var keyChangesSchema = `
@ -76,9 +74,6 @@ func (s *keyChangesStatements) InsertKeyChange(ctx context.Context, userID strin
func (s *keyChangesStatements) SelectKeyChanges( func (s *keyChangesStatements) SelectKeyChanges(
ctx context.Context, fromOffset, toOffset int64, ctx context.Context, fromOffset, toOffset int64,
) (userIDs []string, latestOffset int64, err error) { ) (userIDs []string, latestOffset int64, err error) {
if toOffset == jetstream.OffsetNewest {
toOffset = math.MaxInt64
}
latestOffset = fromOffset latestOffset = fromOffset
rows, err := s.selectKeyChangesStmt.QueryContext(ctx, fromOffset, toOffset) rows, err := s.selectKeyChangesStmt.QueryContext(ctx, fromOffset, toOffset)
if err != nil { if err != nil {

View file

@ -10,8 +10,8 @@ import (
"testing" "testing"
"github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/dendrite/keyserver/api"
"github.com/matrix-org/dendrite/keyserver/types"
"github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/jetstream"
) )
var ctx = context.Background() var ctx = context.Background()
@ -50,7 +50,7 @@ func TestKeyChanges(t *testing.T) {
MustNotError(t, err) MustNotError(t, err)
deviceChangeIDC, err := db.StoreKeyChange(ctx, "@charlie:localhost") deviceChangeIDC, err := db.StoreKeyChange(ctx, "@charlie:localhost")
MustNotError(t, err) MustNotError(t, err)
userIDs, latest, err := db.KeyChanges(ctx, deviceChangeIDB, jetstream.OffsetNewest) userIDs, latest, err := db.KeyChanges(ctx, deviceChangeIDB, types.OffsetNewest)
if err != nil { if err != nil {
t.Fatalf("Failed to KeyChanges: %s", err) t.Fatalf("Failed to KeyChanges: %s", err)
} }
@ -74,7 +74,7 @@ func TestKeyChangesNoDupes(t *testing.T) {
} }
deviceChangeID, err := db.StoreKeyChange(ctx, "@alice:localhost") deviceChangeID, err := db.StoreKeyChange(ctx, "@alice:localhost")
MustNotError(t, err) MustNotError(t, err)
userIDs, latest, err := db.KeyChanges(ctx, 0, jetstream.OffsetNewest) userIDs, latest, err := db.KeyChanges(ctx, 0, types.OffsetNewest)
if err != nil { if err != nil {
t.Fatalf("Failed to KeyChanges: %s", err) t.Fatalf("Failed to KeyChanges: %s", err)
} }

View file

@ -14,7 +14,18 @@
package types package types
import "github.com/matrix-org/gomatrixserverlib" import (
"math"
"github.com/matrix-org/gomatrixserverlib"
)
const (
// OffsetNewest tells e.g. the database to get the most current data
OffsetNewest int64 = math.MaxInt64
// OffsetOldest tells e.g. the database to get the oldest data
OffsetOldest int64 = 0
)
// KeyTypePurposeToInt maps a purpose to an integer, which is used in the // KeyTypePurposeToInt maps a purpose to an integer, which is used in the
// database to reduce the amount of space taken up by this column. // database to reduce the amount of space taken up by this column.

View file

@ -12,13 +12,6 @@ import (
natsclient "github.com/nats-io/nats.go" natsclient "github.com/nats-io/nats.go"
) )
const (
// OffsetNewest tells e.g. the database to get the most current data
OffsetNewest int64 = -1
// OffsetOldest tells e.g. the database to get the oldest data
OffsetOldest int64 = -2
)
var natsServer *natsserver.Server var natsServer *natsserver.Server
var natsServerMutex sync.Mutex var natsServerMutex sync.Mutex

View file

@ -19,8 +19,8 @@ import (
"strings" "strings"
keyapi "github.com/matrix-org/dendrite/keyserver/api" keyapi "github.com/matrix-org/dendrite/keyserver/api"
keytypes "github.com/matrix-org/dendrite/keyserver/types"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi/types" "github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util" "github.com/matrix-org/util"
@ -64,8 +64,8 @@ func DeviceListCatchup(
} }
// now also track users who we already share rooms with but who have updated their devices between the two tokens // now also track users who we already share rooms with but who have updated their devices between the two tokens
offset := jetstream.OffsetOldest offset := keytypes.OffsetOldest
toOffset := jetstream.OffsetNewest toOffset := keytypes.OffsetNewest
if to > 0 && to > from { if to > 0 && to > from {
toOffset = int64(to) toOffset = int64(to)
} }