463
// ClearTombstones clears all tombstone build ids (with STATE_DELETED) from versioning data.
464
// Clones data to avoid mutating in place.
465
>
func ClearTombstones(versioningData *persistencespb.VersioningData) *persistencespb.VersioningData {
version_sets.go
466
>
modifiedData := shallowCloneVersioningData(versioningData)
467
>
for setIdx, set := range modifiedData.GetVersionSets() {
468
>
modifiedData.VersionSets[setIdx] = shallowCloneVersionSet(set)
469
>
}
470
>
for _, set := range modifiedData.GetVersionSets() {
471
>
set.BuildIds = util.FilterSlice(set.BuildIds, func(buildId *persistencespb.BuildId) bool {
472
>
return buildId.State != persistencespb.STATE_DELETED
473
>
})
474
}
475
>
modifiedData.VersionSets = util.FilterSlice(modifiedData.VersionSets, func(set *persistencespb.CompatibleVersionSet) bool {
version_sets.go
476
>
return len(set.BuildIds) > 0
477
>
})
478
>
return modifiedData
479
}
480