This is an automated email from the ASF dual-hosted git repository.

kgyrtkirk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new eb981d855fc Correct aggregators violating names (#16615)
eb981d855fc is described below

commit eb981d855fc0d4ef25f820e1de45d0f2660b226f
Author: Sree Charan Manamala <[email protected]>
AuthorDate: Fri Jul 12 12:48:09 2024 +0530

    Correct aggregators violating names (#16615)
    
    In case of few aggregators for example BloomSqlAggregator, 
BaseVarianceSqlAggregator etc, the aggName is being updated from a0 to a0:agg, 
breaching the contract as we would expect the aggName as the name which is 
passed. This is causing a mismatch while creating a column accessor.
    
    This commit aims to correct those violating sql aggregators.
---
 .../CompressedBigDecimalSqlAggregatorBase.java     |  3 +-
 .../CompressedBigDecimalSqlAggregatorTestBase.java | 26 +++++-----
 .../sql/TDigestGenerateSketchSqlAggregator.java    |  6 +--
 .../sql/TDigestSketchSqlAggregatorTest.java        | 16 +++---
 .../sql/DoublesSketchObjectSqlAggregator.java      |  6 +--
 .../sql/DoublesSketchSqlAggregatorTest.java        | 46 ++++++++---------
 .../bloom/sql/BloomFilterSqlAggregator.java        |  3 +-
 .../bloom/sql/BloomFilterSqlAggregatorTest.java    | 24 ++++-----
 .../variance/sql/BaseVarianceSqlAggregator.java    | 13 +++--
 .../variance/sql/VarianceSqlAggregatorTest.java    | 59 ++++++++++++++++------
 10 files changed, 114 insertions(+), 88 deletions(-)

diff --git 
a/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
 
b/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
index 33c010b58cc..8ce60b1a5f3 100644
--- 
a/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
+++ 
b/extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorBase.java
@@ -32,7 +32,6 @@ import org.apache.calcite.sql.type.ReturnTypes;
 import org.apache.calcite.sql.type.SqlTypeFamily;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.util.Optionality;
-import org.apache.druid.java.util.common.StringUtils;
 import org.apache.druid.query.aggregation.AggregatorFactory;
 import org.apache.druid.segment.column.ColumnType;
 import org.apache.druid.sql.calcite.aggregation.Aggregation;
@@ -130,7 +129,7 @@ public abstract class CompressedBigDecimalSqlAggregatorBase 
implements SqlAggreg
 
     // create the factory
     AggregatorFactory aggregatorFactory = factoryCreator.create(
-        StringUtils.format("%s:agg", name),
+        name,
         sumColumnName,
         size,
         scale,
diff --git 
a/extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorTestBase.java
 
b/extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorTestBase.java
index 671aa9aa084..5227700bb7c 100644
--- 
a/extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorTestBase.java
+++ 
b/extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalSqlAggregatorTestBase.java
@@ -165,9 +165,9 @@ public abstract class 
CompressedBigDecimalSqlAggregatorTestBase extends BaseCalc
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(
-                      factoryCreator.create("a0:agg", "m1", 9, 9, false),
-                      factoryCreator.create("a1:agg", "m2", 9, 9, false),
-                      factoryCreator.create("a2:agg", "dim1", 9, 9, false)
+                      factoryCreator.create("a0", "m1", 9, 9, false),
+                      factoryCreator.create("a1", "m2", 9, 9, false),
+                      factoryCreator.create("a2", "dim1", 9, 9, false)
 
                   )
                   .context(QUERY_CONTEXT_DEFAULT)
@@ -190,7 +190,7 @@ public abstract class 
CompressedBigDecimalSqlAggregatorTestBase extends BaseCalc
                   .dataSource(CalciteTests.DATASOURCE1)
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
-                  .aggregators(factoryCreator.create("a0:agg", "dim1", 9, 9, 
true))
+                  .aggregators(factoryCreator.create("a0", "dim1", 9, 9, true))
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
         ),
@@ -218,9 +218,9 @@ public abstract class 
CompressedBigDecimalSqlAggregatorTestBase extends BaseCalc
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(
-                      factoryCreator.create("a0:agg", "m1", 9, 3, false),
-                      factoryCreator.create("a1:agg", "m2", 9, 3, false),
-                      factoryCreator.create("a2:agg", "dim1", 9, 3, false)
+                      factoryCreator.create("a0", "m1", 9, 3, false),
+                      factoryCreator.create("a1", "m2", 9, 3, false),
+                      factoryCreator.create("a2", "dim1", 9, 3, false)
                   )
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -249,9 +249,9 @@ public abstract class 
CompressedBigDecimalSqlAggregatorTestBase extends BaseCalc
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(
-                      factoryCreator.create("a0:agg", "m1", 9, 9, false),
-                      factoryCreator.create("a1:agg", "m2", 9, 9, false),
-                      factoryCreator.create("a2:agg", "dim1", 9, 9, false)
+                      factoryCreator.create("a0", "m1", 9, 9, false),
+                      factoryCreator.create("a1", "m2", 9, 9, false),
+                      factoryCreator.create("a2", "dim1", 9, 9, false)
                   )
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -275,9 +275,9 @@ public abstract class 
CompressedBigDecimalSqlAggregatorTestBase extends BaseCalc
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(
-                      factoryCreator.create("a0:agg", "m1", 6, 9, false),
-                      factoryCreator.create("a1:agg", "m2", 6, 9, false),
-                      factoryCreator.create("a2:agg", "dim1", 6, 9, false)
+                      factoryCreator.create("a0", "m1", 6, 9, false),
+                      factoryCreator.create("a1", "m2", 6, 9, false),
+                      factoryCreator.create("a2", "dim1", 6, 9, false)
                   )
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
diff --git 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
index 1777ce5c544..5604622755a 100644
--- 
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
+++ 
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestGenerateSketchSqlAggregator.java
@@ -27,7 +27,6 @@ import org.apache.calcite.sql.SqlFunctionCategory;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.SqlTypeFamily;
 import org.apache.calcite.util.Optionality;
-import org.apache.druid.java.util.common.StringUtils;
 import org.apache.druid.query.aggregation.AggregatorFactory;
 import 
org.apache.druid.query.aggregation.tdigestsketch.TDigestSketchAggregatorFactory;
 import org.apache.druid.query.aggregation.tdigestsketch.TDigestSketchUtils;
@@ -79,7 +78,6 @@ public class TDigestGenerateSketchSqlAggregator implements 
SqlAggregator
     }
 
     final AggregatorFactory aggregatorFactory;
-    final String aggName = StringUtils.format("%s:agg", name);
 
     Integer compression = TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION;
     if (aggregateCall.getArgList().size() > 1) {
@@ -116,7 +114,7 @@ public class TDigestGenerateSketchSqlAggregator implements 
SqlAggregator
     // No existing match found. Create a new one.
     if (input.isDirectColumnAccess()) {
       aggregatorFactory = new TDigestSketchAggregatorFactory(
-          aggName,
+          name,
           input.getDirectColumn(),
           compression
       );
@@ -125,7 +123,7 @@ public class TDigestGenerateSketchSqlAggregator implements 
SqlAggregator
           input,
           ColumnType.FLOAT
       );
-      aggregatorFactory = new TDigestSketchAggregatorFactory(aggName, 
virtualColumnName, compression);
+      aggregatorFactory = new TDigestSketchAggregatorFactory(name, 
virtualColumnName, compression);
     }
 
     return Aggregation.create(aggregatorFactory);
diff --git 
a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchSqlAggregatorTest.java
 
b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchSqlAggregatorTest.java
index c4913667cb0..2a53ef0369b 100644
--- 
a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchSqlAggregatorTest.java
+++ 
b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/sql/TDigestSketchSqlAggregatorTest.java
@@ -135,7 +135,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(ImmutableList.of(
-                      new TDigestSketchAggregatorFactory("a0:agg", "m1", 200)
+                      new TDigestSketchAggregatorFactory("a0", "m1", 200)
                   ))
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -205,7 +205,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(ImmutableList.of(
-                      new TDigestSketchAggregatorFactory("a0:agg", "m1", 200)
+                      new TDigestSketchAggregatorFactory("a0", "m1", 200)
                   ))
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -242,7 +242,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                       )
                   )
                   .aggregators(ImmutableList.of(
-                      new TDigestSketchAggregatorFactory("a0:agg", "v0", 200)
+                      new TDigestSketchAggregatorFactory("a0", "v0", 200)
                   ))
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -275,7 +275,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .intervals(new 
MultipleIntervalSegmentSpec(ImmutableList.of(Filtration.eternity())))
                   .granularity(Granularities.ALL)
                   .aggregators(ImmutableList.of(
-                      new TDigestSketchAggregatorFactory("a0:agg", "m1", 
TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION)
+                      new TDigestSketchAggregatorFactory("a0", "m1", 
TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION)
                   ))
                   .context(QUERY_CONTEXT_DEFAULT)
                   .build()
