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

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


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 800288b7feb [branch-2.1](FoldFE) pick special date arithmetics of 
#37376 and #37766 (#47616)
800288b7feb is described below

commit 800288b7feb9740dfa7638a7231cd13a18038d1a
Author: zclllyybb <[email protected]>
AuthorDate: Sat Feb 8 11:29:52 2025 +0800

    [branch-2.1](FoldFE) pick special date arithmetics of #37376 and #37766 
(#47616)
    
    pick https://github.com/apache/doris/pull/37376 and
    https://github.com/apache/doris/pull/37766
---
 .../executable/DateTimeExtractAndTransform.java    |  70 +++++++-----
 .../trees/expressions/literal/DateLiteral.java     |  15 +++
 .../functions/DateTimeExtractAndTransformTest.java | 118 ++++++++++++++++-----
 3 files changed, 151 insertions(+), 52 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeExtractAndTransform.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeExtractAndTransform.java
index 1f6f3afd7d4..c9082715318 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeExtractAndTransform.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/executable/DateTimeExtractAndTransform.java
@@ -217,22 +217,22 @@ public class DateTimeExtractAndTransform {
      */
     @ExecFunction(name = "dayofyear")
     public static Expression dayOfYear(DateLiteral date) {
-        return new SmallIntLiteral((short) 
date.toJavaDateType().getDayOfYear());
+        return new SmallIntLiteral((short) date.getDayOfYear());
     }
 
     @ExecFunction(name = "dayofyear")
     public static Expression dayOfYear(DateTimeLiteral date) {
-        return new SmallIntLiteral((short) 
date.toJavaDateType().getDayOfYear());
+        return new SmallIntLiteral((short) date.getDayOfYear());
     }
 
     @ExecFunction(name = "dayofyear")
     public static Expression dayOfYear(DateV2Literal date) {
-        return new SmallIntLiteral((short) 
date.toJavaDateType().getDayOfYear());
+        return new SmallIntLiteral((short) date.getDayOfYear());
     }
 
     @ExecFunction(name = "dayofyear")
     public static Expression dayOfYear(DateTimeV2Literal date) {
-        return new SmallIntLiteral((short) 
date.toJavaDateType().getDayOfYear());
+        return new SmallIntLiteral((short) date.getDayOfYear());
     }
 
     /**
@@ -263,22 +263,22 @@ public class DateTimeExtractAndTransform {
      */
     @ExecFunction(name = "dayofweek")
     public static Expression dayOfWeek(DateLiteral date) {
-        return new TinyIntLiteral((byte) 
(date.toJavaDateType().getDayOfWeek().getValue() % 7 + 1));
+        return new TinyIntLiteral((byte) (date.getDayOfWeek() % 7 + 1));
     }
 
     @ExecFunction(name = "dayofweek")
     public static Expression dayOfWeek(DateTimeLiteral date) {
-        return new TinyIntLiteral((byte) 
(date.toJavaDateType().getDayOfWeek().getValue() % 7 + 1));
+        return new TinyIntLiteral((byte) (date.getDayOfWeek() % 7 + 1));
     }
 
     @ExecFunction(name = "dayofweek")
     public static Expression dayOfWeek(DateV2Literal date) {
-        return new TinyIntLiteral((byte) 
(date.toJavaDateType().getDayOfWeek().getValue() % 7 + 1));
+        return new TinyIntLiteral((byte) (date.getDayOfWeek() % 7 + 1));
     }
 
     @ExecFunction(name = "dayofweek")
     public static Expression dayOfWeek(DateTimeV2Literal date) {
-        return new TinyIntLiteral((byte) 
(date.toJavaDateType().getDayOfWeek().getValue() % 7 + 1));
+        return new TinyIntLiteral((byte) (date.getDayOfWeek() % 7 + 1));
     }
 
     private static int distanceToFirstDayOfWeek(LocalDateTime dateTime) {
@@ -728,6 +728,15 @@ public class DateTimeExtractAndTransform {
      * the impl of function week(date/datetime, mode)
      */
     public static Expression week(LocalDateTime localDateTime, int mode) {
+        final byte[] resultOfFirstDayBC1 = new byte[] { 1, 0, 1, 52, 1, 0, 1, 
52 };
+        if (isSpecificDate(localDateTime) && mode >= 0 && mode <= 7) { // 
0000-01-01/02
+            if (localDateTime.getDayOfMonth() == 1) {
+                return new TinyIntLiteral(resultOfFirstDayBC1[mode]);
+            } else { // 0001-01-02
+                return new TinyIntLiteral((byte) 1);
+            }
+        }
+
         switch (mode) {
             case 0: {
                 return new TinyIntLiteral(
@@ -737,13 +746,6 @@ public class DateTimeExtractAndTransform {
                 return new TinyIntLiteral((byte) 
localDateTime.get(WeekFields.ISO.weekOfYear()));
             }
             case 2: {
-                // 
https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_week
-                // mode 2 is start with a Sunday day as first week in this 
year.
-                // and special case for 0000-01-01, as it's SATURDAY, 
calculate result of 52 is
-                // last year, so it's meaningless.
-                if (checkIsSpecificDate(localDateTime)) {
-                    return new TinyIntLiteral((byte) 1);
-                }
                 return new TinyIntLiteral(
                         (byte) 
localDateTime.get(WeekFields.of(DayOfWeek.SUNDAY, 7).weekOfWeekBasedYear()));
             }
@@ -816,11 +818,12 @@ public class DateTimeExtractAndTransform {
      * the impl of function yearWeek(date/datetime, mode)
      */
     public static Expression yearWeek(LocalDateTime localDateTime, int mode) {
+        if (localDateTime.getYear() == 0) {
+            return week(localDateTime, mode);
+        }
+
         switch (mode) {
             case 0: {
-                if (checkIsSpecificDate(localDateTime)) {
-                    return new IntegerLiteral(1);
-                }
                 return new IntegerLiteral(
                         localDateTime.get(WeekFields.of(DayOfWeek.SUNDAY, 
7).weekBasedYear()) * 100
                                 + localDateTime.get(
@@ -831,9 +834,6 @@ public class DateTimeExtractAndTransform {
                         + 
localDateTime.get(WeekFields.ISO.weekOfWeekBasedYear()));
             }
             case 2: {
-                if (checkIsSpecificDate(localDateTime)) {
-                    return new IntegerLiteral(1);
-                }
                 return new IntegerLiteral(
                         localDateTime.get(WeekFields.of(DayOfWeek.SUNDAY, 
7).weekBasedYear()) * 100
                                 + localDateTime.get(
@@ -869,20 +869,23 @@ public class DateTimeExtractAndTransform {
             }
             default: {
                 throw new AnalysisException(
-                        String.format("unknown mode %d in week function", 
mode));
+                        String.format("unknown mode %d in yearweek function", 
mode));
             }
         }
     }
 
     /**
-     * 0000-01-01 is specific date, sometime need handle it alone.
+     * weekofyear
      */
-    private static boolean checkIsSpecificDate(LocalDateTime localDateTime) {
-        return localDateTime.getYear() == 0 && localDateTime.getMonthValue() 
== 1 && localDateTime.getDayOfMonth() == 1;
-    }
-
     @ExecFunction(name = "weekofyear")
     public static Expression weekOfYear(DateTimeV2Literal dateTime) {
+        if (dateTime.getYear() == 0 && dateTime.getDayOfWeek() == 1) {
+            if (dateTime.getMonth() == 1 && dateTime.getDay() == 2) {
+                return new TinyIntLiteral((byte) 1);
+            }
+            return new TinyIntLiteral(
+                    (byte) 
(dateTime.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()) + 1));
+        }
         return new TinyIntLiteral((byte) 
dateTime.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()));
     }
 
@@ -891,6 +894,13 @@ public class DateTimeExtractAndTransform {
      */
     @ExecFunction(name = "weekofyear")
     public static Expression weekOfYear(DateTimeLiteral dateTime) {
+        if (dateTime.getYear() == 0 && dateTime.getDayOfWeek() == 1) {
+            if (dateTime.getMonth() == 1 && dateTime.getDay() == 2) {
+                return new TinyIntLiteral((byte) 1);
+            }
+            return new TinyIntLiteral(
+                    (byte) 
(dateTime.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()) + 1));
+        }
         return new TinyIntLiteral((byte) 
dateTime.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()));
     }
 
@@ -899,6 +909,12 @@ public class DateTimeExtractAndTransform {
      */
     @ExecFunction(name = "weekofyear")
     public static Expression weekOfYear(DateV2Literal date) {
+        if (date.getYear() == 0 && date.getDayOfWeek() == 1) {
+            if (date.getMonth() == 1 && date.getDay() == 2) {
+                return new TinyIntLiteral((byte) 1);
+            }
+            return new TinyIntLiteral((byte) 
(date.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()) + 1));
+        }
         return new TinyIntLiteral((byte) 
date.toJavaDateType().get(WeekFields.ISO.weekOfWeekBasedYear()));
     }
 
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 74e99160ad6..d0364991c1e 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
@@ -458,6 +458,21 @@ public class DateLiteral extends Literal {
         return day;
     }
 
+    public int getDayOfYear() {
+        if (year == 0 && month == 3 && (day == 1 || day == 2)) {
+            return toJavaDateType().getDayOfYear() - 1;
+        }
+        return toJavaDateType().getDayOfYear();
+    }
+
+    public int getDayOfWeek() {
+        if (year == 0 && (month == 1 || (month == 2 && day <= 28))) {
+            // shift right with 1 offset
+            return toJavaDateType().getDayOfWeek().getValue() % 7 + 1;
+        }
+        return toJavaDateType().getDayOfWeek().getValue();
+    }
+
     public Expression plusDays(long days) {
         return fromJavaDateType(toJavaDateType().plusDays(days));
     }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/DateTimeExtractAndTransformTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/DateTimeExtractAndTransformTest.java
index 10aa5939e31..11ebeb42f56 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/DateTimeExtractAndTransformTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/DateTimeExtractAndTransformTest.java
@@ -18,7 +18,8 @@
 package org.apache.doris.nereids.trees.expressions.functions;
 
 import 
org.apache.doris.nereids.trees.expressions.functions.executable.DateTimeExtractAndTransform;
-import org.apache.doris.nereids.trees.expressions.literal.IntegerLiteral;
+import org.apache.doris.nereids.trees.expressions.literal.DateTimeV2Literal;
+import org.apache.doris.nereids.trees.expressions.literal.SmallIntLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.TinyIntLiteral;
 
 import org.junit.jupiter.api.Assertions;
@@ -28,32 +29,99 @@ import java.time.LocalDateTime;
 
 class DateTimeExtractAndTransformTest {
     @Test
-    void testWeekMode2Function() {
-        LocalDateTime localDateTime = LocalDateTime.of(0, 1, 1, 0, 0, 0, 0);
-        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(localDateTime, 2));
-        LocalDateTime localDateTime2 = localDateTime.plusDays(1);
-        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(localDateTime2, 2));
-        LocalDateTime localDateTime3 = LocalDateTime.of(0, 1, 9, 0, 0, 0, 0);
-        Assertions.assertEquals(new TinyIntLiteral((byte) 2), 
DateTimeExtractAndTransform.week(localDateTime3, 2));
-
-        LocalDateTime localDateTime4 = LocalDateTime.of(0, 12, 30, 0, 0, 0, 0);
-        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.week(localDateTime4, 2));
-        LocalDateTime localDateTime5 = localDateTime4.plusDays(1);
-        Assertions.assertEquals(new TinyIntLiteral((byte) 53), 
DateTimeExtractAndTransform.week(localDateTime5, 2));
+    void testSpecialDateWeeks() {
+        // test week/yearweek for 0000-01-01/02
+        LocalDateTime time1 = LocalDateTime.of(0, 1, 1, 0, 0, 0, 0);
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time1, 0));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 0), 
DateTimeExtractAndTransform.week(time1, 1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time1, 2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.week(time1, 3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time1, 4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 0), 
DateTimeExtractAndTransform.week(time1, 5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time1, 6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.week(time1, 7));
+
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time1, 0));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 0), 
DateTimeExtractAndTransform.yearWeek(time1, 1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time1, 2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.yearWeek(time1, 3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time1, 4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 0), 
DateTimeExtractAndTransform.yearWeek(time1, 5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time1, 6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.yearWeek(time1, 7));
+
+        LocalDateTime time2 = LocalDateTime.of(0, 1, 2, 0, 0, 0, 0);
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 0));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.week(time2, 7));
+
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 0));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.yearWeek(time2, 7));
     }
 
     @Test
