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]