Retire obsolete collection identity before replacement agreement
This commit is contained in:
@@ -148,21 +148,29 @@ func resolveCollectionPolicy(
|
||||
result.policy.explicitMode = declaredMode
|
||||
result.policy.explicitModePresent = true
|
||||
result.policy.modeLocation = cloneLocation(declaredModeLocation)
|
||||
result.operation = declaredMode
|
||||
} else if lower != nil && lower.explicitModePresent {
|
||||
result.policy.explicitMode = lower.explicitMode
|
||||
result.policy.explicitModePresent = true
|
||||
result.policy.modeLocation = cloneLocation(lower.modeLocation)
|
||||
result.operation = lower.explicitMode
|
||||
} else if len(result.effectiveIdentityFields) != 0 {
|
||||
result.operation = sequenceModeUpsert
|
||||
} else {
|
||||
result.operation = sequenceModeReplace
|
||||
}
|
||||
result.operation = collectionOperationMode(declaredMode, result.policy.explicitMode, len(result.effectiveIdentityFields) != 0)
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func collectionOperationMode(current, retained sequenceMode, identified bool) sequenceMode {
|
||||
if current != 0 {
|
||||
return current
|
||||
}
|
||||
if retained != 0 {
|
||||
return retained
|
||||
}
|
||||
if identified {
|
||||
return sequenceModeUpsert
|
||||
}
|
||||
return sequenceModeReplace
|
||||
}
|
||||
|
||||
func cloneSequenceDeclarations(declarations []sequenceDeclarationSpec) []sequenceDeclarationSpec {
|
||||
if declarations == nil {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user