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 fbd3e708be Fix bug with server return final aggregation result when
null handling is enabled (#14181)
fbd3e708be is described below
commit fbd3e708be9a56f372485646ea1c4135a7226daa
Author: Yash Mayya <[email protected]>
AuthorDate: Thu Oct 10 03:40:26 2024 +0530
Fix bug with server return final aggregation result when null handling is
enabled (#14181)
---
.../operator/blocks/results/AggregationResultsBlock.java | 3 ++-
.../integration/tests/NullHandlingIntegrationTest.java | 15 +++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/AggregationResultsBlock.java
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/AggregationResultsBlock.java
index 4e0a1b3063..38ac595548 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/AggregationResultsBlock.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/AggregationResultsBlock.java
@@ -116,7 +116,8 @@ public class AggregationResultsBlock extends
BaseResultsBlock {
}
dataTableBuilder.startRow();
for (int i = 0; i < numColumns; i++) {
- Object result = _results.get(i);
+ Object result =
+ returnFinalResult ?
_aggregationFunctions[i].extractFinalResult(_results.get(i)) : _results.get(i);
if (result == null) {
result = columnDataTypes[i].getNullPlaceholder();
nullBitmaps[i].add(0);
diff --git
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/NullHandlingIntegrationTest.java
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/NullHandlingIntegrationTest.java
index 765c55cc7a..cf3911a32e 100644
---
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/NullHandlingIntegrationTest.java
+++
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/NullHandlingIntegrationTest.java
@@ -311,6 +311,21 @@ public class NullHandlingIntegrationTest extends
BaseClusterIntegrationTestSet {
assertEquals(response.get("resultTable").get("rows").get(0).get(0).asInt(), 1);
}
+ @Test(dataProvider = "useBothQueryEngines")
+ public void testAggregateServerReturnFinalResult(boolean
useMultiStageQueryEngine)
+ throws Exception {
+ setUseMultiStageQueryEngine(useMultiStageQueryEngine);
+ String sqlQuery = "SET serverReturnFinalResult = true; SELECT AVG(salary)
FROM mytable";
+ JsonNode response = postQuery(sqlQuery);
+ assertNoError(response);
+ assertEquals(5429377.34,
response.get("resultTable").get("rows").get(0).get(0).asDouble(), 0.1);
+
+ sqlQuery = "SET serverReturnFinalResult = true; SELECT AVG(salary) FROM
mytable WHERE city = 'does_not_exist'";
+ response = postQuery(sqlQuery);
+ assertNoError(response);
+ assertTrue(response.get("resultTable").get("rows").get(0).get(0).isNull());
+ }
+
@Override
protected void overrideBrokerConf(PinotConfiguration brokerConf) {
brokerConf.setProperty(CommonConstants.Broker.CONFIG_OF_BROKER_QUERY_ENABLE_NULL_HANDLING,
"true");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]