@@ -357,7 +357,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                                             .setDimensions(new 
DefaultDimensionSpec("dim1", "d0"))
                                             .setAggregatorSpecs(
                                                 ImmutableList.of(
-                                                    new 
TDigestSketchAggregatorFactory("a0:agg", "m1", 200)
+                                                    new 
TDigestSketchAggregatorFactory("a0", "m1", 200)
                                                 )
                                             )
                                             .setContext(QUERY_CONTEXT_DEFAULT)
@@ -368,7 +368,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                         .setGranularity(Granularities.ALL)
                         .setAggregatorSpecs(
                             ImmutableList.of(
-                                new TDigestSketchAggregatorFactory("_a0:agg", 
"a0:agg", 100)
+                                new TDigestSketchAggregatorFactory("_a0:agg", 
"a0", 100)
                             )
                         )
                         .setPostAggregatorSpecs(
@@ -534,7 +534,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .filters(numericEquality("dim2", 0L, ColumnType.LONG))
                   .granularity(Granularities.ALL)
                   .aggregators(ImmutableList.of(
-                      new TDigestSketchAggregatorFactory("a0:agg", "m1", 
TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION),
+                      new TDigestSketchAggregatorFactory("a0", "m1", 
TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION),
                       new TDigestSketchAggregatorFactory("a1:agg", 
"qsketch_m1", 100)
                   ))
                   .postAggregators(
@@ -571,7 +571,7 @@ public class TDigestSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                         .setAggregatorSpecs(
                             aggregators(
                                 new FilteredAggregatorFactory(
-                                    new 
TDigestSketchAggregatorFactory("a0:agg", "m1", 
TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION),
+                                    new TDigestSketchAggregatorFactory("a0", 
"m1", TDigestSketchAggregatorFactory.DEFAULT_COMPRESSION),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
index 15b15b0dc21..55973c093d6 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchObjectSqlAggregator.java
@@ -27,7 +27,6 @@ import org.apache.calcite.sql.SqlAggFunction;
 import org.apache.calcite.sql.SqlFunctionCategory;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.SqlTypeFamily;
-import org.apache.druid.java.util.common.StringUtils;
 import org.apache.druid.query.aggregation.AggregatorFactory;
 import org.apache.druid.query.aggregation.datasketches.SketchQueryContext;
 import 
org.apache.druid.query.aggregation.datasketches.quantiles.DoublesSketchAggregatorFactory;
@@ -89,7 +88,6 @@ public class DoublesSketchObjectSqlAggregator implements 
SqlAggregator
     }
 
     final AggregatorFactory aggregatorFactory;
-    final String histogramName = StringUtils.format("%s:agg", name);
     final int k;
 
     if (aggregateCall.getArgList().size() >= 2) {
@@ -108,7 +106,7 @@ public class DoublesSketchObjectSqlAggregator implements 
SqlAggregator
     // No existing match found. Create a new one.
     if (input.isDirectColumnAccess()) {
       aggregatorFactory = new DoublesSketchAggregatorFactory(
-          histogramName,
+          name,
           input.getDirectColumn(),
           k,
           
DoublesSketchApproxQuantileSqlAggregator.getMaxStreamLengthFromQueryContext(plannerContext.queryContext()),
@@ -120,7 +118,7 @@ public class DoublesSketchObjectSqlAggregator implements 
SqlAggregator
           ColumnType.FLOAT
       );
       aggregatorFactory = new DoublesSketchAggregatorFactory(
-          histogramName,
+          name,
           virtualColumnName,
           k,
           
DoublesSketchApproxQuantileSqlAggregator.getMaxStreamLengthFromQueryContext(plannerContext.queryContext()),
diff --git 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
index bce6a306c80..9122e1ecc7e 100644
--- 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
+++ 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java
@@ -539,8 +539,8 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(ImmutableList.of(
                       new LongSumAggregatorFactory("a0", "cnt"),
                       new DoublesSketchAggregatorFactory("a1:agg", "cnt", 128),
-                      new DoublesSketchAggregatorFactory("a2:agg", "cnt", 128, 
null, false),
-                      new DoublesSketchAggregatorFactory("a3:agg", "v0", 128, 
null, false)
+                      new DoublesSketchAggregatorFactory("a2", "cnt", 128, 
null, false),
+                      new DoublesSketchAggregatorFactory("a3", "v0", 128, 
null, false)
                   ))
                   .postAggregators(
                       new DoublesSketchToQuantilePostAggregator(
@@ -557,7 +557,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p2",
                           new FieldAccessPostAggregator(
                               "p1",
-                              "a2:agg"
+                              "a2"
                           ),
                           0.5f
                       ),
@@ -570,7 +570,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p5",
                           new FieldAccessPostAggregator(
                               "p4",
-                              "a3:agg"
+                              "a3"
                           ),
                           0.5f
                       ),
@@ -583,7 +583,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p8",
                           new FieldAccessPostAggregator(
                               "p7",
-                              "a2:agg"
+                              "a2"
                           ),
                           0.5f
                       ),
@@ -592,7 +592,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p11",
                           new FieldAccessPostAggregator(
                               "p10",
-                              "a2:agg"
+                              "a2"
                           ),
                           new double[]{0.5d, 0.8d}
                       ),
@@ -600,7 +600,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p13",
                           new FieldAccessPostAggregator(
                               "p12",
-                              "a2:agg"
+                              "a2"
                           ),
                           new double[]{0.5d, 0.8d}
                       ),
@@ -608,7 +608,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p15",
                           new FieldAccessPostAggregator(
                               "p14",
-                              "a2:agg"
+                              "a2"
                           ),
                           new double[]{0.2d, 0.6d},
                           null
@@ -617,7 +617,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p17",
                           new FieldAccessPostAggregator(
                               "p16",
-                              "a2:agg"
+                              "a2"
                           ),
                           3.0d
                       ),
@@ -625,7 +625,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p19",
                           new FieldAccessPostAggregator(
                               "p18",
-                              "a2:agg"
+                              "a2"
                           ),
                           new double[]{0.2d, 0.6d}
                       ),
@@ -633,7 +633,7 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                           "p21",
                           new FieldAccessPostAggregator(
                               "p20",
-                              "a2:agg"
+                              "a2"
                           )
                       ),
                       expressionPostAgg(
@@ -697,24 +697,24 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .granularity(Granularities.ALL)
                   .aggregators(
                       ImmutableList.of(
-                          new DoublesSketchAggregatorFactory("a0:agg", "m1", 
128, null, false)
+                          new DoublesSketchAggregatorFactory("a0", "m1", 128, 
null, false)
                       )
                   )
                   .postAggregators(
                       ImmutableList.of(
                           new DoublesSketchToQuantilePostAggregator(
                               "p1",
-                              new FieldAccessPostAggregator("p0", "a0:agg"),
+                              new FieldAccessPostAggregator("p0", "a0"),
                               0.5
                           ),
                           new DoublesSketchToQuantilePostAggregator(
                               "s1",
-                              new FieldAccessPostAggregator("s0", "a0:agg"),
+                              new FieldAccessPostAggregator("s0", "a0"),
                               0.5
                           ),
                           new DoublesSketchToQuantilePostAggregator(
                               "s3",
-                              new FieldAccessPostAggregator("s2", "a0:agg"),
+                              new FieldAccessPostAggregator("s2", "a0"),
                               0.9800000190734863
                           )
                       )
@@ -750,8 +750,8 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(ImmutableList.of(
                       new DoublesSketchAggregatorFactory("a0:agg", "m1", null),
                       new DoublesSketchAggregatorFactory("a1:agg", 
"qsketch_m1", null),
-                      new DoublesSketchAggregatorFactory("a2:agg", "m1", null, 
null, false),
-                      new DoublesSketchAggregatorFactory("a3:agg", 
"qsketch_m1", null, null, false)
+                      new DoublesSketchAggregatorFactory("a2", "m1", null, 
null, false),
+                      new DoublesSketchAggregatorFactory("a3", "qsketch_m1", 
null, null, false)
                   ))
                   .postAggregators(
                       new DoublesSketchToQuantilePostAggregator("a0", 
makeFieldAccessPostAgg("a0:agg"), 0.01f),
@@ -797,8 +797,8 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(ImmutableList.of(
                       new DoublesSketchAggregatorFactory("a0:agg", "m1", null),
                       new DoublesSketchAggregatorFactory("a1:agg", 
"qsketch_m1", null),
-                      new DoublesSketchAggregatorFactory("a2:agg", "m1", null, 
null, true),
-                      new DoublesSketchAggregatorFactory("a3:agg", 
"qsketch_m1", null, null, true)
+                      new DoublesSketchAggregatorFactory("a2", "m1", null, 
null, true),
+                      new DoublesSketchAggregatorFactory("a3", "qsketch_m1", 
null, null, true)
                   ))
                   .postAggregators(
                       new DoublesSketchToQuantilePostAggregator("a0", 
makeFieldAccessPostAgg("a0:agg"), 0.01f),
@@ -848,11 +848,11 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new 
DoublesSketchAggregatorFactory("a2:agg", "m1", null, null, false),
+                                    new DoublesSketchAggregatorFactory("a2", 
"m1", null, null, false),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new 
DoublesSketchAggregatorFactory("a3:agg", "qsketch_m1", null, null, false),
+                                    new DoublesSketchAggregatorFactory("a3", 
"qsketch_m1", null, null, false),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 )
                             )
@@ -919,11 +919,11 @@ public class DoublesSketchSqlAggregatorTest extends 
BaseCalciteQueryTest
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new 
DoublesSketchAggregatorFactory("a2:agg", "m1", null, null, true),
+                                    new DoublesSketchAggregatorFactory("a2", 
"m1", null, null, true),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new 
DoublesSketchAggregatorFactory("a3:agg", "qsketch_m1", null, null, true),
+                                    new DoublesSketchAggregatorFactory("a3", 
"qsketch_m1", null, null, true),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 )
                             )
diff --git 
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
 
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
index 5beb6c64232..209fe3500f4 100644
--- 
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
+++ 
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregator.java
@@ -81,7 +81,6 @@ public class BloomFilterSqlAggregator implements SqlAggregator
     }
 
     final AggregatorFactory aggregatorFactory;
