From 7b5c6a4526f9b4289a1ef9d325054e71ac9e78f5 Mon Sep 17 00:00:00 2001 From: piyongcai Date: Wed, 29 Dec 2021 08:15:44 +0800 Subject: [PATCH] []byte type alias first to determine len, then determine is slice element is byte --- statement.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/statement.go b/statement.go index 4647050e..55c4aa89 100644 --- a/statement.go +++ b/statement.go @@ -230,12 +230,12 @@ func (stmt *Statement) AddVar(writer clause.Writer, vars ...interface{}) { default: switch rv := reflect.ValueOf(v); rv.Kind() { case reflect.Slice, reflect.Array: - if rv.Type().Elem() == reflect.TypeOf(uint8(0)) { + if rv.Len() == 0 { + writer.WriteString("(NULL)") + } else if rv.Type().Elem() == reflect.TypeOf(uint8(0)) { stmt.Vars = append(stmt.Vars, v) stmt.DB.Dialector.BindVarTo(writer, stmt, v) - }else if rv.Len() == 0 { - writer.WriteString("(NULL)") - } else { + }else { writer.WriteByte('(') for i := 0; i < rv.Len(); i++ { if i > 0 {