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