[fix](datetime) fix compare of DatetimeLiteral (#24343)
fix compare of DatetimeLiteral
This commit is contained in:
@ -583,7 +583,7 @@ public class DateLiteral extends LiteralExpr {
|
||||
return -1;
|
||||
}
|
||||
// date time will not overflow when doing addition and subtraction
|
||||
return Long.signum(getLongValue() - expr.getLongValue());
|
||||
return getStringValue().compareTo(expr.getStringValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -127,10 +127,10 @@ public class LiteralExprCompareTest {
|
||||
Assert.assertTrue(maxDatetime1.equals(date9) && maxDatetime1.compareLiteral(date9) == 0);
|
||||
Assert.assertTrue(minDatetime1.equals(date11) && minDatetime1.compareLiteral(date11) == 0);
|
||||
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && 1 == maxDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!minDate1.equals(date1) && -1 == minDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && 1 == maxDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && -1 == minDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && maxDate1.compareLiteral(date1) > 0);
|
||||
Assert.assertTrue(!minDate1.equals(date1) && minDate1.compareLiteral(date1) < 0);
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && maxDatetime1.compareLiteral(datetime1) > 0);
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && minDatetime1.compareLiteral(datetime1) < 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -181,10 +181,10 @@ public class LiteralExprCompareTest {
|
||||
Assert.assertTrue(maxDatetime1.equals(date9) && maxDatetime1.compareLiteral(date9) == 0);
|
||||
Assert.assertTrue(minDatetime1.equals(date11) && minDatetime1.compareLiteral(date11) == 0);
|
||||
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && 1 == maxDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!minDate1.equals(date1) && -1 == minDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && 1 == maxDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && -1 == minDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && maxDate1.compareLiteral(date1) > 0);
|
||||
Assert.assertTrue(!minDate1.equals(date1) && minDate1.compareLiteral(date1) < 0);
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && maxDatetime1.compareLiteral(datetime1) > 0);
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && minDatetime1.compareLiteral(datetime1) < 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -235,10 +235,10 @@ public class LiteralExprCompareTest {
|
||||
Assert.assertTrue(maxDatetime1.equals(date9) && maxDatetime1.compareLiteral(date9) == 0);
|
||||
Assert.assertTrue(minDatetime1.equals(date11) && minDatetime1.compareLiteral(date11) == 0);
|
||||
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && 1 == maxDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!minDate1.equals(date1) && -1 == minDate1.compareLiteral(date1));
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && 1 == maxDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && -1 == minDatetime1.compareLiteral(datetime1));
|
||||
Assert.assertTrue(!maxDate1.equals(date1) && maxDate1.compareLiteral(date1) > 0);
|
||||
Assert.assertTrue(!minDate1.equals(date1) && minDate1.compareLiteral(date1) < 0);
|
||||
Assert.assertTrue(!maxDatetime1.equals(datetime1) && maxDatetime1.compareLiteral(datetime1) > 0);
|
||||
Assert.assertTrue(!minDatetime1.equals(datetime1) && minDatetime1.compareLiteral(datetime1) < 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user