Repository: carbondata
Updated Branches:
  refs/heads/master ab11a484e -> cc4bc8100


[CARBONDATA-2133] Fixed Exception displays after performing select query on 
newly added Boolean Type

Problem : In Restructure util and RestructureBasedVectorResultCollector to get 
the default value of a measure type the case for boolean data type was
missing,and in DataTypeUtil to store default value in bytes case of boolean 
data type was missing

Solution: Add the Boolean data type case

This closes #1934


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

Branch: refs/heads/master
Commit: cc4bc810005003130f66d8021a06bbc8e3f87bbd
Parents: ab11a48
Author: anubhav100 <anubhav.ta...@knoldus.in>
Authored: Tue Feb 6 13:33:39 2018 +0530
Committer: manishgupta88 <tomanishgupt...@gmail.com>
Committed: Thu Feb 22 11:50:30 2018 +0530

----------------------------------------------------------------------
 .../RestructureBasedVectorResultCollector.java  |  5 +++--
 .../scan/executor/util/RestructureUtil.java     |  8 ++++++-
 .../AlterTableValidationTestCase.scala          | 22 +++++++++++++++++++-
 3 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/cc4bc810/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java
index 1e29e98..0f1b9f9 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java
@@ -88,6 +88,7 @@ public class RestructureBasedVectorResultCollector extends 
DictionaryBasedVector
 
   /**
    * Gets the default value for each CarbonMeasure
+   *
    * @param carbonMeasure
    * @return
    */
@@ -96,8 +97,6 @@ public class RestructureBasedVectorResultCollector extends 
DictionaryBasedVector
         carbonMeasure.getDefaultValue());
   }
 
-
-
   @Override public List<Object[]> collectData(AbstractScannedResult 
scannedResult, int batchSize) {
     throw new UnsupportedOperationException("collectData is not supported 
here");
   }
@@ -239,6 +238,8 @@ public class RestructureBasedVectorResultCollector extends 
DictionaryBasedVector
           } else if (DataTypes.isDecimal(dataType)) {
             vector.putDecimals(columnVectorInfo.vectorOffset, 
columnVectorInfo.size,
                 ((Decimal) defaultValue).toJavaBigDecimal(), 
measure.getPrecision());
+          } else if (dataType == DataTypes.BOOLEAN) {
+            vector.putBoolean(columnVectorInfo.vectorOffset, (Boolean) 
defaultValue);
           } else {
             vector.putDoubles(columnVectorInfo.vectorOffset, 
columnVectorInfo.size,
                 (double) defaultValue);

http://git-wip-us.apache.org/repos/asf/carbondata/blob/cc4bc810/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
index 288aea7..6500dd7 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
@@ -295,6 +295,9 @@ public class RestructureUtil {
       } else if (dataType == DataTypes.INT) {
         value = new String(defaultValue, 
Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET));
         measureDefaultValue = Integer.parseInt(value);
+      } else if (dataType == DataTypes.BOOLEAN) {
+        value = new String(defaultValue, 
Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET));
+        measureDefaultValue = Boolean.valueOf(value);
       } else if (DataTypes.isDecimal(dataType)) {
         BigDecimal decimal = DataTypeUtil.byteToBigDecimal(defaultValue);
         if (columnSchema.getScale() > decimal.scale()) {
@@ -323,7 +326,7 @@ public class RestructureUtil {
       byte[] defaultValue) {
     Object measureDefaultValue = null;
     if (!isDefaultValueNull(defaultValue)) {
-      String value = null;
+      String value;
       DataType dataType = columnSchema.getDataType();
       if (dataType == DataTypes.SHORT) {
         value = new String(defaultValue, 
Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET));
@@ -334,6 +337,9 @@ public class RestructureUtil {
       } else if (dataType == DataTypes.LONG) {
         value = new String(defaultValue, 
Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET));
         measureDefaultValue = Long.parseLong(value);
+      } else if (dataType == DataTypes.BOOLEAN) {
+        value = new String(defaultValue, 
Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET));
+        measureDefaultValue = Boolean.valueOf(value);
       } else if (DataTypes.isDecimal(dataType)) {
         BigDecimal decimal = DataTypeUtil.byteToBigDecimal(defaultValue);
         if (columnSchema.getScale() > decimal.scale()) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/cc4bc810/integration/spark2/src/test/scala/org/apache/spark/carbondata/restructure/AlterTableValidationTestCase.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark2/src/test/scala/org/apache/spark/carbondata/restructure/AlterTableValidationTestCase.scala
 
b/integration/spark2/src/test/scala/org/apache/spark/carbondata/restructure/AlterTableValidationTestCase.scala
index 04f2a71..5957abe 100644
--- 
a/integration/spark2/src/test/scala/org/apache/spark/carbondata/restructure/AlterTableValidationTestCase.scala
+++ 
b/integration/spark2/src/test/scala/org/apache/spark/carbondata/restructure/AlterTableValidationTestCase.scala
@@ -40,6 +40,10 @@ class AlterTableValidationTestCase extends Spark2QueryTest 
with BeforeAndAfterAl
     sql("drop table if exists restructure_bad")
     sql("drop table if exists restructure_badnew")
     sql("drop table if exists allKeyCol")
+    sql("drop table if exists testalterwithboolean")
+    sql("drop table if exists testalterwithbooleanwithoutdefaultvalue")
+
+
     // clean data folder
     CarbonProperties.getInstance()
     sql(
@@ -566,7 +570,20 @@ class AlterTableValidationTestCase extends Spark2QueryTest 
with BeforeAndAfterAl
     sql("drop table if exists restructure1")
     sql("drop table if exists restructure")
   }
-
+test("test alter command for boolean data type with correct default measure 
value") {
+  sql("create table testalterwithboolean(id int,name string) stored by 
'carbondata' ")
+  sql("insert into testalterwithboolean values(1,'anubhav')  ")
+  sql(
+    "alter table testalterwithboolean add columns(booleanfield boolean) 
tblproperties('default.value.booleanfield'='true')")
+  checkAnswer(sql("select * from 
testalterwithboolean"),Seq(Row(1,"anubhav",true)))
+}
+  test("test alter command for boolean data type with out default measure 
value") {
+    sql("create table testalterwithbooleanwithoutdefaultvalue(id int,name 
string) stored by 'carbondata' ")
+    sql("insert into testalterwithbooleanwithoutdefaultvalue 
values(1,'anubhav')  ")
+    sql(
+      "alter table testalterwithbooleanwithoutdefaultvalue add 
columns(booleanfield boolean)")
+    checkAnswer(sql("select * from 
testalterwithbooleanwithoutdefaultvalue"),Seq(Row(1,"anubhav",null)))
+  }
   override def afterAll {
     sql("DROP TABLE IF EXISTS restructure")
     sql("drop table if exists table1")
@@ -580,5 +597,8 @@ class AlterTableValidationTestCase extends Spark2QueryTest 
with BeforeAndAfterAl
     sql("drop table if exists defaultSortColumnsWithAlter")
     sql("drop table if exists specifiedSortColumnsWithAlter")
     sql("drop table if exists allKeyCol")
+    sql("drop table if exists testalterwithboolean")
+    sql("drop table if exists testalterwithbooleanwithoutdefaultvalue")
+
   }
 }

Reply via email to