From 6b908a506136614db07b65e98ed26fc34f95a723 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Fri, 6 Nov 2015 17:57:41 -0800 Subject: [PATCH] DataSchema: Exclude metric names from dimension list. Otherwise we could end up with a metric and a dimension with the same column name. --- .../src/main/java/io/druid/segment/indexing/DataSchema.java | 1 + .../test/java/io/druid/segment/indexing/DataSchemaTest.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) 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 b628424b7f59..800c8cc6b4e9 100644 --- a/server/src/main/java/io/druid/segment/indexing/DataSchema.java +++ b/server/src/main/java/io/druid/segment/indexing/DataSchema.java @@ -101,6 +101,7 @@ public InputRowParser getParser() final Set dimensionExclusions = Sets.newHashSet(); for (AggregatorFactory aggregator : aggregators) { dimensionExclusions.addAll(aggregator.requiredFields()); + dimensionExclusions.add(aggregator.getName()); } if (inputRowParser.getParseSpec() != null) { diff --git a/server/src/test/java/io/druid/segment/indexing/DataSchemaTest.java b/server/src/test/java/io/druid/segment/indexing/DataSchemaTest.java index 9059a7928d9c..4b2d534d4de4 100644 --- a/server/src/test/java/io/druid/segment/indexing/DataSchemaTest.java +++ b/server/src/test/java/io/druid/segment/indexing/DataSchemaTest.java @@ -72,7 +72,7 @@ public void testDefaultExclusions() throws Exception ); Assert.assertEquals( - ImmutableSet.of("time", "col1", "col2"), + ImmutableSet.of("time", "col1", "col2", "metric1", "metric2"), schema.getParser().getParseSpec().getDimensionsSpec().getDimensionExclusions() ); } @@ -101,7 +101,7 @@ public void testExplicitInclude() throws Exception ); Assert.assertEquals( - ImmutableSet.of("dimC", "col1"), + ImmutableSet.of("dimC", "col1", "metric1", "metric2"), schema.getParser().getParseSpec().getDimensionsSpec().getDimensionExclusions() ); }