jihoonson commented on a change in pull request #8823: Add InputSource and 
InputFormat interfaces
URL: https://github.com/apache/incubator-druid/pull/8823#discussion_r344422306
 
 

 ##########
 File path: 
server/src/main/java/org/apache/druid/segment/indexing/DataSchema.java
 ##########
 @@ -115,83 +158,75 @@ static void validateDatasourceName(String dataSource)
     Preconditions.checkArgument(!dataSource.contains("/"), "dataSource cannot 
contain the '/' character.");
   }
 
+  private static DimensionsSpec computeDimensionsSpec(
+      TimestampSpec timestampSpec,
+      DimensionsSpec dimensionsSpec,
+      AggregatorFactory[] aggregators
+  )
+  {
+    final Set<String> dimensionExclusions = new HashSet<>();
+
+    final String timestampColumn = timestampSpec.getTimestampColumn();
+    if (!(dimensionsSpec.hasCustomDimensions() && 
dimensionsSpec.getDimensionNames().contains(timestampColumn))) {
+      dimensionExclusions.add(timestampColumn);
+    }
+
+    for (AggregatorFactory aggregator : aggregators) {
+      dimensionExclusions.addAll(aggregator.requiredFields());
+      dimensionExclusions.add(aggregator.getName());
+    }
+
+    final Set<String> metSet = 
Arrays.stream(aggregators).map(AggregatorFactory::getName).collect(Collectors.toSet());
+    final Set<String> dimSet = new 
HashSet<>(dimensionsSpec.getDimensionNames());
+    final Set<String> overlap = Sets.intersection(metSet, dimSet);
+    if (!overlap.isEmpty()) {
+      throw new IAE(
+          "Cannot have overlapping dimensions and metrics of the same name. 
Please change the name of the metric. Overlap: %s",
+          overlap
+      );
+    }
+
+    return 
dimensionsSpec.withDimensionExclusions(Sets.difference(dimensionExclusions, 
dimSet));
+  }
+
   @JsonProperty
   public String getDataSource()
   {
     return dataSource;
   }
 
-  @JsonProperty("parser")
-  public Map<String, Object> getParserMap()
+  @Nullable
+  @JsonProperty
+  public TimestampSpec getTimestampSpec()
 
 Review comment:
   👍 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org
For additional commands, e-mail: commits-h...@druid.apache.org

Reply via email to