From dacf53b0cfe5b1730144e7c3828dd08a62b2cfe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 2 Jan 2019 15:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0vendor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/yunion.io/x/sqlchemy/insert.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/vendor/yunion.io/x/sqlchemy/insert.go b/vendor/yunion.io/x/sqlchemy/insert.go index cab1b88125..43aa7780d4 100644 --- a/vendor/yunion.io/x/sqlchemy/insert.go +++ b/vendor/yunion.io/x/sqlchemy/insert.go @@ -6,6 +6,7 @@ import ( "strings" "yunion.io/x/log" + "yunion.io/x/pkg/gotypes" "yunion.io/x/pkg/util/reflectutils" ) @@ -41,12 +42,12 @@ func (t *STableSpec) insertSqlPrep(dataFields reflectutils.SStructFieldValueSet) createdAtFields = append(createdAtFields, k) names = append(names, fmt.Sprintf("`%s`", k)) format = append(format, "UTC_TIMESTAMP()") - } else if c.IsSupportDefault() && len(c.Default()) > 0 && ov != nil && c.IsZero(ov) { // empty text value + } else if c.IsSupportDefault() && len(c.Default()) > 0 && !gotypes.IsNil(ov) && c.IsZero(ov) { // empty text value val := c.ConvertFromString(c.Default()) values = append(values, val) names = append(names, fmt.Sprintf("`%s`", k)) format = append(format, "?") - } else if ov != nil && (!c.IsZero(ov) || (!c.IsPointer() && !c.IsText())) && !isAutoInc { + } else if !gotypes.IsNil(ov) && (!c.IsZero(ov) || (!c.IsPointer() && !c.IsText())) && !isAutoInc { v := c.ConvertFromValue(ov) values = append(values, v) names = append(names, fmt.Sprintf("`%s`", k)) @@ -127,7 +128,9 @@ func (t *STableSpec) insert(data interface{}, debug bool) error { } } else { priVal, _ := dataFields.GetInterface(c.Name()) - q = q.Equals(c.Name(), priVal) + if !gotypes.IsNil(priVal) { + q = q.Equals(c.Name(), priVal) + } } } }