You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by cw...@apache.org on 2019/07/24 02:25:57 UTC
[incubator-druid] 04/14: discard filter when processing
subtotalsSpec (#7827)
This is an automated email from the ASF dual-hosted git repository.
cwylie pushed a commit to branch 0.15.1-incubating
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
commit 70ef2daf29b9338ad4a77af7fc131e75c03c151e
Author: Himanshu <g....@gmail.com>
AuthorDate: Tue Jun 4 10:59:22 2019 -0700
discard filter when processing subtotalsSpec (#7827)
---
.../query/groupby/strategy/GroupByStrategyV2.java | 2 +-
.../query/groupby/GroupByQueryRunnerTest.java | 90 ++++++++++++++++++++++
2 files changed, 91 insertions(+), 1 deletion(-)
diff --git a/processing/src/main/java/org/apache/druid/query/groupby/strategy/GroupByStrategyV2.java b/processing/src/main/java/org/apache/druid/query/groupby/strategy/GroupByStrategyV2.java
index 434a828..1f30bb5 100644
--- a/processing/src/main/java/org/apache/druid/query/groupby/strategy/GroupByStrategyV2.java
+++ b/processing/src/main/java/org/apache/druid/query/groupby/strategy/GroupByStrategyV2.java
@@ -389,7 +389,7 @@ public class GroupByStrategyV2 implements GroupByStrategy
final List<Closeable> closeOnExit = new ArrayList<>();
try {
- GroupByQuery queryWithoutSubtotalsSpec = query.withSubtotalsSpec(null);
+ GroupByQuery queryWithoutSubtotalsSpec = query.withSubtotalsSpec(null).withDimFilter(null);
List<List<String>> subtotals = query.getSubtotalsSpec();
Supplier<Grouper> grouperSupplier = Suppliers.memoize(
diff --git a/processing/src/test/java/org/apache/druid/query/groupby/GroupByQueryRunnerTest.java b/processing/src/test/java/org/apache/druid/query/groupby/GroupByQueryRunnerTest.java
index cc25be4..b2815cf 100644
--- a/processing/src/test/java/org/apache/druid/query/groupby/GroupByQueryRunnerTest.java
+++ b/processing/src/test/java/org/apache/druid/query/groupby/GroupByQueryRunnerTest.java
@@ -6785,6 +6785,96 @@ public class GroupByQueryRunnerTest
TestHelper.assertExpectedObjects(expectedResults, results, "subtotal");
}
+ // https://github.com/apache/incubator-druid/issues/7820
+ @Test
+ public void testGroupByWithSubtotalsSpecWithRenamedDimensionAndFilter()
+ {
+ if (!config.getDefaultStrategy().equals(GroupByStrategySelector.STRATEGY_V2)) {
+ return;
+ }
+
+ GroupByQuery query = GroupByQuery
+ .builder()
+ .setDataSource(QueryRunnerTestHelper.dataSource)
+ .setQuerySegmentSpec(QueryRunnerTestHelper.firstToThird)
+ .setVirtualColumns(new ExpressionVirtualColumn("alias", "quality", ValueType.STRING, TestExprMacroTable.INSTANCE))
+ .setDimensions(Lists.newArrayList(
+ new DefaultDimensionSpec("quality", "quality"),
+ new DefaultDimensionSpec("market", "market"),
+ new DefaultDimensionSpec("alias", "alias_renamed")
+ ))
+ .setAggregatorSpecs(
+ Arrays.asList(
+ QueryRunnerTestHelper.rowsCount,
+ new LongSumAggregatorFactory("idx", "index"),
+ new FloatSumAggregatorFactory("idxFloat", "indexFloat"),
+ new DoubleSumAggregatorFactory("idxDouble", "index")
+ )
+ )
+ .setDimFilter(new SelectorDimFilter("alias", "automotive", null))
+ .setGranularity(QueryRunnerTestHelper.dayGran)
+ .setSubtotalsSpec(ImmutableList.of(
+ ImmutableList.of("alias_renamed"),
+ ImmutableList.of()
+ ))
+ .build();
+
+ List<Row> expectedResults = Arrays.asList(
+ GroupByQueryRunnerTestHelper.createExpectedRow(
+ "2011-04-01",
+ "alias_renamed",
+ "automotive",
+ "rows",
+ 1L,
+ "idx",
+ 135L,
+ "idxFloat",
+ 135.88510131835938f,
+ "idxDouble",
+ 135.88510131835938d
+ ),
+ GroupByQueryRunnerTestHelper.createExpectedRow(
+ "2011-04-02",
+ "alias_renamed",
+ "automotive",
+ "rows",
+ 1L,
+ "idx",
+ 147L,
+ "idxFloat",
+ 147.42593f,
+ "idxDouble",
+ 147.42593d
+ ),
+
+ GroupByQueryRunnerTestHelper.createExpectedRow(
+ "2011-04-01T00:00:00.000Z",
+ "rows",
+ 1L,
+ "idx",
+ 135L,
+ "idxFloat",
+ 135.88510131835938f,
+ "idxDouble",
+ 135.88510131835938d
+ ),
+ GroupByQueryRunnerTestHelper.createExpectedRow(
+ "2011-04-02T00:00:00.000Z",
+ "rows",
+ 1L,
+ "idx",
+ 147L,
+ "idxFloat",
+ 147.42593f,
+ "idxDouble",
+ 147.42593d
+ )
+ );
+
+ Iterable<Row> results = GroupByQueryRunnerTestHelper.runQuery(factory, runner, query);
+ TestHelper.assertExpectedObjects(expectedResults, results, "subtotal");
+ }
+
@Test
public void testGroupByWithSubtotalsSpecWithLongDimensionColumn()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org