This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 6ca90afbfa [Bugfix](datetime) fix DateLiteral range check is no longer 
valid (#11917)
6ca90afbfa is described below

commit 6ca90afbfa02701e2e2f996532c69bd972a04e7f
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 0bf07af23f..96ab5edd06 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
@@ -432,6 +432,9 @@ public class DateLiteral extends LiteralExpr {
             second = getOrDefault(dateTime, ChronoField.SECOND_OF_MINUTE, 0);
             microsecond = getOrDefault(dateTime, ChronoField.MICRO_OF_SECOND, 
0);
             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: 
" + ex.getMessage());
         }
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 b0318b0e21..9715b7a182 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
@@ -166,6 +166,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]

Reply via email to