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.
---