This is an automated email from the ASF dual-hosted git repository.
jakevin pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new ee474044293 [feature](Nereids): date literal suppose Zone (#33534)
(#33683)
ee474044293 is described below
commit ee47404429377a9100125a32998295826b194619
Author: jakevin <[email protected]>
AuthorDate: Tue Apr 16 09:27:48 2024 +0800
[feature](Nereids): date literal suppose Zone (#33534) (#33683)
---
.../trees/expressions/literal/DateLiteral.java | 13 -------
.../doris/nereids/util/DateTimeFormatterUtils.java | 1 -
.../apache/doris/nereids/util/ExpressionUtils.java | 7 ----
.../expressions/literal/DateTimeLiteralTest.java | 41 ++++++++++++----------
4 files changed, 22 insertions(+), 40 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateLiteral.java
index c6e19bb96cb..9693858fb7e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateLiteral.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateLiteral.java
@@ -244,19 +244,6 @@ public class DateLiteral extends Literal {
sb.append(s.substring(i));
- // Zone Part
- // while(i < s.length()) {
- //
- // }
-
- // add missing :00 in Zone part
- // int len = sb.length();
- // int signIdx = sb.indexOf("+", 10); // from index:10, skip date part
(it contains '-')
- // signIdx = signIdx == -1 ? sb.indexOf("-", 10) : signIdx;
- // if (signIdx != -1 && len - signIdx == 3) {
- // sb.append(":00");
- // }
-
return sb.toString();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/DateTimeFormatterUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/DateTimeFormatterUtils.java
index 50d0f7169a5..6b52fb24a93 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/DateTimeFormatterUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/DateTimeFormatterUtils.java
@@ -41,7 +41,6 @@ import java.time.temporal.ChronoField;
public class DateTimeFormatterUtils {
public static final DateTimeFormatter ZONE_FORMATTER = new
DateTimeFormatterBuilder()
.optionalStart()
- // .appendZoneText(TextStyle.FULL)
.appendZoneOrOffsetId()
.optionalEnd()
.toFormatter()
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java
index 46990827633..8bec208896a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java
@@ -536,13 +536,6 @@ public class ExpressionUtils {
.collect(ImmutableSet.toImmutableSet());
}
- public static boolean checkTypeSkipCast(Expression expression, Class<?
extends Expression> cls) {
- while (expression instanceof Cast) {
- expression = ((Cast) expression).child();
- }
- return cls.isInstance(expression);
- }
-
public static Expression getExpressionCoveredByCast(Expression expression)
{
while (expression instanceof Cast) {
expression = ((Cast) expression).child();
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java
index c5e0b5eee6b..93039c4ad7f 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java
@@ -137,25 +137,7 @@ class DateTimeLiteralTest {
new DateTimeV2Literal("2022-08-01 01:01:01Z");
new DateTimeV2Literal("2022-08-01 01:01:01Europe/Berlin");
new DateTimeV2Literal("2022-08-01 01:01:01Europe/London");
- }
-
- @Test
- @Disabled("Test results can change over time")
- void testZoneOrOffsetRight() {
- java.util.function.BiConsumer<DateTimeV2Literal, Long> assertHour =
(dateTimeV2Literal, expectHour) -> {
- Assertions.assertEquals(dateTimeV2Literal.hour, expectHour);
- };
- DateTimeV2Literal dateTimeV2Literal;
- dateTimeV2Literal = new DateTimeV2Literal("2022-08-01
00:00:00Europe/London"); // +01:00
- assertHour.accept(dateTimeV2Literal, 7L);
- dateTimeV2Literal = new DateTimeV2Literal("2022-08-01
00:00:00America/New_York"); // -04:00
- assertHour.accept(dateTimeV2Literal, 12L);
- dateTimeV2Literal = new DateTimeV2Literal("2022-08-01
00:00:00Asia/Shanghai");
- assertHour.accept(dateTimeV2Literal, 0L);
- dateTimeV2Literal = new DateTimeV2Literal("2022-08-01 00:00:00+01:00");
- assertHour.accept(dateTimeV2Literal, 7L);
- dateTimeV2Literal = new DateTimeV2Literal("2022-08-01 00:00:00-01:00");
- assertHour.accept(dateTimeV2Literal, 9L);
+ new DateTimeV2Literal("2022-08-01 00:00:00Asia/Shanghai");
}
@Test
@@ -238,6 +220,27 @@ class DateTimeLiteralTest {
new DateTimeV2Literal("0001-01-01");
}
+ @Test
+ void testDateTimeZone1() {
+ Consumer<DateTimeV2Literal> assertFunc = (datetime) -> {
+ Assertions.assertEquals(2022, datetime.year);
+ Assertions.assertEquals(1, datetime.month);
+ Assertions.assertEquals(2, datetime.day);
+ Assertions.assertEquals(12, datetime.hour);
+ Assertions.assertEquals(0, datetime.minute);
+ Assertions.assertEquals(0, datetime.second);
+ };
+ DateTimeV2Literal literal;
+ literal = new DateTimeV2Literal("2022-01-02 12:00:00UTC+08:00");
+ assertFunc.accept(literal);
+ literal = new DateTimeV2Literal("2022-01-02 04:00:00UTC");
+ assertFunc.accept(literal);
+ literal = new DateTimeV2Literal("2022-01-01 20:00:00UTC-08:00");
+ assertFunc.accept(literal);
+ literal = new DateTimeV2Literal("2022-01-02 04:00:00Z");
+ assertFunc.accept(literal);
+ }
+
@Test
void testIrregularDateTime() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]