-    final String aggName = StringUtils.format("%s:agg", name);
     final RexNode maxNumEntriesOperand = 
inputAccessor.getField(aggregateCall.getArgList().get(1));
 
     if (!maxNumEntriesOperand.isA(SqlKind.LITERAL)) {
@@ -157,7 +156,7 @@ public class BloomFilterSqlAggregator implements 
SqlAggregator
     }
 
     aggregatorFactory = new BloomFilterAggregatorFactory(
-        aggName,
+        name,
         spec,
         maxNumEntries
     );
diff --git 
a/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregatorTest.java
 
b/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregatorTest.java
index cfb4209cb3b..7de8ef8280c 100644
--- 
a/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregatorTest.java
+++ 
b/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/sql/BloomFilterSqlAggregatorTest.java
@@ -148,7 +148,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("dim1", "a0:dim1"),
                               TEST_NUM_ENTRIES
                           )
@@ -207,12 +207,12 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
               .aggregators(
                   ImmutableList.of(
                       new BloomFilterAggregatorFactory(
-                          "a0:agg",
+                          "a0",
                           new DefaultDimensionSpec("dim1", "a0:dim1"),
                           TEST_NUM_ENTRIES
                       ),
                       new BloomFilterAggregatorFactory(
-                          "a1:agg",
+                          "a1",
                           new DefaultDimensionSpec("dim2", "a1:dim2"),
                           TEST_NUM_ENTRIES
                       )
@@ -258,7 +258,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new ExtractionDimensionSpec(
                                   "dim1",
                                   "a0:dim1",
@@ -308,7 +308,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("l1", "a0:l1", 
ColumnType.LONG),
                               TEST_NUM_ENTRIES
                           )
@@ -361,7 +361,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("v0", "a0:v0"),
                               TEST_NUM_ENTRIES
                           )
@@ -415,7 +415,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("v0", "a0:v0"),
                               TEST_NUM_ENTRIES
                           )
