113
item *ReplicationProgress,
114
eventVersionHistoryItems []*historyspb.VersionHistoryItem,
116
>
if len(eventVersionHistoryItems) == 0 {
117
return false, nil
118
}
119
121
>
item.eventVersionHistoryItems = [][]*historyspb.VersionHistoryItem{
122
>
versionhistory.CopyVersionHistoryItems(eventVersionHistoryItems),
123
>
}
124
>
item.lastEventVersionHistoryIndex = 0
125
>
return true, nil
126
>
}
127
128
>
for idx, historyItems := range item.eventVersionHistoryItems {
progress_cache.go
129
>
lcaItem, err := versionhistory.FindLCAVersionHistoryItemFromItemSlice(historyItems, eventVersionHistoryItems)
130
>
if err != nil {
131
return false, err
132
}
133
>
if versionhistory.IsEqualVersionHistoryItem(eventVersionHistoryItems[len(eventVersionHistoryItems)-1], lcaItem) {
progress_cache.go
134
>
// incoming version history is already included in the current version histories
135
>
return false, nil
136
>
}
137
>
if versionhistory.IsEqualVersionHistoryItem(historyItems[len(historyItems)-1], lcaItem) {
138
>
// incoming version history can be appended to the current version histories
139
>
item.eventVersionHistoryItems[idx] = versionhistory.CopyVersionHistoryItems(eventVersionHistoryItems)
140
>
item.lastEventVersionHistoryIndex = idx
141
>
return true, nil
142
>
}
143
}
144
145
>
item.lastEventVersionHistoryIndex = len(item.eventVersionHistoryItems)
progress_cache.go
146
>
item.eventVersionHistoryItems = append(item.eventVersionHistoryItems, versionhistory.CopyVersionHistoryItems(eventVersionHistoryItems))
147
>
return true, nil
148
}
149