mirror of https://github.com/go-gorm/gorm.git
Fix *Scope.buildNotCondition
this fixes the logic of handling empty slice of int family in a query i.e something linke `[]int64{}` This code snipped doesn't look like it was intended to be this way ``` if reflect.ValueOf(value).Len() > 0 { str = fmt.Sprintf("(%v.%v NOT IN (?))", scope.QuotedTableName(), scope.Quote(primaryKey)) clause["args"] = []interface{}{value} } return "" ``` The `return ""` is always guaranteed to be executed regardless of whether the length of value is greater than 0. I believe the intended behavior is to return `""` when the length of value is zero.
This commit is contained in:
parent
da8c2409ab
commit
eb0880e710
3
scope.go
3
scope.go
|
@ -593,8 +593,9 @@ func (scope *Scope) buildNotCondition(clause map[string]interface{}) (str string
|
|||
if reflect.ValueOf(value).Len() > 0 {
|
||||
str = fmt.Sprintf("(%v.%v NOT IN (?))", scope.QuotedTableName(), scope.Quote(primaryKey))
|
||||
clause["args"] = []interface{}{value}
|
||||
}
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
case map[string]interface{}:
|
||||
var sqls []string
|
||||
for key, value := range value {
|
||||
|
|
Loading…
Reference in New Issue