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/07/13 11:33:14 UTC

carbondata git commit: [CARBONDATA-1306] Fixed carbondata crash after using short-int datatype

Repository: carbondata
Updated Branches:
  refs/heads/master 770e42dfc -> 52ab73097


[CARBONDATA-1306] Fixed carbondata crash after using short-int datatype

This closes #1171


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/52ab7309
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/52ab7309
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/52ab7309

Branch: refs/heads/master
Commit: 52ab730979509bb49dcf80ab7e0ffc1ab571bf9f
Parents: 770e42d
Author: Ravindra Pesala <ra...@gmail.com>
Authored: Thu Jul 13 16:42:08 2017 +0530
Committer: jackylk <ja...@huawei.com>
Committed: Thu Jul 13 19:32:58 2017 +0800

----------------------------------------------------------------------
 .../carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java | 2 +-
 .../org/apache/carbondata/core/metadata/datatype/DataType.java    | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/52ab7309/core/src/main/java/org/apache/carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java b/core/src/main/java/org/apache/carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java
index 9f71768..e76c2c4 100644
--- a/core/src/main/java/org/apache/carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java
+++ b/core/src/main/java/org/apache/carbondata/core/datastore/page/UnsafeFixLengthColumnPage.java
@@ -358,7 +358,7 @@ public class UnsafeFixLengthColumnPage extends ColumnPage {
   public byte[] compress(Compressor compressor) throws MemoryException, IOException {
     if (UnsafeMemoryManager.isOffHeap()) {
       // use raw compression and copy to byte[]
-      int inputSize = pageSize << dataType.getSizeBits();
+      int inputSize = pageSize * dataType.getSizeInBytes();
       int compressedMaxSize = compressor.maxCompressedLength(inputSize);
       MemoryBlock compressed = UnsafeMemoryManager.allocateMemoryWithRetry(compressedMaxSize);
       long outSize = compressor.rawCompress(baseOffset, inputSize, compressed.getBaseOffset());

http://git-wip-us.apache.org/repos/asf/carbondata/blob/52ab7309/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
index 52e63dc..9371451 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
@@ -69,6 +69,9 @@ public enum DataType {
   }
 
   public int getSizeBits() {
+    if (this == SHORT_INT) {
+      throw new UnsupportedOperationException("Should not call this from datatype " + SHORT_INT);
+    }
     return (int) (Math.log(getSizeInBytes()) / Math.log(2));
   }
 }