You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2020/07/25 20:13:27 UTC

[GitHub] [incubator-pinot] Jackie-Jiang commented on a change in pull request #5746: Fix code to correctly extract value of multi-value column from avro file

Jackie-Jiang commented on a change in pull request #5746:
URL: https://github.com/apache/incubator-pinot/pull/5746#discussion_r460436632



##########
File path: pinot-core/src/main/java/org/apache/pinot/core/data/recordtransformer/PinotDataType.java
##########
@@ -632,4 +721,22 @@ public static PinotDataType getPinotDataType(FieldSpec fieldSpec) {
             "Unsupported data type: " + dataType + " in field: " + fieldSpec.getName());
     }
   }
+
+  public static PinotDataType getSpecificMapDataTypeFromMap(Map<Object, Object> map) {
+    Iterator<Object> iterator = map.values().iterator();
+    Object obj = iterator.next();
+    if (obj instanceof Integer) {
+      return PinotDataType.INTEGER_MAP;
+    } else if (obj instanceof Long) {
+      return PinotDataType.LONG_MAP;
+    } else if (obj instanceof Float) {
+      return PinotDataType.FLOAT_MAP;
+    } else if (obj instanceof Double) {
+      return PinotDataType.DOUBLE_MAP;
+    } else if (obj instanceof String) {
+      return PinotDataType.STRING_MAP;
+    } else {
+      throw new IllegalStateException(String.format("'%s' isn't supported in the hash map.", obj.getClass()));

Review comment:
       How about nested Map? How about single-entry map with multi-valued value (e.g. `Object[]`)?

##########
File path: pinot-core/src/main/java/org/apache/pinot/core/data/recordtransformer/DataTypeTransformer.java
##########
@@ -56,6 +56,7 @@
     MULTI_VALUE_TYPE_MAP.put(Float.class, PinotDataType.FLOAT_ARRAY);
     MULTI_VALUE_TYPE_MAP.put(Double.class, PinotDataType.DOUBLE_ARRAY);
     MULTI_VALUE_TYPE_MAP.put(String.class, PinotDataType.STRING_ARRAY);
+    MULTI_VALUE_TYPE_MAP.put(HashMap.class, PinotDataType.MAP);

Review comment:
       `HashMap` is not good enough, should use `instanceof Map` instead




----------------------------------------------------------------
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@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org