This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch dev-1.1.2
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/dev-1.1.2 by this push:
new 291cc9a375 [Bugfix](datetime) fix DateLiteral range check is no longer
valid (#11917)
291cc9a375 is described below
commit 291cc9a37540a1c6a968861b209bd072db6108d9
Author: Zhengguo Yang <[email protected]>
AuthorDate: Fri Aug 19 21:27:32 2022 +0800
[Bugfix](datetime) fix DateLiteral range check is no longer valid (#11917)
* [Bugfix](datetime) fix DateLiteral range check is no longer valid
---
.../src/main/java/org/apache/doris/analysis/DateLiteral.java | 3 +++
.../src/test/java/org/apache/doris/analysis/DateLiteralTest.java | 7 +++++++
2 files changed, 10 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
index 10a2cc6a85..9de0ae375d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
@@ -293,6 +293,9 @@ public class DateLiteral extends LiteralExpr {
minute = dateTime.getMinuteOfHour();
second = dateTime.getSecondOfMinute();
this.type = type;
+ if (checkRange() || checkDate()) {
+ throw new AnalysisException("Datetime value is out of range");
+ }
} catch (Exception ex) {
throw new AnalysisException("date literal [" + s + "] is invalid");
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/DateLiteralTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/DateLiteralTest.java
index 0a380f885f..9e2e7de4be 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DateLiteralTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DateLiteralTest.java
@@ -147,6 +147,13 @@ public class DateLiteralTest {
hasException = true;
}
Assert.assertFalse(hasException);
+ try {
+ DateLiteral literal = new DateLiteral("10000-10-07", Type.DATE);
+ Assert.assertEquals(10000, literal.getYear());
+ Assert.assertTrue(false);
+ } catch (AnalysisException e) {
+ // pass
+ }
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]