Merge pull request #3907 from lzx1026078111/feature/calc-lessThanOrGreater-in-SQLEvalVisitorUtils

calculate LessThanOrGreater operator in SQLEvalVisitorUtils
This commit is contained in:
温绍锦
2020-10-05 10:36:05 +08:00
committed by GitHub
2 changed files with 7 additions and 0 deletions
@@ -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;
@@ -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)));
}
}