aboutsummaryrefslogtreecommitdiff
path: root/roomserver/storage/shared/storage.go
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/storage/shared/storage.go')
-rw-r--r--roomserver/storage/shared/storage.go38
1 files changed, 21 insertions, 17 deletions
diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go
index 51dcb888..aec15ab2 100644
--- a/roomserver/storage/shared/storage.go
+++ b/roomserver/storage/shared/storage.go
@@ -27,23 +27,24 @@ import (
const redactionsArePermanent = true
type Database struct {
- DB *sql.DB
- Cache caching.RoomServerCaches
- Writer sqlutil.Writer
- EventsTable tables.Events
- EventJSONTable tables.EventJSON
- EventTypesTable tables.EventTypes
- EventStateKeysTable tables.EventStateKeys
- RoomsTable tables.Rooms
- TransactionsTable tables.Transactions
- StateSnapshotTable tables.StateSnapshot
- StateBlockTable tables.StateBlock
- RoomAliasesTable tables.RoomAliases
- PrevEventsTable tables.PreviousEvents
- InvitesTable tables.Invites
- MembershipTable tables.Membership
- PublishedTable tables.Published
- RedactionsTable tables.Redactions
+ DB *sql.DB
+ Cache caching.RoomServerCaches
+ Writer sqlutil.Writer
+ EventsTable tables.Events
+ EventJSONTable tables.EventJSON
+ EventTypesTable tables.EventTypes
+ EventStateKeysTable tables.EventStateKeys
+ RoomsTable tables.Rooms
+ TransactionsTable tables.Transactions
+ StateSnapshotTable tables.StateSnapshot
+ StateBlockTable tables.StateBlock
+ RoomAliasesTable tables.RoomAliases
+ PrevEventsTable tables.PreviousEvents
+ InvitesTable tables.Invites
+ MembershipTable tables.Membership
+ PublishedTable tables.Published
+ RedactionsTable tables.Redactions
+ GetLatestEventsForUpdateFn func(ctx context.Context, roomInfo types.RoomInfo) (*LatestEventsUpdater, error)
}
func (d *Database) SupportsConcurrentRoomInputs() bool {
@@ -372,6 +373,9 @@ func (d *Database) MembershipUpdater(
func (d *Database) GetLatestEventsForUpdate(
ctx context.Context, roomInfo types.RoomInfo,
) (*LatestEventsUpdater, error) {
+ if d.GetLatestEventsForUpdateFn != nil {
+ return d.GetLatestEventsForUpdateFn(ctx, roomInfo)
+ }
txn, err := d.DB.Begin()
if err != nil {
return nil, err