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

    https://github.com/apache/carbondata/pull/2654#discussion_r214809720
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/ColumnPageWrapper.java
 ---
    @@ -58,26 +70,64 @@ public int fillSurrogateKey(int rowId, int chunkIndex, 
int[] outputSurrogateKey)
     
       @Override
       public int fillVector(ColumnVectorInfo[] vectorInfo, int chunkIndex) {
    -    throw new UnsupportedOperationException("internal error");
    +    ColumnVectorInfo columnVectorInfo = vectorInfo[chunkIndex];
    +    CarbonColumnVector vector = columnVectorInfo.vector;
    +    int offset = columnVectorInfo.offset;
    +    int vectorOffset = columnVectorInfo.vectorOffset;
    +    int len = offset + columnVectorInfo.size;
    +    for (int i = offset; i < len; i++) {
    +      fillRow(i, vector, vectorOffset++);
    +    }
    +    return chunkIndex + 1;
    +  }
    +
    +  /**
    +   * Fill the data to the vector
    +   *
    +   * @param rowId
    +   * @param vector
    +   * @param vectorRow
    +   */
    +  private void fillRow(int rowId, CarbonColumnVector vector, int 
vectorRow) {
    +    byte[] value = getChunkData(rowId);
    +    int length = value.length;
    +    DimensionDataVectorProcessor.putDataToVector(vector, value, vectorRow, 
length);
       }
     
       @Override
       public int fillVector(int[] filteredRowId, ColumnVectorInfo[] 
vectorInfo, int chunkIndex) {
    -    throw new UnsupportedOperationException("internal error");
    +    ColumnVectorInfo columnVectorInfo = vectorInfo[chunkIndex];
    +    CarbonColumnVector vector = columnVectorInfo.vector;
    +    int offset = columnVectorInfo.offset;
    +    int vectorOffset = columnVectorInfo.vectorOffset;
    +    int len = offset + columnVectorInfo.size;
    +    for (int i = offset; i < len; i++) {
    +      fillRow(filteredRowId[i], vector, vectorOffset++);
    +    }
    +    return chunkIndex + 1;
       }
     
       @Override public byte[] getChunkData(int rowId) {
    +    int rowIdCopy = rowId;
    --- End diff --
    
    Can u add comment why we need to store actual rowid, and please change the 
variable name 


---

Reply via email to