From 1ab266277288bed015e0673fa5e58f1bc7d43b2d Mon Sep 17 00:00:00 2001 From: fjy Date: Mon, 15 Sep 2014 16:52:07 -0700 Subject: [PATCH] have better dimension exclusions --- pom.xml | 2 +- .../io/druid/segment/indexing/DataSchema.java | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 80f3fad6004..50cb60eab37 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ UTF-8 0.26.6 2.6.0 - 0.2.9 + 0.2.8 diff --git a/server/src/main/java/io/druid/segment/indexing/DataSchema.java b/server/src/main/java/io/druid/segment/indexing/DataSchema.java index b0b4d074a8d..63e2377412b 100644 --- a/server/src/main/java/io/druid/segment/indexing/DataSchema.java +++ b/server/src/main/java/io/druid/segment/indexing/DataSchema.java @@ -21,11 +21,14 @@ package io.druid.segment.indexing; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.api.client.util.Sets; import io.druid.data.input.impl.InputRowParser; import io.druid.query.aggregation.AggregatorFactory; import io.druid.segment.indexing.granularity.GranularitySpec; import io.druid.segment.indexing.granularity.UniformGranularitySpec; +import java.util.Set; + /** */ public class DataSchema @@ -44,7 +47,28 @@ public class DataSchema ) { this.dataSource = dataSource; - this.parser = parser; + + final Set dimensionExclusions = Sets.newHashSet(); + if (parser != null && parser.getParseSpec() != null && parser.getParseSpec().getTimestampSpec() != null) { + dimensionExclusions.add(parser.getParseSpec().getTimestampSpec().getTimestampColumn()); + for (AggregatorFactory aggregator : aggregators) { + dimensionExclusions.add(aggregator.getName()); + } + } + + if (parser != null && parser.getParseSpec() != null && parser.getParseSpec().getDimensionsSpec() != null) { + this.parser = parser.withParseSpec( + parser.getParseSpec() + .withDimensionsSpec( + parser.getParseSpec() + .getDimensionsSpec() + .withDimensionExclusions(dimensionExclusions) + ) + ); + } else { + this.parser = parser; + } + this.aggregators = aggregators; this.granularitySpec = granularitySpec == null ? new UniformGranularitySpec(null, null, null, null)