mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 00:17:32 +00:00
fix(eventstore): prevent allocation of filtered events (#6749)
* fix(eventstore): prevent allocation of filtered events Directly reduce each event obtained from a sql.Rows scan, so that we do not have to allocate all events in a slice. * reinstate the mutex as RWMutex * scan data directly * add todos * fix(writemodels): add reduce of parent * test: remove comment * update comments --------- Co-authored-by: adlerhurst <silvan.reusser@gmail.com>
This commit is contained in:
@@ -30,21 +30,30 @@ func NewRepo(t *testing.T) *MockRepository {
|
||||
func (m *MockRepository) ExpectFilterNoEventsNoError() *MockRepository {
|
||||
m.MockQuerier.ctrl.T.Helper()
|
||||
|
||||
m.MockQuerier.EXPECT().Filter(gomock.Any(), gomock.Any()).Return(nil, nil)
|
||||
m.MockQuerier.EXPECT().FilterToReducer(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil)
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *MockRepository) ExpectFilterEvents(events ...eventstore.Event) *MockRepository {
|
||||
m.MockQuerier.ctrl.T.Helper()
|
||||
|
||||
m.MockQuerier.EXPECT().Filter(gomock.Any(), gomock.Any()).Return(events, nil)
|
||||
m.MockQuerier.EXPECT().FilterToReducer(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn(
|
||||
func(_ context.Context, _ *eventstore.SearchQueryBuilder, reduce eventstore.Reducer) error {
|
||||
for _, event := range events {
|
||||
if err := reduce(event); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
},
|
||||
)
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *MockRepository) ExpectFilterEventsError(err error) *MockRepository {
|
||||
m.MockQuerier.ctrl.T.Helper()
|
||||
|
||||
m.MockQuerier.EXPECT().Filter(gomock.Any(), gomock.Any()).Return(nil, err)
|
||||
m.MockQuerier.EXPECT().FilterToReducer(gomock.Any(), gomock.Any(), gomock.Any()).Return(err)
|
||||
return m
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user