You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by gi...@apache.org on 2019/03/18 21:23:58 UTC

[incubator-druid] branch master updated: Fix flattening Avro Maps with Utf8 keys (#7258)

This is an automated email from the ASF dual-hosted git repository.

gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/master by this push:
     new b2a940a  Fix flattening Avro Maps with Utf8 keys (#7258)
b2a940a is described below

commit b2a940adddafa5d4762450daf7e166b2e9d6b1d7
Author: Christian Senet <ch...@hardis.fr>
AuthorDate: Mon Mar 18 22:23:53 2019 +0100

    Fix flattening Avro Maps with Utf8 keys (#7258)
    
    * #5884 Avro Maps can't be flattened in Kafka Indexing on master
    
    * correct typo and reduce code size
---
 .../apache/druid/data/input/avro/GenericAvroJsonProvider.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/GenericAvroJsonProvider.java b/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/GenericAvroJsonProvider.java
index 4beb757..bfb6e22 100644
--- a/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/GenericAvroJsonProvider.java
+++ b/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/GenericAvroJsonProvider.java
@@ -23,6 +23,7 @@ import com.jayway.jsonpath.InvalidJsonException;
 import com.jayway.jsonpath.spi.json.JsonProvider;
 import org.apache.avro.Schema;
 import org.apache.avro.generic.GenericRecord;
+import org.apache.avro.util.Utf8;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -146,7 +147,13 @@ public class GenericAvroJsonProvider implements JsonProvider
     } else if (o instanceof GenericRecord) {
       return ((GenericRecord) o).get(s);
     } else if (o instanceof Map) {
-      return ((Map) o).get(s);
+      final Map theMap = (Map) o;
+      if (theMap.containsKey(s)) {
+        return theMap.get(s);
+      } else {
+        final Utf8 utf8Key = new Utf8(s);
+        return theMap.get(utf8Key);
+      }
     } else {
       throw new UnsupportedOperationException(o.getClass().getName());
     }


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