Github user ravipesala commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2396#discussion_r197502390
--- Diff:
core/src/main/java/org/apache/carbondata/core/scan/complextypes/ArrayQueryType.java
---
@@ -97,4 +99,56 @@ public void
parseBlocksAndReturnComplexColumnByteArray(DimensionRawColumnChunk[]
return
DataTypeUtil.getDataTypeConverter().wrapWithGenericArrayData(data);
}
+ @Override public Object getDataBasedOnColumn(ByteBuffer dataBuffer,
CarbonDimension parent,
+ CarbonDimension child) {
+ int dataLength;
+ if (parent.getOrdinal() < child.getOrdinal()) {
+ dataLength = parent.getNumberOfChild();
+
+ if (dataLength == -1) {
+ return null;
+ }
+ Object[] data = new Object[dataLength];
+ for (int i = 0; i < dataLength; i++) {
+ data[i] = children
+ .getDataBasedOnColumn(dataBuffer,
parent.getListOfChildDimensions().get(i), child);
+ }
+ return
DataTypeUtil.getDataTypeConverter().wrapWithGenericArrayData(data);
+ } else if (parent.getOrdinal() > child.getOrdinal()) {
+ return null;
+ } else {
+ // dataLength = dataBuffer.getInt();
+ return DataTypeUtil.getDataTypeConverter()
+ .wrapWithGenericArrayData(getDataBasedOnDataType(dataBuffer));
+ }
+ }
+
+ @Override public Object getDataBasedOnColumnList(Map<CarbonDimension,
ByteBuffer> childBuffer,
--- End diff --
Don't implement it, throw unsupported exception
---