You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ja...@apache.org on 2017/05/02 14:13:14 UTC
[50/50] [abbrv] incubator-carbondata git commit: fix issue of rebase
fix issue of rebase
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/62d1cb37
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/62d1cb37
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/62d1cb37
Branch: refs/heads/12-dev
Commit: 62d1cb37b75352d18d9291d9bd1c6bb03007490c
Parents: ab85ae6
Author: QiangCai <qi...@qq.com>
Authored: Tue May 2 14:58:16 2017 +0800
Committer: QiangCai <qi...@qq.com>
Committed: Tue May 2 19:19:16 2017 +0800
----------------------------------------------------------------------
.../impl/VariableLengthDimensionDataChunk.java | 3 +-
...feVariableLengthDimensionDataChunkStore.java | 32 +++++++++++++++++++-
.../apache/carbondata/core/util/ByteUtil.java | 4 +++
3 files changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/62d1cb37/core/src/main/java/org/apache/carbondata/core/datastore/chunk/impl/VariableLengthDimensionDataChunk.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/chunk/impl/VariableLengthDimensionDataChunk.java b/core/src/main/java/org/apache/carbondata/core/datastore/chunk/impl/VariableLengthDimensionDataChunk.java
index 0ac5655..6c47bf5 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/chunk/impl/VariableLengthDimensionDataChunk.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/chunk/impl/VariableLengthDimensionDataChunk.java
@@ -18,8 +18,7 @@ package org.apache.carbondata.core.datastore.chunk.impl;
import org.apache.carbondata.core.constants.CarbonCommonConstants;
import org.apache.carbondata.core.datastore.chunk.store.DimensionChunkStoreFactory;
-import org.apache.carbondata.core.datastore.chunk.store.DimensionChunkStoreFactory
- .DimensionStoreType;
+import org.apache.carbondata.core.datastore.chunk.store.DimensionChunkStoreFactory.DimensionStoreType;
import org.apache.carbondata.core.scan.executor.infos.KeyStructureInfo;
import org.apache.carbondata.core.scan.result.vector.CarbonColumnVector;
import org.apache.carbondata.core.scan.result.vector.ColumnVectorInfo;
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/62d1cb37/core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/impl/safe/SafeVariableLengthDimensionDataChunkStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/impl/safe/SafeVariableLengthDimensionDataChunkStore.java b/core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/impl/safe/SafeVariableLengthDimensionDataChunkStore.java
index bb0edea..a65d745 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/impl/safe/SafeVariableLengthDimensionDataChunkStore.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/impl/safe/SafeVariableLengthDimensionDataChunkStore.java
@@ -23,6 +23,17 @@ import org.apache.carbondata.core.constants.CarbonCommonConstants;
import org.apache.carbondata.core.scan.result.vector.CarbonColumnVector;
import org.apache.carbondata.core.util.ByteUtil;
+import org.apache.spark.sql.types.BooleanType;
+import org.apache.spark.sql.types.DataType;
+import org.apache.spark.sql.types.Decimal;
+import org.apache.spark.sql.types.DecimalType;
+import org.apache.spark.sql.types.DoubleType;
+import org.apache.spark.sql.types.FloatType;
+import org.apache.spark.sql.types.IntegerType;
+import org.apache.spark.sql.types.LongType;
+import org.apache.spark.sql.types.ShortType;
+import org.apache.spark.sql.types.StringType;
+
/**
* Below class is responsible to store variable length dimension data chunk in
* memory Memory occupied can be on heap or offheap using unsafe interface
@@ -137,7 +148,26 @@ public class SafeVariableLengthDimensionDataChunkStore extends SafeAbsractDimens
CarbonCommonConstants.MEMBER_DEFAULT_VAL_ARRAY.length, data, currentDataOffset, length)) {
vector.putNull(vectorRow);
} else {
- vector.putBytes(vectorRow, currentDataOffset, length, data);
+ DataType dt = vector.getType();
+ if (dt instanceof StringType) {
+ vector.putBytes(vectorRow, currentDataOffset, length, data);
+ } else if (dt instanceof BooleanType) {
+ vector.putBoolean(vectorRow, ByteUtil.toBoolean(data[currentDataOffset]));
+ } else if (dt instanceof ShortType) {
+ vector.putShort(vectorRow, ByteUtil.toShort(data, currentDataOffset, length));
+ } else if (dt instanceof IntegerType) {
+ vector.putInt(vectorRow, ByteUtil.toInt(data, currentDataOffset, length));
+ } else if (dt instanceof FloatType) {
+ vector.putFloat(vectorRow, ByteUtil.toFloat(data, currentDataOffset));
+ } else if (dt instanceof DoubleType) {
+ vector.putDouble(vectorRow, ByteUtil.toDouble(data, currentDataOffset));
+ } else if (dt instanceof LongType) {
+ vector.putLong(vectorRow, ByteUtil.toLong(data, currentDataOffset, length));
+ } else if (dt instanceof DecimalType) {
+ vector.putDecimal(vectorRow,
+ Decimal.apply(ByteUtil.toBigDecimal(data, currentDataOffset, length)),
+ DecimalType.MAX_PRECISION());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/62d1cb37/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
index 70ddec9..f4ab982 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
@@ -397,6 +397,10 @@ public final class ByteUtil {
return b[0] != (byte) 0;
}
+ public static boolean toBoolean(final byte b) {
+ return b != (byte) 0;
+ }
+
/**
* short => byte[]
*