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

jlli pushed a commit to branch byte-default-value
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git


The following commit(s) were added to refs/heads/byte-default-value by this 
push:
     new 714e785  Support default value for Byte column
714e785 is described below

commit 714e785cc7537b83a6e81ea136e7493bb334b694
Author: jackjlli <[email protected]>
AuthorDate: Wed Sep 4 14:15:43 2019 -0700

    Support default value for Byte column
---
 .../test/java/org/apache/pinot/common/data/FieldSpecTest.java | 11 +++++++++++
 .../index/loader/defaultcolumn/BaseDefaultColumnHandler.java  |  3 ++-
 pinot-core/src/test/resources/data/newColumnsSchema3.json     |  5 +++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git 
a/pinot-common/src/test/java/org/apache/pinot/common/data/FieldSpecTest.java 
b/pinot-common/src/test/java/org/apache/pinot/common/data/FieldSpecTest.java
index 47af288..3e40525 100644
--- a/pinot-common/src/test/java/org/apache/pinot/common/data/FieldSpecTest.java
+++ b/pinot-common/src/test/java/org/apache/pinot/common/data/FieldSpecTest.java
@@ -117,6 +117,17 @@ public class FieldSpecTest {
     Assert.assertEquals(fieldSpec1.toString(), fieldSpec2.toString());
     Assert.assertEquals(fieldSpec1.hashCode(), fieldSpec2.hashCode());
     Assert.assertEquals(fieldSpec1.getDefaultNullValue(), 1L);
+
+    // Metric field with default null value for byte column.
+    fieldSpec1 = new MetricFieldSpec();
+    fieldSpec1.setName("btyeMetric");
+    fieldSpec1.setDataType(BYTES);
+    fieldSpec1.setDefaultNullValue(new byte[]{0x10, 0x20});
+    fieldSpec2 = new MetricFieldSpec("btyeMetric", BYTES, new byte[]{0x10, 
0x20});
+    Assert.assertEquals(fieldSpec1, fieldSpec2);
+    Assert.assertEquals(fieldSpec1.toJsonObject(), fieldSpec2.toJsonObject());
+    Assert.assertEquals(fieldSpec1.hashCode(), fieldSpec2.hashCode());
+    Assert.assertEquals(fieldSpec1.getDefaultNullValue(), 
fieldSpec2.getDefaultNullValue());
   }
 
   /**
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/segment/index/loader/defaultcolumn/BaseDefaultColumnHandler.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/segment/index/loader/defaultcolumn/BaseDefaultColumnHandler.java
index d1e3bc0..dd8b745 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/segment/index/loader/defaultcolumn/BaseDefaultColumnHandler.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/segment/index/loader/defaultcolumn/BaseDefaultColumnHandler.java
@@ -31,6 +31,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.data.FieldSpec;
 import org.apache.pinot.common.data.Schema;
 import org.apache.pinot.common.utils.StringUtil;
+import org.apache.pinot.common.utils.primitive.ByteArray;
 import org.apache.pinot.core.segment.creator.ColumnIndexCreationInfo;
 import org.apache.pinot.core.segment.creator.ForwardIndexType;
 import org.apache.pinot.core.segment.creator.InvertedIndexType;
@@ -305,7 +306,7 @@ public abstract class BaseDefaultColumnHandler implements 
DefaultColumnHandler {
         break;
       case BYTES:
         Preconditions.checkState(defaultValue instanceof byte[]);
-        sortedArray = defaultValue;
+        sortedArray = new ByteArray[] {new ByteArray((byte[]) defaultValue)};
         break;
       default:
         throw new UnsupportedOperationException("Unsupported data type: " + 
dataType + " for column: " + column);
diff --git a/pinot-core/src/test/resources/data/newColumnsSchema3.json 
b/pinot-core/src/test/resources/data/newColumnsSchema3.json
index 1285d76..12c0356 100644
--- a/pinot-core/src/test/resources/data/newColumnsSchema3.json
+++ b/pinot-core/src/test/resources/data/newColumnsSchema3.json
@@ -16,6 +16,11 @@
     {
       "dataType": "DOUBLE",
       "name": "newDoubleMetric"
+    },
+    {
+      "dataType": "BYTES",
+      "defaultNullValue": "00000008000000ac0000",
+      "name": "newByteMetric"
     }
   ],
   "dimensionFieldSpecs": [


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

Reply via email to