mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-26 00:03:09 -06:00
Use RoomInfo cache to find room version if possible in Events()
This commit is contained in:
parent
cfee085119
commit
e336d53f5e
|
|
@ -330,14 +330,24 @@ func (d *Database) Events(
|
||||||
for _, n := range roomNIDs {
|
for _, n := range roomNIDs {
|
||||||
uniqueRoomNIDs[n] = struct{}{}
|
uniqueRoomNIDs[n] = struct{}{}
|
||||||
}
|
}
|
||||||
roomNIDList := make([]types.RoomNID, 0, len(uniqueRoomNIDs))
|
roomVersions := make(map[types.RoomNID]gomatrixserverlib.RoomVersion)
|
||||||
|
fetchNIDList := make([]types.RoomNID, 0, len(uniqueRoomNIDs))
|
||||||
for n := range uniqueRoomNIDs {
|
for n := range uniqueRoomNIDs {
|
||||||
roomNIDList = append(roomNIDList, n)
|
if roomID, ok := d.Cache.GetRoomServerRoomID(n); ok {
|
||||||
|
if roomInfo, ok := d.Cache.GetRoomInfo(roomID); ok {
|
||||||
|
roomVersions[n] = roomInfo.RoomVersion
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fetchNIDList = append(fetchNIDList, n)
|
||||||
}
|
}
|
||||||
roomVersions, err := d.RoomsTable.SelectRoomVersionsForRoomNIDs(ctx, roomNIDList)
|
dbRoomVersions, err := d.RoomsTable.SelectRoomVersionsForRoomNIDs(ctx, fetchNIDList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
for n, v := range dbRoomVersions {
|
||||||
|
roomVersions[n] = v
|
||||||
|
}
|
||||||
results := make([]types.Event, len(eventJSONs))
|
results := make([]types.Event, len(eventJSONs))
|
||||||
for i, eventJSON := range eventJSONs {
|
for i, eventJSON := range eventJSONs {
|
||||||
result := &results[i]
|
result := &results[i]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue