Github user manishgupta88 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2654#discussion_r214055654
--- Diff:
processing/src/main/java/org/apache/carbondata/processing/store/CarbonFactDataHandlerModel.java
---
@@ -320,12 +325,22 @@ public static CarbonFactDataHandlerModel
getCarbonFactDataHandlerModel(CarbonLoa
List<CarbonDimension> allDimensions = carbonTable.getDimensions();
int dictDimCount = allDimensions.size() -
segmentProperties.getNumberOfNoDictionaryDimension()
- segmentProperties.getComplexDimensions().size();
+ CarbonColumn[] noDicAndComplexColumns =
+ new
CarbonColumn[segmentProperties.getNumberOfNoDictionaryDimension() +
segmentProperties
+ .getComplexDimensions().size()];
+ int noDic = 0;
+ int noDicAndComp = 0;
for (CarbonDimension dim : allDimensions) {
if (!dim.isComplex() && !dim.hasEncoding(Encoding.DICTIONARY) &&
dim.getDataType() == DataTypes.VARCHAR) {
// ordinal is set in
CarbonTable.fillDimensionsAndMeasuresForTables()
varcharDimIdxInNoDict.add(dim.getOrdinal() - dictDimCount);
}
+ if (!dim.hasEncoding(Encoding.DICTIONARY) || dim.isComplex() || null
!= dim
+ .getComplexParentDimension()) {
+ noDicAndComplexColumns[noDicAndComp++] =
--- End diff --
Modify the if loop check to check only for dictionary encoding
if (!dim.hasEncoding(Encoding.DICTIONARY))
---