diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java index f05a8d9fb4..9508b34a96 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java @@ -875,6 +875,7 @@ public class SQLEvalVisitorUtils { x.putAttribute(EVAL_VALUE, Boolean.TRUE); return false; case NotEqual: + case LessThanOrGreater: case NotLike: case GreaterThan: case LessThan: @@ -965,6 +966,7 @@ public class SQLEvalVisitorUtils { x.putAttribute(EVAL_VALUE, value); break; case NotEqual: + case LessThanOrGreater: value = !eq(leftValue, rightValue); x.putAttribute(EVAL_VALUE, value); break; diff --git a/src/test/java/com/alibaba/druid/bvt/sql/eval/SQLEvalVisitorUtilsTest.java b/src/test/java/com/alibaba/druid/bvt/sql/eval/SQLEvalVisitorUtilsTest.java index 696543324e..d5a3e15ece 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/eval/SQLEvalVisitorUtilsTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/eval/SQLEvalVisitorUtilsTest.java @@ -177,4 +177,9 @@ public class SQLEvalVisitorUtilsTest extends TestCase { Assert.assertEquals(4L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("100"), new ArrayList())); Assert.assertEquals(new BigInteger("36893488147419103231"), SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("11111111111111111111111111111111111111111111111111111111111111111"), new ArrayList())); } + + public void test_LessThanOrGreater() throws Exception { + Assert.assertEquals(false, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "1<>1")); + Assert.assertEquals(false, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "?<>?", Arrays.asList(1, 1))); + } }