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

    https://github.com/apache/carbondata/pull/2417#discussion_r201225430
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/datastore/page/encoding/ColumnPageEncoder.java
 ---
    @@ -147,10 +160,48 @@ protected void fillLegacyFields(DataChunk2 dataChunk)
     
       public static EncodedColumnPage encodedColumn(ColumnPage page)
           throws IOException, MemoryException {
    -    ColumnPageEncoder encoder = new 
DirectCompressCodec(DataTypes.BYTE_ARRAY).createEncoder(null);
    -    return encoder.encode(page);
    +    ColumnPageEncoder pageEncoder = createCodecForDimension(page);
    +    if (pageEncoder == null) {
    +      ColumnPageEncoder encoder = new 
DirectCompressCodec(DataTypes.BYTE_ARRAY).createEncoder(null);
    +      return encoder.encode(page);
    +    } else {
    +      LOGGER.info("Encoder result ---> Source data type: " + 
pageEncoder.getEncoderMeta(page)
    +          .getColumnSpec().getSchemaDataType() + " Destination data type: 
" + pageEncoder
    +          .getEncoderMeta(page).getStoreDataType() + " for the column: " + 
pageEncoder
    +          .getEncoderMeta(page).getColumnSpec().getFieldName());
    +      // TODO: remove the Sout after testing,
    +      // currently added as executor Info logs doesn't come in IDE
    +      System.out.println("Encoder result ---> Source data type: " + 
pageEncoder.getEncoderMeta(page)
    +          .getColumnSpec().getSchemaDataType() + " Destination data type: 
" + pageEncoder
    +          .getEncoderMeta(page).getStoreDataType() + " for the column: " + 
pageEncoder
    +          .getEncoderMeta(page).getColumnSpec().getFieldName());
    +      return pageEncoder.encode(page);
    +    }
       }
     
    +  private static ColumnPageEncoder createCodecForDimension(ColumnPage 
inputPage) {
    +    TableSpec.ColumnSpec columnSpec = inputPage.getColumnSpec();
    --- End diff --
    
    This refactoring will be done as part of CARBONDATA-2713.


---

Reply via email to