siddharthteotia commented on code in PR #8993:
URL: https://github.com/apache/pinot/pull/8993#discussion_r910692036


##########
pinot-core/src/test/java/org/apache/pinot/queries/MultiValueRawQueriesTest.java:
##########
@@ -468,6 +907,80 @@ private void 
validateSimpleAggregateQueryResults(ResultTable resultTable, DataSc
     assertEquals(avgInt, avgIntRaw);
   }
 
+  @Test
+  public void testAggregateWithFilterQueries() {
+    {
+      // Aggregation on int columns with filter
+      String query = "SELECT COUNTMV(mvIntCol), COUNTMV(mvRawIntCol), 
SUMMV(mvIntCol), SUMMV(mvRawIntCol), "
+          + "MINMV(mvIntCol), MINMV(mvRawIntCol), MAXMV(mvIntCol), 
MAXMV(mvRawIntCol), AVGMV(mvIntCol), "
+          + "AVGMV(mvRawIntCol) from testTable WHERE mvRawIntCol > 1000";
+      ResultTable resultTable = getBrokerResponse(query).getResultTable();
+
+      DataSchema dataSchema = new DataSchema(new String[]{
+          "countmv(mvIntCol)", "countmv(mvRawIntCol)", "summv(mvIntCol)", 
"summv(mvRawIntCol)", "minmv(mvIntCol)",
+          "minmv(mvRawIntCol)", "maxmv(mvIntCol)", "maxmv(mvRawIntCol)", 
"avgmv(mvIntCol)", "avgmv(mvRawIntCol)"
+      }, new DataSchema.ColumnDataType[]{
+          DataSchema.ColumnDataType.LONG, DataSchema.ColumnDataType.LONG, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE, DataSchema.ColumnDataType.DOUBLE, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE, DataSchema.ColumnDataType.DOUBLE, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE
+      });
+      validateAggregateWithFilterQueryResults(resultTable, dataSchema);
+    }
+    {
+      // Aggregation on double columns with filter
+      String query = "SELECT COUNTMV(mvDoubleCol), COUNTMV(mvRawDoubleCol), 
SUMMV(mvDoubleCol), SUMMV(mvRawDoubleCol), "
+          + "MINMV(mvDoubleCol), MINMV(mvRawDoubleCol), MAXMV(mvDoubleCol), 
MAXMV(mvRawDoubleCol), AVGMV(mvDoubleCol), "
+          + "AVGMV(mvRawDoubleCol) from testTable WHERE mvRawDoubleCol > 
1000.0";
+      ResultTable resultTable = getBrokerResponse(query).getResultTable();
+
+      DataSchema dataSchema = new DataSchema(new String[]{
+          "countmv(mvDoubleCol)", "countmv(mvRawDoubleCol)", 
"summv(mvDoubleCol)", "summv(mvRawDoubleCol)",
+          "minmv(mvDoubleCol)", "minmv(mvRawDoubleCol)", "maxmv(mvDoubleCol)", 
"maxmv(mvRawDoubleCol)",
+          "avgmv(mvDoubleCol)", "avgmv(mvRawDoubleCol)"
+      }, new DataSchema.ColumnDataType[]{
+          DataSchema.ColumnDataType.LONG, DataSchema.ColumnDataType.LONG, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE, DataSchema.ColumnDataType.DOUBLE, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE, DataSchema.ColumnDataType.DOUBLE, 
DataSchema.ColumnDataType.DOUBLE,
+          DataSchema.ColumnDataType.DOUBLE
+      });
+      validateAggregateWithFilterQueryResults(resultTable, dataSchema);
+    }
+  }
+
+  private void validateAggregateWithFilterQueryResults(ResultTable 
resultTable, DataSchema expectedDataSchema) {
+    assertNotNull(resultTable);
+    assertEquals(resultTable.getDataSchema(), expectedDataSchema);
+    List<Object[]> recordRows = resultTable.getRows();
+    assertEquals(recordRows.size(), 1);
+
+    Object[] values = recordRows.get(0);
+    long count = (long) values[0];
+    long countRaw = (long) values[1];
+    assertEquals(count, 80);
+    assertEquals(count, countRaw);
+
+    double sum = (double) values[2];
+    double sumRaw = (double) values[3];
+    assertEquals(sum, 84360.0);
+    assertEquals(sum, sumRaw);
+
+    double min = (double) values[4];
+    double minRaw = (double) values[5];
+    assertEquals(min, 1000.0);
+    assertEquals(min, minRaw);
+
+    double max = (double) values[6];
+    double maxRaw = (double) values[7];
+    assertEquals(max, 1109.0);
+    assertEquals(max, maxRaw);
+
+    double avg = (double) values[8];
+    double avgRaw = (double) values[9];
+    assertEquals(avg, 1054.5);
+    assertEquals(avg, avgRaw);
+  }
+
   @Test
   public void testAggregateWithGroupByQueries() {

Review Comment:
   Have we covered following scenarios ?
   
   - single GROUP BY MV column (raw)
   - 2 or more GROUP BY MV columns (all raw)
   - 2 or more GROUP BY MV columns (mix of raw and dict)
   - 2 or more GROUP BY MV columns (all raw) along 1 or more GROUP BY SV column 
(dict)
   - 2 or more GROUP BY MV columns (mix of raw and dict) along 1 or more GROUP 
BY SV column (raw or dict)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to