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

    https://github.com/apache/carbondata/pull/2417#discussion_r198861716
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/datastore/chunk/store/ColumnPageWrapper.java
 ---
    @@ -17,45 +17,102 @@
     
     package org.apache.carbondata.core.datastore.chunk.store;
     
    +import java.nio.ByteBuffer;
    +import java.util.BitSet;
    +
    +import org.apache.carbondata.core.constants.CarbonCommonConstants;
    +import org.apache.carbondata.core.datastore.ColumnType;
    +import org.apache.carbondata.core.datastore.TableSpec;
     import org.apache.carbondata.core.datastore.chunk.DimensionColumnPage;
     import org.apache.carbondata.core.datastore.page.ColumnPage;
    +import 
org.apache.carbondata.core.keygenerator.directdictionary.DirectDictionaryGenerator;
    +import org.apache.carbondata.core.metadata.datatype.DataType;
    +import org.apache.carbondata.core.metadata.datatype.DataTypes;
     import org.apache.carbondata.core.scan.executor.infos.KeyStructureInfo;
    +import org.apache.carbondata.core.scan.result.vector.CarbonColumnVector;
     import org.apache.carbondata.core.scan.result.vector.ColumnVectorInfo;
    +import org.apache.carbondata.core.util.ByteUtil;
     
     public class ColumnPageWrapper implements DimensionColumnPage {
     
       private ColumnPage columnPage;
    +  private TableSpec.ColumnSpec columnSpec;
    +  private int columnValueSize = 0;
    +
     
       public ColumnPageWrapper(ColumnPage columnPage) {
         this.columnPage = columnPage;
    +    this.columnSpec = columnPage.getColumnSpec();
       }
     
       @Override
       public int fillRawData(int rowId, int offset, byte[] data, 
KeyStructureInfo restructuringInfo) {
    -    throw new UnsupportedOperationException("internal error");
    +    // TODO verify the implementation. Mostly this is for dictionary.
    +    int surrogate = columnPage.getInt(rowId);
    +    ByteBuffer buffer = ByteBuffer.wrap(data);
    +    buffer.putInt(offset, surrogate);
    +    return columnValueSize;
       }
     
       @Override
       public int fillSurrogateKey(int rowId, int chunkIndex, int[] 
outputSurrogateKey,
           KeyStructureInfo restructuringInfo) {
    -    throw new UnsupportedOperationException("internal error");
    +    outputSurrogateKey[chunkIndex] = columnPage.getInt(rowId);
    --- End diff --
    
    not required, remove


---

Reply via email to