mirror of
https://github.com/matrix-org/dendrite
synced 2024-12-14 10:23:59 +01:00
Correct account data position mapping
This commit is contained in:
parent
f023cdf8c4
commit
6ee8507955
2 changed files with 14 additions and 7 deletions
|
@ -105,7 +105,7 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
accountDataEventFilter *gomatrixserverlib.EventFilter,
|
||||
) (data map[string][]string, pos types.StreamPosition, err error) {
|
||||
data = make(map[string][]string)
|
||||
pos = r.Low()
|
||||
pos = r.High()
|
||||
|
||||
rows, err := s.selectAccountDataInRangeStmt.QueryContext(ctx, userID, r.Low(), r.High(),
|
||||
pq.StringArray(filterConvertTypeWildcardToSQL(accountDataEventFilter.Types)),
|
||||
|
@ -120,6 +120,7 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
var dataType string
|
||||
var roomID string
|
||||
var id types.StreamPosition
|
||||
var highest types.StreamPosition
|
||||
|
||||
for rows.Next() {
|
||||
if err = rows.Scan(&id, &roomID, &dataType); err != nil {
|
||||
|
@ -131,10 +132,13 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
} else {
|
||||
data[roomID] = []string{dataType}
|
||||
}
|
||||
if id > pos {
|
||||
pos = id
|
||||
if id > highest {
|
||||
highest = id
|
||||
}
|
||||
}
|
||||
if highest < pos {
|
||||
pos = highest
|
||||
}
|
||||
return data, pos, rows.Err()
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
r types.Range,
|
||||
filter *gomatrixserverlib.EventFilter,
|
||||
) (data map[string][]string, pos types.StreamPosition, err error) {
|
||||
pos = r.Low()
|
||||
pos = r.High()
|
||||
data = make(map[string][]string)
|
||||
stmt, params, err := prepareWithFilters(
|
||||
s.db, nil, selectAccountDataInRangeSQL,
|
||||
|
@ -116,6 +116,7 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
var dataType string
|
||||
var roomID string
|
||||
var id types.StreamPosition
|
||||
var highest types.StreamPosition
|
||||
|
||||
for rows.Next() {
|
||||
if err = rows.Scan(&id, &roomID, &dataType); err != nil {
|
||||
|
@ -127,11 +128,13 @@ func (s *accountDataStatements) SelectAccountDataInRange(
|
|||
} else {
|
||||
data[roomID] = []string{dataType}
|
||||
}
|
||||
if id > pos {
|
||||
pos = id
|
||||
if id > highest {
|
||||
highest = id
|
||||
}
|
||||
}
|
||||
|
||||
if highest < pos {
|
||||
pos = highest
|
||||
}
|
||||
return data, pos, nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue