Github user ravipesala commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2396#discussion_r197488819
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollector.java
 ---
    @@ -136,28 +189,81 @@ void fillDimensionData(BlockletScannedResult 
scannedResult, int[] surrogateResul
             }
           } else if (complexDataTypeArray[i]) {
             // Complex Type With No Dictionary Encoding.
    -        row[order[i]] = 
comlexDimensionInfoMap.get(queryDimensions[i].getDimension().getOrdinal())
    -            
.getDataBasedOnDataType(ByteBuffer.wrap(complexTypeKeyArray[complexTypeColumnIndex++]));
    +        if (queryDimensions[i].getDimension().getParentOrdinal() != -1) {
    +          if (mergedComplexDimensionColumns
    +              
.get(queryDimensions[i].getDimension().getParentOrdinal()).size() > 1) {
    +            fillRowForComplexColumn(complexDimensionInfoMap, row, i);
    +          } else {
    +            row[order[i]] =
    +                
complexDimensionInfoMap.get(queryDimensions[i].getDimension().getParentOrdinal())
    +                    .getDataBasedOnColumn(
    +                        
ByteBuffer.wrap(complexTypeKeyArray[complexTypeColumnIndex++]),
    +                        
queryDimensions[i].getDimension().getComplexParentDimension(),
    +                        queryDimensions[i].getDimension());
    +          }
    +        } else {
    +          row[order[i]] =
    +              
complexDimensionInfoMap.get(queryDimensions[i].getDimension().getOrdinal())
    +                  .getDataBasedOnDataType(
    +                      
ByteBuffer.wrap(complexTypeKeyArray[complexTypeColumnIndex++]));
    +        }
           } else {
    -        row[order[i]] = 
DataTypeUtil.getDataBasedOnDataTypeForNoDictionaryColumn(
    -            noDictionaryKeys[noDictionaryColumnIndex++],
    -            queryDimensions[i].getDimension().getDataType());
    +        if (queryDimensions[i].getDimension().getParentOrdinal() != -1) {
    --- End diff --
    
    Move this to new method and add a comment


---

Reply via email to