You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by GitBox <gi...@apache.org> on 2020/08/18 19:45:04 UTC

[GitHub] [druid] clintropolis commented on a change in pull request #10277: make dimension column extensible with COMPLEX type

clintropolis commented on a change in pull request #10277:
URL: https://github.com/apache/druid/pull/10277#discussion_r472433647



##########
File path: processing/src/main/java/org/apache/druid/segment/column/ColumnCapabilities.java
##########
@@ -37,6 +37,12 @@
    */
   ValueType getType();
 
+  /**
+   *
+   * If ValueType is COMPLEX, then the typeName associated with it.
+   */
+  String getTypeName();

Review comment:
       could this be `getComplexTypeName` to tie it more strongly to complex types? It would also match the aggregator factory changes in #9638 which I've started working on again recently. If you recall this discussion https://github.com/apache/druid/pull/9638#discussion_r410995227, I decided to go ahead and rename it to `getComplexTypeName` there because there are already breaking changes with the new abstract methods, so might as well make it intuitive.

##########
File path: processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndex.java
##########
@@ -314,7 +315,12 @@ protected IncrementalIndex(
     for (DimensionSchema dimSchema : dimensionsSpec.getDimensions()) {
       ValueType type = TYPE_MAP.get(dimSchema.getValueType());
       String dimName = dimSchema.getName();
-      ColumnCapabilitiesImpl capabilities = makeDefaultCapabilitiesFromValueType(type);
+
+      // Note: Things might be simpler if DimensionSchema had a method "getColumnCapabilities()" which could return
+      // type specific capabilities by itself. However, for various reasons, DimensionSchema currently lives in druid-core
+      // while ColumnCapabilities lives in druid-processing which makes that approach difficult.
+      ColumnCapabilitiesImpl capabilities = makeDefaultCapabilitiesFromValueType(type, dimSchema.getTypeName());

Review comment:
       Apologies for the conflicts here, I made some semi disruptive changes to push `ColumnCapabilities` into the `DimensionIndexer` implementations so they can be more accurate. I think the changes should still be workable with your addition of `DimensionHandlerProvider`, just the dimension indexer it provides will need to provide the complex column capabilities.




----------------------------------------------------------------
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:
users@infra.apache.org



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