From 51210324ac470d1906ce769fbe7de129016d3b2a Mon Sep 17 00:00:00 2001 From: sdghchj Date: Mon, 28 Dec 2020 13:26:46 +0800 Subject: [PATCH] correct MergeClause of Set --- clause/set.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/clause/set.go b/clause/set.go index 6a885711..daa6017a 100644 --- a/clause/set.go +++ b/clause/set.go @@ -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 {