correct MergeClause of Set

This commit is contained in:
sdghchj 2020-12-28 13:26:46 +08:00 committed by GitHub
parent ade0bd6d60
commit 51210324ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -32,9 +32,14 @@ func (set Set) Build(builder Builder) {
// MergeClause merge assignments clauses
func (set Set) MergeClause(clause *Clause) {
copiedAssignments := make([]Assignment, len(set))
copy(copiedAssignments, set)
clause.Expression = Set(copiedAssignments)
if clause.Expression == nil {
copiedAssignments := make([]Assignment, len(set))
copy(copiedAssignments, set)
clause.Expression = Set(copiedAssignments)
} else if copiedAssignments, ok := clause.Expression.(Set); ok {
copiedAssignments = append(copiedAssignments, set...)
clause.Expression = Set(copiedAssignments)
}
}
func Assignments(values map[string]interface{}) Set {