Limit filter to limit/2
for before/after events on /context
(#3332)
Part of https://github.com/matrix-org/dendrite/issues/3224
This commit is contained in:
parent
ecb7b383e9
commit
8f944f6434
|
@ -110,6 +110,7 @@ func Context(
|
||||||
}
|
}
|
||||||
|
|
||||||
stateFilter := synctypes.StateFilter{
|
stateFilter := synctypes.StateFilter{
|
||||||
|
Limit: filter.Limit,
|
||||||
NotSenders: filter.NotSenders,
|
NotSenders: filter.NotSenders,
|
||||||
NotTypes: filter.NotTypes,
|
NotTypes: filter.NotTypes,
|
||||||
Senders: filter.Senders,
|
Senders: filter.Senders,
|
||||||
|
@ -157,6 +158,11 @@ func Context(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Limit is split up for before/after events
|
||||||
|
if filter.Limit > 1 {
|
||||||
|
filter.Limit = filter.Limit / 2
|
||||||
|
}
|
||||||
|
|
||||||
eventsBefore, err := snapshot.SelectContextBeforeEvent(ctx, id, roomID, filter)
|
eventsBefore, err := snapshot.SelectContextBeforeEvent(ctx, id, roomID, filter)
|
||||||
if err != nil && err != sql.ErrNoRows {
|
if err != nil && err != sql.ErrNoRows {
|
||||||
logrus.WithError(err).Error("unable to fetch before events")
|
logrus.WithError(err).Error("unable to fetch before events")
|
||||||
|
|
|
@ -1136,7 +1136,7 @@ func testContext(t *testing.T, dbType test.DBType) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "events are not limited",
|
name: "events are not limited",
|
||||||
wantBeforeLength: 7,
|
wantBeforeLength: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "all events are limited",
|
name: "all events are limited",
|
||||||
|
|
Loading…
Reference in a new issue