diff --git a/planner/core/expression_rewriter.go b/planner/core/expression_rewriter.go index 134bc952a028d..4aba634a193f9 100644 --- a/planner/core/expression_rewriter.go +++ b/planner/core/expression_rewriter.go @@ -203,14 +203,8 @@ func (er *expressionRewriter) constructBinaryOpFunction(l expression.Expression, default: larg0, rarg0 := expression.GetFuncArg(l, 0), expression.GetFuncArg(r, 0) var expr1, expr2, expr3 expression.Expression - if op == ast.LE || op == ast.GE { - expr1 = expression.NewFunctionInternal(er.ctx, op, types.NewFieldType(mysql.TypeTiny), larg0, rarg0) - expr1 = expression.NewFunctionInternal(er.ctx, ast.EQ, types.NewFieldType(mysql.TypeTiny), expr1, expression.Zero) - expr2 = expression.Zero - } else if op == ast.LT || op == ast.GT { - expr1 = expression.NewFunctionInternal(er.ctx, ast.NE, types.NewFieldType(mysql.TypeTiny), larg0, rarg0) - expr2 = expression.NewFunctionInternal(er.ctx, op, types.NewFieldType(mysql.TypeTiny), larg0, rarg0) - } + expr1 = expression.NewFunctionInternal(er.ctx, ast.NE, types.NewFieldType(mysql.TypeTiny), larg0, rarg0) + expr2 = expression.NewFunctionInternal(er.ctx, op, types.NewFieldType(mysql.TypeTiny), larg0, rarg0) var err error l, err = expression.PopRowFirstArg(er.ctx, l) if err != nil { diff --git a/planner/core/expression_test.go b/planner/core/expression_test.go index 127ed38aea809..232afd3a62d70 100644 --- a/planner/core/expression_test.go +++ b/planner/core/expression_test.go @@ -249,6 +249,14 @@ func (s *testExpressionSuite) TestCompareRow(c *C) { exprStr: "row(1,2,3)=row(0,NULL,3)", + resultStr: "1", + }, + { + exprStr: "row(1,2,3)<=row(2,NULL,3)", + resultStr: "1", + }, } s.runTests(c, tests) }