drcrallen closed pull request #6440: Fix avro parser issue while deserializing 
sketches 
URL: https://github.com/apache/incubator-druid/pull/6440
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/AvroFlattenerMaker.java
 
b/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/AvroFlattenerMaker.java
index a10b21d3742..72d7a221013 100644
--- 
a/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/AvroFlattenerMaker.java
+++ 
b/extensions-core/avro-extensions/src/main/java/org/apache/druid/data/input/avro/AvroFlattenerMaker.java
@@ -31,7 +31,6 @@
 import org.apache.druid.java.util.common.parsers.ObjectFlatteners;
 
 import java.nio.ByteBuffer;
-import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
@@ -105,7 +104,7 @@ private Object transformValue(final Object field)
       if (binaryAsString) {
         return StringUtils.fromUtf8(((ByteBuffer) field).array());
       } else {
-        return Arrays.toString(((ByteBuffer) field).array());
+        return ((ByteBuffer) field).array();
       }
     }
     if (field instanceof Utf8) {
diff --git 
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroHadoopInputRowParserTest.java
 
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroHadoopInputRowParserTest.java
index 72ddb413122..22f0bd78da0 100644
--- 
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroHadoopInputRowParserTest.java
+++ 
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroHadoopInputRowParserTest.java
@@ -83,7 +83,7 @@ private void testParse(GenericRecord record, boolean 
fromPigAvroStorage) throws
         AvroHadoopInputRowParser.class
     );
     InputRow inputRow = parser2.parseBatch(record).get(0);
-    assertInputRowCorrect(inputRow, DIMENSIONS);
+    assertInputRowCorrect(inputRow, DIMENSIONS, fromPigAvroStorage);
   }
 
 
diff --git 
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroStreamInputRowParserTest.java
 
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroStreamInputRowParserTest.java
index 6301880718d..a713101c3ba 100644
--- 
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroStreamInputRowParserTest.java
+++ 
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/AvroStreamInputRowParserTest.java
@@ -216,7 +216,7 @@ public void testParse() throws SchemaValidationException, 
IOException
 
     InputRow inputRow = 
parser2.parseBatch(ByteBuffer.wrap(out.toByteArray())).get(0);
 
-    assertInputRowCorrect(inputRow, DIMENSIONS);
+    assertInputRowCorrect(inputRow, DIMENSIONS, false);
   }
 
   @Test
@@ -257,10 +257,10 @@ public void testParseSchemaless() throws 
SchemaValidationException, IOException
 
     InputRow inputRow = 
parser2.parseBatch(ByteBuffer.wrap(out.toByteArray())).get(0);
 
-    assertInputRowCorrect(inputRow, DIMENSIONS_SCHEMALESS);
+    assertInputRowCorrect(inputRow, DIMENSIONS_SCHEMALESS, false);
   }
 
-  public static void assertInputRowCorrect(InputRow inputRow, List<String> 
expectedDimensions)
+  public static void assertInputRowCorrect(InputRow inputRow, List<String> 
expectedDimensions, boolean isFromPigAvro)
   {
     assertEquals(expectedDimensions, inputRow.getDimensions());
     assertEquals(1543698L, inputRow.getTimestampFromEpoch());
@@ -307,10 +307,12 @@ public Integer apply(@Nullable String input)
     );
     assertEquals(Collections.singletonList(SOME_UNION_VALUE), 
inputRow.getDimension("someUnion"));
     assertEquals(Collections.emptyList(), inputRow.getDimension("someNull"));
-    assertEquals(Collections.singletonList(String.valueOf(SOME_FIXED_VALUE)), 
inputRow.getDimension("someFixed"));
+    if (isFromPigAvro) {
+      assertEquals(String.valueOf(SOME_FIXED_VALUE), Arrays.toString((byte[]) 
inputRow.getRaw("someFixed")));
+    }
     assertEquals(
-        Collections.singletonList(Arrays.toString(SOME_BYTES_VALUE.array())),
-        inputRow.getDimension("someBytes")
+        Arrays.toString(SOME_BYTES_VALUE.array()),
+        Arrays.toString((byte[]) (inputRow.getRaw("someBytes")))
     );
     assertEquals(Collections.singletonList(String.valueOf(MyEnum.ENUM1)), 
inputRow.getDimension("someEnum"));
     assertEquals(Collections.singletonList(String.valueOf(SOME_RECORD_VALUE)), 
inputRow.getDimension("someRecord"));


 

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


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to