calculate LessThanOrGreater operator in SQLEvalVisitorUtils

This commit is contained in:
xingdu
2020-08-14 15:28:14 +08:00
committed by xingdu
parent 90a163e0f3
commit 4278ca301c
2 changed files with 7 additions and 0 deletions
@@ -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;
@@ -177,4 +177,9 @@ public class SQLEvalVisitorUtilsTest extends TestCase {
Assert.assertEquals(4L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("100"), new ArrayList<Object>()));
Assert.assertEquals(new BigInteger("36893488147419103231"), SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("11111111111111111111111111111111111111111111111111111111111111111"), new ArrayList<Object>()));
}
public void test_LessThanOrGreater() throws Exception {
Assert.assertEquals(false, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "1<>1"));
Assert.assertEquals(false, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "?<>?", Arrays.<Object>asList(1, 1)));
}
}