Try this again

This commit is contained in:
Neil Alexander 2022-06-15 10:08:24 +01:00
parent 158ffa4ded
commit ba8e1607e2
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -440,7 +440,6 @@ func (d *Database) events(
inCache := make([]bool, len(inputEventNIDs)) inCache := make([]bool, len(inputEventNIDs))
inDatabase := make([]types.EventNID, 0, len(results)) inDatabase := make([]types.EventNID, 0, len(results))
for i, nid := range inputEventNIDs { for i, nid := range inputEventNIDs {
positions[nid] = i
if event, ok := d.Cache.GetRoomServerEvent(nid); ok && event != nil { if event, ok := d.Cache.GetRoomServerEvent(nid); ok && event != nil {
results[i] = types.Event{ results[i] = types.Event{
EventNID: nid, EventNID: nid,
@ -449,6 +448,7 @@ func (d *Database) events(
inCache[i] = true inCache[i] = true
} else { } else {
inDatabase = append(inDatabase, nid) inDatabase = append(inDatabase, nid)
positions[nid] = i
} }
} }
eventJSONs, err := d.EventJSONTable.BulkSelectEventJSON(ctx, txn, inDatabase) eventJSONs, err := d.EventJSONTable.BulkSelectEventJSON(ctx, txn, inDatabase)
@ -487,21 +487,23 @@ func (d *Database) events(
roomVersions[n] = v roomVersions[n] = v
} }
for _, eventJSON := range eventJSONs { for _, eventJSON := range eventJSONs {
eventNID := eventJSON.EventNID result := types.Event{
roomNID := roomNIDs[eventNID] EventNID: eventJSON.EventNID,
roomVersion := roomVersions[roomNID] }
event, err := gomatrixserverlib.NewEventFromTrustedJSONWithEventID( roomNID := roomNIDs[result.EventNID]
eventIDs[eventNID], eventJSON.EventJSON, false, roomVersion, result.Event, err = gomatrixserverlib.NewEventFromTrustedJSONWithEventID(
eventIDs[result.EventNID], eventJSON.EventJSON, false, roomVersions[roomNID],
) )
if err != nil { if err != nil {
return nil, err return nil, err
} }
results[positions[eventNID]] = types.Event{ pos, ok := positions[result.EventNID]
EventNID: eventJSON.EventNID, if !ok {
Event: event, panic("should have position")
} }
if event != nil { results[pos] = result
d.Cache.StoreRoomServerEvent(eventJSON.EventNID, event) if result.Event != nil {
d.Cache.StoreRoomServerEvent(result.EventNID, result.Event)
} }
} }
if !redactionsArePermanent { if !redactionsArePermanent {