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[]
    *