-    void testYearWeekMode2Function() {
-        LocalDateTime localDateTime = LocalDateTime.of(0, 1, 1, 0, 0, 0, 0);
-        Assertions.assertEquals(new IntegerLiteral(1), 
DateTimeExtractAndTransform.yearWeek(localDateTime, 2));
-        LocalDateTime localDateTime2 = localDateTime.plusDays(1);
-        Assertions.assertEquals(new IntegerLiteral(1), 
DateTimeExtractAndTransform.yearWeek(localDateTime2, 2));
-        LocalDateTime localDateTime3 = LocalDateTime.of(0, 1, 9, 0, 0, 0, 0);
-        Assertions.assertEquals(new IntegerLiteral(2), 
DateTimeExtractAndTransform.yearWeek(localDateTime3, 2));
-
-        LocalDateTime localDateTime4 = LocalDateTime.of(0, 12, 30, 0, 0, 0, 0);
-        Assertions.assertEquals(new IntegerLiteral(52), 
DateTimeExtractAndTransform.yearWeek(localDateTime4, 2));
-        LocalDateTime localDateTime5 = localDateTime4.plusDays(1);
-        Assertions.assertEquals(new IntegerLiteral(53), 
DateTimeExtractAndTransform.yearWeek(localDateTime5, 2));
+    void testSpecialDates() {
+        DateTimeV2Literal dt1 = new DateTimeV2Literal(0, 1, 1, 0, 0, 0);
+        DateTimeV2Literal dt2 = new DateTimeV2Literal(0, 1, 2, 0, 0, 0);
+        DateTimeV2Literal dt3 = new DateTimeV2Literal(0, 1, 3, 0, 0, 0);
+        DateTimeV2Literal dt4 = new DateTimeV2Literal(0, 1, 4, 0, 0, 0);
+        DateTimeV2Literal dt5 = new DateTimeV2Literal(0, 1, 5, 0, 0, 0);
+        DateTimeV2Literal dt6 = new DateTimeV2Literal(0, 1, 6, 0, 0, 0);
+        DateTimeV2Literal dt7 = new DateTimeV2Literal(0, 1, 7, 0, 0, 0);
+        DateTimeV2Literal dt8 = new DateTimeV2Literal(0, 1, 8, 0, 0, 0);
+        DateTimeV2Literal dtx1 = new DateTimeV2Literal(0, 2, 27, 0, 0, 0);
+        DateTimeV2Literal dtx2 = new DateTimeV2Literal(0, 2, 28, 0, 0, 0);
+        DateTimeV2Literal dtx3 = new DateTimeV2Literal(0, 3, 1, 0, 0, 0);
+        DateTimeV2Literal dtx4 = new DateTimeV2Literal(0, 3, 2, 0, 0, 0);
+
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.dayOfWeek(dt1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 2), 
DateTimeExtractAndTransform.dayOfWeek(dt2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 3), 
DateTimeExtractAndTransform.dayOfWeek(dt3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 4), 
DateTimeExtractAndTransform.dayOfWeek(dt4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 5), 
DateTimeExtractAndTransform.dayOfWeek(dt5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 6), 
DateTimeExtractAndTransform.dayOfWeek(dt6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 7), 
DateTimeExtractAndTransform.dayOfWeek(dt7));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.dayOfWeek(dt8));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 2), 
DateTimeExtractAndTransform.dayOfWeek(dtx1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 3), 
DateTimeExtractAndTransform.dayOfWeek(dtx2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 4), 
DateTimeExtractAndTransform.dayOfWeek(dtx3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 5), 
DateTimeExtractAndTransform.dayOfWeek(dtx4));
+
+        Assertions.assertEquals(new SmallIntLiteral((short) 1), 
DateTimeExtractAndTransform.dayOfYear(dt1));
+        Assertions.assertEquals(new SmallIntLiteral((short) 2), 
DateTimeExtractAndTransform.dayOfYear(dt2));
+        Assertions.assertEquals(new SmallIntLiteral((short) 3), 
DateTimeExtractAndTransform.dayOfYear(dt3));
+        Assertions.assertEquals(new SmallIntLiteral((short) 4), 
DateTimeExtractAndTransform.dayOfYear(dt4));
+        Assertions.assertEquals(new SmallIntLiteral((short) 5), 
DateTimeExtractAndTransform.dayOfYear(dt5));
+        Assertions.assertEquals(new SmallIntLiteral((short) 6), 
DateTimeExtractAndTransform.dayOfYear(dt6));
+        Assertions.assertEquals(new SmallIntLiteral((short) 7), 
DateTimeExtractAndTransform.dayOfYear(dt7));
+        Assertions.assertEquals(new SmallIntLiteral((short) 8), 
DateTimeExtractAndTransform.dayOfYear(dt8));
+        Assertions.assertEquals(new SmallIntLiteral((short) 58), 
DateTimeExtractAndTransform.dayOfYear(dtx1));
+        Assertions.assertEquals(new SmallIntLiteral((short) 59), 
DateTimeExtractAndTransform.dayOfYear(dtx2));
+        Assertions.assertEquals(new SmallIntLiteral((short) 60), 
DateTimeExtractAndTransform.dayOfYear(dtx3));
+        Assertions.assertEquals(new SmallIntLiteral((short) 61), 
DateTimeExtractAndTransform.dayOfYear(dtx4));
+
+        Assertions.assertEquals(new TinyIntLiteral((byte) 52), 
DateTimeExtractAndTransform.weekOfYear(dt1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt4));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt5));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt6));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt7));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 1), 
DateTimeExtractAndTransform.weekOfYear(dt8));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 9), 
DateTimeExtractAndTransform.weekOfYear(dtx1));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 9), 
DateTimeExtractAndTransform.weekOfYear(dtx2));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 9), 
DateTimeExtractAndTransform.weekOfYear(dtx3));
+        Assertions.assertEquals(new TinyIntLiteral((byte) 9), 
DateTimeExtractAndTransform.weekOfYear(dtx4));
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to