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

    https://github.com/apache/carbondata/pull/2559#discussion_r205975748
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedResultCollector.java
 ---
    @@ -141,22 +141,50 @@ public 
DictionaryBasedResultCollector(BlockExecutionInfo blockExecutionInfos) {
           }
           fillMeasureData(scannedResult, row);
           if 
(scannedResult.complexParentIndexToQueryMap.toString().contains("StructQueryType"))
 {
    -        // If a : <b,c> and d : <e,f> are two struct and if a.b,a.c,d.e is 
given in the
    -        // projection list,then object array will contain a,null,d as 
result, because for a.b,
    -        // a will be filled and for a.c null will be placed.
    -        // Instead place null in the end of object array and send a,d,null 
as result.
    -        int count = 0;
    -        for (int j = 0; j < row.length; j++) {
    -          if (row[j] != null) row[count++] = row[j];
    +        boolean[] isComplexChildColumn = new 
boolean[queryDimensions.length + queryMeasures.length];
    --- End diff --
    
    Does it really need to create this array for each row? I feel it is one 
time array fill is enough


---

Reply via email to