You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ku...@apache.org on 2018/12/24 08:00:01 UTC

carbondata git commit: [CARBONDATA-3192] Fix for compaction compatibilty issue

Repository: carbondata
Updated Branches:
  refs/heads/master 10bc5c2ec -> f4c1c672b


[CARBONDATA-3192] Fix for compaction compatibilty issue

Problem: Table Created, Loaded and Altered(Column added) in 1.5.1 version and Refreshed, Altered(Added Column dropped) ,
 Loaded and Compacted with Varchar Columns in new version giving error.

Solution: Corrected the Varchar Dimension index calculation by calculating it based on the columns
 which have been deleted (invisibleColumns). Hence giving the correct ordinals after deletion.

This closes #3016


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

Branch: refs/heads/master
Commit: f4c1c672be19201c2c98fe84f6143f1323a60bbf
Parents: 10bc5c2
Author: manishnalla1994 <ma...@gmail.com>
Authored: Fri Dec 21 19:11:46 2018 +0530
Committer: kumarvishal09 <ku...@gmail.com>
Committed: Mon Dec 24 13:29:28 2018 +0530

----------------------------------------------------------------------
 .../processing/store/CarbonFactDataHandlerModel.java        | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/f4c1c672/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java
----------------------------------------------------------------------
diff --git a/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java b/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java
index e759c02..c60da45 100644
--- a/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java
+++ b/processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java
@@ -314,18 +314,23 @@ public class CarbonFactDataHandlerModel {
 
     // for dynamic page size in write step if varchar columns exist
     List<Integer> varcharDimIdxInNoDict = new ArrayList<>();
-    List<CarbonDimension> allDimensions = carbonTable.getDimensions();
+    List<CarbonDimension> allDimensions = carbonTable.getAllDimensions();
     int dictDimCount = allDimensions.size() - segmentProperties.getNumberOfNoDictionaryDimension()
             - segmentProperties.getComplexDimensions().size();
     CarbonColumn[] noDicAndComplexColumns =
         new CarbonColumn[segmentProperties.getNumberOfNoDictionaryDimension() + segmentProperties
             .getComplexDimensions().size()];
     int noDicAndComp = 0;
+    int invisibleCount = 0;
     for (CarbonDimension dim : allDimensions) {
+      if (dim.isInvisible()) {
+        invisibleCount++;
+        continue;
+      }
       if (!dim.isComplex() && !dim.hasEncoding(Encoding.DICTIONARY) &&
           dim.getDataType() == DataTypes.VARCHAR) {
         // ordinal is set in CarbonTable.fillDimensionsAndMeasuresForTables()
-        varcharDimIdxInNoDict.add(dim.getOrdinal() - dictDimCount);
+        varcharDimIdxInNoDict.add(dim.getOrdinal() - dictDimCount - invisibleCount);
       }
       if (!dim.hasEncoding(Encoding.DICTIONARY)) {
         noDicAndComplexColumns[noDicAndComp++] =