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]