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 3c3167aa88..537b3a3131 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java @@ -921,6 +921,7 @@ public class SQLEvalVisitorUtils { x.putAttribute(EVAL_VALUE, Boolean.TRUE); return false; case NotEqual: + case LessThanOrGreater: case NotLike: case GreaterThan: case LessThan: @@ -1011,6 +1012,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))); + } }