Github user gvramana commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2417#discussion_r200985673 --- 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 -- move to EncodeFactory
---