Github user manishgupta88 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2819#discussion_r226223232
--- Diff:
core/src/main/java/org/apache/carbondata/core/datastore/page/LazyColumnPage.java
---
@@ -42,10 +43,26 @@ private LazyColumnPage(ColumnPage columnPage,
ColumnPageValueConverter converter
this.converter = converter;
}
+ private LazyColumnPage(ColumnPage columnPage, ColumnPageValueConverter
converter,
+ ColumnVectorInfo vectorInfo) {
+ super(columnPage.getColumnPageEncoderMeta(), columnPage.getPageSize());
+ this.columnPage = columnPage;
+ this.converter = converter;
+ if (columnPage instanceof DecimalColumnPage) {
+ vectorInfo.decimalConverter = ((DecimalColumnPage)
columnPage).getDecimalConverter();
+ }
+ converter.decodeAndFillVector(columnPage, vectorInfo);
+ }
+
public static ColumnPage newPage(ColumnPage columnPage,
ColumnPageValueConverter codec) {
return new LazyColumnPage(columnPage, codec);
}
+ public static ColumnPage newPage(ColumnPage columnPage,
ColumnPageValueConverter codec,
+ ColumnVectorInfo vectorInfo) {
+ return new LazyColumnPage(columnPage, codec, vectorInfo);
+ }
--- End diff --
I am not sure what is the significance of making a static method and
creating a object from it. As we are not doing anything extra in this method we
can make the constructor itself public and remove this static method
---