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]