Vectorize numeric latest aggregators (#12439)
authorsomu-imply <93540295+somu-imply@users.noreply.github.com>
Tue, 26 Apr 2022 18:33:08 +0000 (11:33 -0700)
committerGitHub <noreply@github.com>
Tue, 26 Apr 2022 18:33:08 +0000 (11:33 -0700)
commit027935dcffd3f83b7faa94c187ab0572f16981c6
tree1d06f52c1531fdd39350efbd12c312044ac59f80
parent564d6defd47749d55dd07e5549d7264cbc1c4019
Vectorize numeric latest aggregators (#12439)

* Vectorizing Latest aggregator Part 1

* Updating benchmark tests

* Changing appropriate logic for vectors for null handling

* Introducing an abstract class and moving the commonalities there

* Adding vectorization for StringLast aggregator (initial version)

* Updated bufferized version of numeric aggregators

* Adding some javadocs

* Making sure this PR vectorizes numeric latest agg only

* Adding another benchmarking test

* Fixing intellij inspections

* Adding tests for double

* Adding test cases for long and float

* Updating testcases

* Checkstyle oops..

* One tiny change in test case

* Fixing spotbug and rhs not being used
13 files changed:
benchmarks/src/test/java/org/apache/druid/benchmark/query/SqlExpressionBenchmark.java
processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastAggregatorFactory.java
processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastVectorAggregator.java [new file with mode: 0644]
processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastAggregatorFactory.java
processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastVectorAggregator.java [new file with mode: 0644]
processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastAggregatorFactory.java
processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastVectorAggregator.java [new file with mode: 0644]
processing/src/main/java/org/apache/druid/query/aggregation/last/NumericLastAggregator.java
processing/src/main/java/org/apache/druid/query/aggregation/last/NumericLastVectorAggregator.java [new file with mode: 0644]
processing/src/test/java/org/apache/druid/query/aggregation/last/DoubleLastVectorAggregatorTest.java [new file with mode: 0644]
processing/src/test/java/org/apache/druid/query/aggregation/last/FloatLastVectorAggregatorTest.java [new file with mode: 0644]
processing/src/test/java/org/apache/druid/query/aggregation/last/LongLastVectorAggregatorTest.java [new file with mode: 0644]
sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java