mirror of
https://github.com/hoernschen/dendrite.git
synced 2024-12-26 15:08:28 +00:00
Ensure we bump the change ID on sqlite
This commit is contained in:
parent
5dc360481a
commit
8096217d9e
2 changed files with 7 additions and 3 deletions
|
@ -40,7 +40,8 @@ const upsertKeyChangeSQL = "" +
|
||||||
"INSERT INTO keyserver_key_changes (user_id)" +
|
"INSERT INTO keyserver_key_changes (user_id)" +
|
||||||
" VALUES ($1)" +
|
" VALUES ($1)" +
|
||||||
" ON CONFLICT" +
|
" ON CONFLICT" +
|
||||||
" DO UPDATE SET user_id = $1" +
|
// this only works because we rely on a single writer
|
||||||
|
" DO UPDATE SET change_id = change_id + 1" +
|
||||||
" RETURNING change_id"
|
" RETURNING change_id"
|
||||||
|
|
||||||
// select the highest offset for each user in the range. The grouping by user gives distinct entries and then we just
|
// select the highest offset for each user in the range. The grouping by user gives distinct entries and then we just
|
||||||
|
|
|
@ -65,10 +65,13 @@ func TestKeyChanges(t *testing.T) {
|
||||||
func TestKeyChangesNoDupes(t *testing.T) {
|
func TestKeyChangesNoDupes(t *testing.T) {
|
||||||
db, clean := MustCreateDatabase(t)
|
db, clean := MustCreateDatabase(t)
|
||||||
defer clean()
|
defer clean()
|
||||||
_, err := db.StoreKeyChange(ctx, "@alice:localhost")
|
deviceChangeIDA, err := db.StoreKeyChange(ctx, "@alice:localhost")
|
||||||
MustNotError(t, err)
|
MustNotError(t, err)
|
||||||
_, err = db.StoreKeyChange(ctx, "@alice:localhost")
|
deviceChangeIDB, err := db.StoreKeyChange(ctx, "@alice:localhost")
|
||||||
MustNotError(t, err)
|
MustNotError(t, err)
|
||||||
|
if deviceChangeIDA == deviceChangeIDB {
|
||||||
|
t.Fatalf("Expected change ID to be different even when inserting key change for the same user, got %d for both changes", deviceChangeIDA)
|
||||||
|
}
|
||||||
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, sarama.OffsetNewest)
|
userIDs, latest, err := db.KeyChanges(ctx, 0, sarama.OffsetNewest)
|
||||||
|
|
Loading…
Reference in a new issue