siddharthteotia commented on code in PR #8993: URL: https://github.com/apache/pinot/pull/8993#discussion_r910694202
########## 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: Also, can we add transform (on the MV raw group by column) to one of the aggregate group by queries ? -- 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