@@ -469,7 +469,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("v0", "a0:v0"),
                               TEST_NUM_ENTRIES
                           )
@@ -508,12 +508,12 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .aggregators(
                       ImmutableList.of(
                           new BloomFilterAggregatorFactory(
-                              "a0:agg",
+                              "a0",
                               new DefaultDimensionSpec("dim1", "a0:dim1"),
                               TEST_NUM_ENTRIES
                           ),
                           new BloomFilterAggregatorFactory(
-                              "a1:agg",
+                              "a1",
                               new DefaultDimensionSpec("l1", "a1:l1", 
ColumnType.LONG),
                               TEST_NUM_ENTRIES
                           )
@@ -559,7 +559,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                             aggregators(
                                 new FilteredAggregatorFactory(
                                     new BloomFilterAggregatorFactory(
-                                        "a0:agg",
+                                        "a0",
                                         new DefaultDimensionSpec("dim1", 
"a0:dim1"),
                                         TEST_NUM_ENTRIES
                                     ),
@@ -567,7 +567,7 @@ public class BloomFilterSqlAggregatorTest extends 
BaseCalciteQueryTest
                                 ),
                                 new FilteredAggregatorFactory(
                                     new BloomFilterAggregatorFactory(
-                                        "a1:agg",
+                                        "a1",
                                         new DefaultDimensionSpec("l1", 
"a1:l1", ColumnType.LONG),
                                         TEST_NUM_ENTRIES
                                     ),
diff --git 
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/sql/BaseVarianceSqlAggregator.java
 
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/sql/BaseVarianceSqlAggregator.java
index b2ed565d627..7621fae4bf7 100644
--- 
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/sql/BaseVarianceSqlAggregator.java
+++ 
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/sql/BaseVarianceSqlAggregator.java
@@ -97,8 +97,15 @@ public abstract class BaseVarianceSqlAggregator implements 
SqlAggregator
     final RelDataType dataType = inputOperand.getType();
     final ColumnType inputType = 
Calcites.getColumnTypeForRelDataType(dataType);
     final DimensionSpec dimensionSpec;
-    final String aggName = StringUtils.format("%s:agg", name);
     final SqlAggFunction func = calciteFunction();
+    boolean needsPostAggregator = false;
+    String aggName = name;
+    if (func.getName().equals(STDDEV_NAME)
+        || func.getName().equals(SqlKind.STDDEV_POP.name())
+        || func.getName().equals(SqlKind.STDDEV_SAMP.name())) {
+      needsPostAggregator = true;
+      aggName = StringUtils.format("%s:agg", name);
+    }
     final String estimator;
     final String inputTypeName;
     PostAggregator postAggregator = null;
@@ -136,9 +143,7 @@ public abstract class BaseVarianceSqlAggregator implements 
SqlAggregator
         inputTypeName
     );
 
-    if (func.getName().equals(STDDEV_NAME)
-        || func.getName().equals(SqlKind.STDDEV_POP.name())
-        || func.getName().equals(SqlKind.STDDEV_SAMP.name())) {
+    if (needsPostAggregator) {
       postAggregator = new StandardDeviationPostAggregator(
           name,
           aggregatorFactory.getName(),
diff --git 
a/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/sql/VarianceSqlAggregatorTest.java
 
b/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/sql/VarianceSqlAggregatorTest.java
index 7c63d63aab8..f3e6406ecf3 100644
--- 
a/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/sql/VarianceSqlAggregatorTest.java
+++ 
b/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/sql/VarianceSqlAggregatorTest.java
@@ -20,6 +20,7 @@
 package org.apache.druid.query.aggregation.variance.sql;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.inject.Injector;
 import org.apache.druid.common.config.NullHandling;
 import org.apache.druid.data.input.InputRow;
@@ -32,6 +33,7 @@ import org.apache.druid.guice.DruidInjectorBuilder;
 import org.apache.druid.java.util.common.granularity.Granularities;
 import org.apache.druid.math.expr.ExprMacroTable;
 import org.apache.druid.query.Druids;
+import org.apache.druid.query.QueryContexts;
 import org.apache.druid.query.QueryRunnerFactoryConglomerate;
 import org.apache.druid.query.aggregation.CountAggregatorFactory;
 import org.apache.druid.query.aggregation.DoubleSumAggregatorFactory;
@@ -61,6 +63,7 @@ import org.apache.druid.sql.calcite.BaseCalciteQueryTest;
 import org.apache.druid.sql.calcite.SqlTestFrameworkConfig;
 import org.apache.druid.sql.calcite.TempDirProducer;
 import org.apache.druid.sql.calcite.filtration.Filtration;
+import org.apache.druid.sql.calcite.planner.PlannerContext;
 import org.apache.druid.sql.calcite.util.CalciteTests;
 import 
org.apache.druid.sql.calcite.util.SqlTestFramework.StandardComponentSupplier;
 import org.apache.druid.sql.calcite.util.TestDataBuilder;
@@ -199,9 +202,9 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .granularity(Granularities.ALL)
                   .aggregators(
                       ImmutableList.of(
-                          new VarianceAggregatorFactory("a0:agg", "d1", 
"population", "double"),
-                          new VarianceAggregatorFactory("a1:agg", "f1", 
"population", "float"),
-                          new VarianceAggregatorFactory("a2:agg", "l1", 
"population", "long")
+                          new VarianceAggregatorFactory("a0", "d1", 
"population", "double"),
+                          new VarianceAggregatorFactory("a1", "f1", 
"population", "float"),
+                          new VarianceAggregatorFactory("a2", "l1", 
"population", "long")
                       )
                   )
                   .context(BaseCalciteQueryTest.QUERY_CONTEXT_DEFAULT)
@@ -247,9 +250,9 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .granularity(Granularities.ALL)
                   .aggregators(
                       ImmutableList.of(
-                          new VarianceAggregatorFactory("a0:agg", "d1", 
"sample", "double"),
-                          new VarianceAggregatorFactory("a1:agg", "f1", 
"sample", "float"),
-                          new VarianceAggregatorFactory("a2:agg", "l1", 
"sample", "long")
+                          new VarianceAggregatorFactory("a0", "d1", "sample", 
"double"),
+                          new VarianceAggregatorFactory("a1", "f1", "sample", 
"float"),
+                          new VarianceAggregatorFactory("a2", "l1", "sample", 
"long")
                       )
                   )
                   .context(BaseCalciteQueryTest.QUERY_CONTEXT_DEFAULT)
@@ -454,14 +457,14 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                         .setGranularity(Granularities.ALL)
                         .setDimensions(new DefaultDimensionSpec("dim2", "_d0"))
                         .setAggregatorSpecs(
-                            new VarianceAggregatorFactory("a0:agg", "f1", 
"sample", "float")
+                            new VarianceAggregatorFactory("a0", "f1", 
"sample", "float")
                         )
                         .setLimitSpec(
                             DefaultLimitSpec
                                 .builder()
                                 .orderBy(
                                     new OrderByColumnSpec(
-                                        "a0:agg",
+                                        "a0",
                                         OrderByColumnSpec.Direction.DESCENDING,
                                         StringComparators.NUMERIC
                                     )
@@ -498,7 +501,7 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                 new VarianceAggregatorFactory("a0:agg", "v0", "population", 
"double"),
                 new VarianceAggregatorFactory("a1:agg", "v0", "sample", 
"double"),
                 new VarianceAggregatorFactory("a2:agg", "v0", "sample", 
"double"),
-                new VarianceAggregatorFactory("a3:agg", "v0", "sample", 
"double")
+                new VarianceAggregatorFactory("a3", "v0", "sample", "double")
             )
             .postAggregators(
                 new StandardDeviationPostAggregator("a0", "a0:agg", 
"population"),
@@ -541,11 +544,11 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                       new VarianceAggregatorFactory("a0:agg", "d1", 
"population", "double"),
                       new VarianceAggregatorFactory("a1:agg", "d1", "sample", 
"double"),
                       new VarianceAggregatorFactory("a2:agg", "d1", "sample", 
"double"),
-                      new VarianceAggregatorFactory("a3:agg", "d1", "sample", 
"double"),
+                      new VarianceAggregatorFactory("a3", "d1", "sample", 
"double"),
                       new VarianceAggregatorFactory("a4:agg", "l1", 
"population", "long"),
                       new VarianceAggregatorFactory("a5:agg", "l1", "sample", 
"long"),
                       new VarianceAggregatorFactory("a6:agg", "l1", "sample", 
"long"),
-                      new VarianceAggregatorFactory("a7:agg", "l1", "sample", 
"long")
+                      new VarianceAggregatorFactory("a7", "l1", "sample", 
"long")
 
                   )
                   .postAggregators(
@@ -606,7 +609,7 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new VarianceAggregatorFactory("a3:agg", 
"d1", "sample", "double"),
+                                    new VarianceAggregatorFactory("a3", "d1", 
"sample", "double"),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
@@ -622,7 +625,7 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 ),
                                 new FilteredAggregatorFactory(
-                                    new VarianceAggregatorFactory("a7:agg", 
"l1", "sample", "long"),
+                                    new VarianceAggregatorFactory("a7", "l1", 
"sample", "long"),
                                     equality("dim1", "nonexistent", 
ColumnType.STRING)
                                 )
                             )
@@ -678,9 +681,9 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
                   .granularity(Granularities.ALL)
                   .aggregators(
                       ImmutableList.of(
-                          new VarianceAggregatorFactory("a0:agg", "var1", 
"sample", "variance"),
-                          new VarianceAggregatorFactory("a1:agg", "var1", 
"population", "variance"),
-                          new VarianceAggregatorFactory("a2:agg", "var1", 
"sample", "variance"),
+                          new VarianceAggregatorFactory("a0", "var1", 
"sample", "variance"),
+                          new VarianceAggregatorFactory("a1", "var1", 
"population", "variance"),
+                          new VarianceAggregatorFactory("a2", "var1", 
"sample", "variance"),
                           new VarianceAggregatorFactory("a3:agg", "var1", 
"sample", "variance"),
                           new VarianceAggregatorFactory("a4:agg", "var1", 
"population", "variance"),
                           new VarianceAggregatorFactory("a5:agg", "var1", 
"sample", "variance")
@@ -698,4 +701,28 @@ public class VarianceSqlAggregatorTest extends 
BaseCalciteQueryTest
         expectedResults
     );
   }
+
+  @Test
+  public void testOverWindow()
+  {
+    testBuilder()
+        .sql(
+            "select dim4, dim5, mod(m1, 3), var_pop(mod(m1, 3)) over 
(partition by dim4 order by dim5) c\n"
+            + "from numfoo\n"
+            + "group by dim4, dim5, mod(m1, 3)")
+        .queryContext(ImmutableMap.of(
+            PlannerContext.CTX_ENABLE_WINDOW_FNS, true,
+            QueryContexts.ENABLE_DEBUG, true,
+            QueryContexts.WINDOWING_STRICT_VALIDATION, false
+        ))
+        .expectedResults(ImmutableList.of(
+            new Object[]{"a", "aa", 1.0D, 0.0D},
+            new Object[]{"a", "ab", 2.0D, 0.25D},
+            new Object[]{"a", "ba", 0.0D, 0.6666666666666666D},
+            new Object[]{"b", "aa", 2.0D, 0.0D},
+            new Object[]{"b", "ab", 0.0D, 1.0D},
+            new Object[]{"b", "ad", 1.0D, 0.6666666666666666D}
+        ))
+        .run();
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to