From ba17bdd3669b359f291abb880a8e2a2fdc329f11 Mon Sep 17 00:00:00 2001 From: BaoyangChai Date: Tue, 12 Feb 2019 18:05:29 +0800 Subject: [PATCH 1/5] add ignore auto_now_add field when update --- orm/db.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/orm/db.go b/orm/db.go index dfaa5f1d..e488a5ab 100644 --- a/orm/db.go +++ b/orm/db.go @@ -621,6 +621,25 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time. return 0, err } + var find bool + var index int + for i, col := range setNames { + if mi.fields.GetByColumn(col).autoNowAdd { + index = i + find = true + } + } + + if find { + newSetNames := make([]string, 0, 0) + newSetNames = append(setNames[0:index], setNames[index+1:]...) + setNames = newSetNames + newSetValues := make([]interface{}, 0, 0) + newSetValues = append(setValues[0:index], setValues[index+1:]...) + setValues = newSetValues + + } + setValues = append(setValues, pkValue) Q := d.ins.TableQuote() From 2fefd8cbbfd2141361f4d74bad24c19b724d8fbd Mon Sep 17 00:00:00 2001 From: BaoyangChai Date: Tue, 12 Feb 2019 18:53:34 +0800 Subject: [PATCH 2/5] update len --- orm/db.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orm/db.go b/orm/db.go index e488a5ab..8e7e93bb 100644 --- a/orm/db.go +++ b/orm/db.go @@ -631,10 +631,10 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time. } if find { - newSetNames := make([]string, 0, 0) + newSetNames := make([]string, 0, len(setNames)-1) newSetNames = append(setNames[0:index], setNames[index+1:]...) setNames = newSetNames - newSetValues := make([]interface{}, 0, 0) + newSetValues := make([]interface{}, 0, len(setNames)-1) newSetValues = append(setValues[0:index], setValues[index+1:]...) setValues = newSetValues From 65f587d5e96f34f91e7b576e7890b98bc56d3553 Mon Sep 17 00:00:00 2001 From: BaoyangChai Date: Tue, 12 Feb 2019 19:05:22 +0800 Subject: [PATCH 3/5] fix ineffectual assignment --- orm/db.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/orm/db.go b/orm/db.go index 8e7e93bb..2719dff7 100644 --- a/orm/db.go +++ b/orm/db.go @@ -632,10 +632,12 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time. if find { newSetNames := make([]string, 0, len(setNames)-1) - newSetNames = append(setNames[0:index], setNames[index+1:]...) + newSetNames = append(newSetNames, setNames[0:index]...) + newSetNames = append(newSetNames, setNames[index+1:]...) setNames = newSetNames newSetValues := make([]interface{}, 0, len(setNames)-1) - newSetValues = append(setValues[0:index], setValues[index+1:]...) + newSetValues = append(newSetValues, setValues[0:index]...) + newSetValues = append(newSetValues, setValues[index+1:]...) setValues = newSetValues } From 005391be81e129fe41477a78a416b690f81f4b75 Mon Sep 17 00:00:00 2001 From: BaoyangChai Date: Sat, 23 Mar 2019 00:33:26 +0800 Subject: [PATCH 4/5] update --- orm/db.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/orm/db.go b/orm/db.go index 2719dff7..df69eec3 100644 --- a/orm/db.go +++ b/orm/db.go @@ -631,14 +631,8 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time. } if find { - newSetNames := make([]string, 0, len(setNames)-1) - newSetNames = append(newSetNames, setNames[0:index]...) - newSetNames = append(newSetNames, setNames[index+1:]...) - setNames = newSetNames - newSetValues := make([]interface{}, 0, len(setNames)-1) - newSetValues = append(newSetValues, setValues[0:index]...) - newSetValues = append(newSetValues, setValues[index+1:]...) - setValues = newSetValues + setNames = append(setNames[0:index], setNames[index+1:]...) + setValues = append(setValues[0:index], setValues[index+1:]...) } From 0b8ebaf38755bcbfa51443fb6ba55eef3c268a51 Mon Sep 17 00:00:00 2001 From: GeorgeXc Date: Tue, 26 Mar 2019 01:00:04 +0800 Subject: [PATCH 5/5] Update db.go --- orm/db.go | 1 - 1 file changed, 1 deletion(-) diff --git a/orm/db.go b/orm/db.go index df69eec3..20d9c4cd 100644 --- a/orm/db.go +++ b/orm/db.go @@ -633,7 +633,6 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time. if find { setNames = append(setNames[0:index], setNames[index+1:]...) setValues = append(setValues[0:index], setValues[index+1:]...) - } setValues = append(setValues, pkValue)