diff --git a/evaluator/evaluator.go b/evaluator/evaluator.go index 7521a6d7ad..751d882587 100644 --- a/evaluator/evaluator.go +++ b/evaluator/evaluator.go @@ -384,7 +384,7 @@ func (e *Evaluator) checkInList(not bool, in interface{}, list []interface{}) in continue } - r, err := types.Compare(in, v) + r, err := types.Compare(types.Coerce(in, v)) if err != nil { e.err = errors.Trace(err) return nil diff --git a/evaluator/evaluator_test.go b/evaluator/evaluator_test.go index 27e2aa17b7..8bca5741f2 100644 --- a/evaluator/evaluator_test.go +++ b/evaluator/evaluator_test.go @@ -677,6 +677,10 @@ func (s *testEvaluatorSuite) TestPatternIn(c *C) { exprStr: "2 in (1, NULL)", resultStr: "", }, + { + exprStr: "(-(23)++46/51*+51) in (+23)", + resultStr: "0", + }, } s.runTests(c, cases) }