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

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


The following commit(s) were added to refs/heads/master by this push:
     new 465a290241 Fix 'WEEK' transform function in multi-stage query engine 
(#13483)
465a290241 is described below

commit 465a290241cda0416f342f79bfba9ff4a8c85b24
Author: Yash Mayya <[email protected]>
AuthorDate: Wed Jun 26 22:38:53 2024 +0530

    Fix 'WEEK' transform function in multi-stage query engine (#13483)
---
 .../core/operator/transform/function/ExtractTransformFunction.java  | 6 +++++-
 .../operator/transform/function/ExtractTransformFunctionTest.java   | 1 +
 .../org/apache/pinot/integration/tests/custom/TimestampTest.java    | 3 +++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunction.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunction.java
index 8f8da73b78..7bbc19acde 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunction.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunction.java
@@ -36,7 +36,7 @@ public class ExtractTransformFunction extends 
BaseTransformFunction {
   protected Chronology _chronology = ISOChronology.getInstanceUTC();
 
   private enum Field {
-    YEAR, QUARTER, MONTH, DAY, DOY, DOW, HOUR, MINUTE, SECOND
+    YEAR, QUARTER, MONTH, WEEK, DAY, DOY, DOW, HOUR, MINUTE, SECOND
   }
 
   @Override
@@ -85,6 +85,10 @@ public class ExtractTransformFunction extends 
BaseTransformFunction {
           accessor = _chronology.monthOfYear();
           output[i] = accessor.get(timestamps[i]);
           break;
+        case WEEK:
+          accessor = _chronology.weekOfWeekyear();
+          output[i] = accessor.get(timestamps[i]);
+          break;
         case DAY:
           accessor = _chronology.dayOfMonth();
           output[i] = accessor.get(timestamps[i]);
diff --git 
a/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunctionTest.java
 
b/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunctionTest.java
index 8f25b62c9e..ea74f266c5 100644
--- 
a/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunctionTest.java
+++ 
b/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/ExtractTransformFunctionTest.java
@@ -39,6 +39,7 @@ public class ExtractTransformFunctionTest extends 
BaseTransformFunctionTest {
         //@formatter:off
         {"year", (LongToIntFunction) DateTimeFunctions::year},
         {"month", (LongToIntFunction) DateTimeFunctions::monthOfYear},
+        {"week", (LongToIntFunction) DateTimeFunctions::weekOfYear},
         {"day", (LongToIntFunction) DateTimeFunctions::dayOfMonth},
         {"hour", (LongToIntFunction) DateTimeFunctions::hour},
         {"minute", (LongToIntFunction) DateTimeFunctions::minute},
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/custom/TimestampTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/custom/TimestampTest.java
index 603a627555..60e63898f4 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/custom/TimestampTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/custom/TimestampTest.java
@@ -190,6 +190,7 @@ public class TimestampTest extends 
CustomDataQueryClusterIntegrationTest {
         + "YEAR_OF_WEEK(tsBase), YEAR_OF_WEEK(tsHalfDayAfter),\n"
         + "MONTH_OF_YEAR(tsBase), MONTH_OF_YEAR(tsHalfDayAfter),\n"
         + "WEEK_OF_YEAR(tsBase), WEEK_OF_YEAR(tsHalfDayAfter),\n"
+        + "WEEK(tsBase), WEEK(tsHalfDayAfter),\n"
         + "DAY_OF_YEAR(tsBase), DAY_OF_YEAR(tsHalfDayAfter),\n"
         + "DAY_OF_MONTH(tsBase), DAY_OF_MONTH(tsHalfDayAfter),\n"
         + "DAY_OF_WEEK(tsBase), DAY_OF_WEEK(tsHalfDayAfter),\n"
@@ -228,6 +229,8 @@ public class TimestampTest extends 
CustomDataQueryClusterIntegrationTest {
           jsonNode.get("resultTable").get("rows").get(i).get(25).asInt());
       
assertEquals(jsonNode.get("resultTable").get("rows").get(i).get(26).asInt(),
           jsonNode.get("resultTable").get("rows").get(i).get(27).asInt());
+      
assertEquals(jsonNode.get("resultTable").get("rows").get(i).get(28).asInt(),
+          jsonNode.get("resultTable").get("rows").get(i).get(29).asInt());
     }
   }
 


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

Reply via email to