private boolean isColumnPageBasedOnDataType(int columnPageIndex) { DataType dataType = complexColumnInfoList.get(columnPageIndex).getColumnDataTypes(); if ((complexColumnInfoList.get(columnPageIndex).isNoDictionary() && !((DataTypes.isStructType(dataType) || DataTypes.isArrayType(dataType) || DataTypes.isMapType(dataType) || (dataType == DataTypes.STRING) || (dataType == DataTypes.VARCHAR) || (dataType == DataTypes.DATE) || DataTypes.isDecimal(dataType))))) { // For all these above condition the ColumnPage should be Taken as BYTE_ARRAY // for all other cases make Column Page Based on each DataType. return true; } else { return false; } }
} else if (DataTypes.isMapType(dataType)) {
private static void fillParentDetails(Map<Integer, Integer> dimensionToBlockIndexMap, CarbonDimension dimension, Map<Integer, GenericQueryType> complexTypeMap, int[] eachComplexColumnValueSize, Map<String, Dictionary> columnIdToDictionaryMap) { int parentBlockIndex = dimensionToBlockIndexMap.get(dimension.getOrdinal()); GenericQueryType parentQueryType; if (DataTypes.isArrayType(dimension.getDataType())) { parentQueryType = new ArrayQueryType(dimension.getColName(), dimension.getColName(), parentBlockIndex); } else if (DataTypes.isStructType(dimension.getDataType())) { parentQueryType = new StructQueryType(dimension.getColName(), dimension.getColName(), dimensionToBlockIndexMap.get(dimension.getOrdinal())); } else if (DataTypes.isMapType(dimension.getDataType())) { parentQueryType = new MapQueryType(dimension.getColName(), dimension.getColName(), parentBlockIndex); } else { throw new UnsupportedOperationException(dimension.getDataType().getName() + " is not supported"); } complexTypeMap.put(dimension.getOrdinal(), parentQueryType); fillChildrenDetails(eachComplexColumnValueSize, columnIdToDictionaryMap, parentBlockIndex, dimension, parentQueryType); }
new StructQueryType(dimension.getListOfChildDimensions().get(i).getColName(), dimension.getColName(), ++parentBlockIndex)); } else if (DataTypes.isMapType(dataType)) { parentQueryType.addChildren( new MapQueryType(dimension.getListOfChildDimensions().get(i).getColName(),
private void initComplexTypeChildren() { if (getDataType().isComplexType()) { StructField subFields = prepareSubFields(getFieldName(), getDataType()); if (DataTypes.isArrayType(getDataType()) || DataTypes.isMapType(getDataType())) { children = subFields.getChildren(); } else if (DataTypes.isStructType(getDataType())) { children = ((StructType) subFields.getDataType()).getFields(); } } }
String nullFormat, int depth) { DataType dataType = carbonColumn.getDataType(); if (DataTypes.isArrayType(dataType) || DataTypes.isMapType(dataType)) { List<CarbonDimension> listOfChildDimensions = ((CarbonDimension) carbonColumn).getListOfChildDimensions();
.setEncodingList(createEncoding(field.getDataType(), isInvertedIdxColumn, isComplexChild)); if (field.getDataType().isComplexType()) { if (DataTypes.isArrayType(field.getDataType()) || DataTypes.isMapType(field.getDataType())) { newColumn.setNumberOfChild(1); } else { measures.add(newColumn); } else if (DataTypes.isStructType(field.getDataType()) || DataTypes .isArrayType(field.getDataType()) || DataTypes.isMapType(field.getDataType()) || isComplexChild) { complex.add(newColumn); addColumn(fields.get(i), parentFieldName, valIndex, false, true, isInvertedIdxColumn); } else if (DataTypes.isMapType(field.getDataType())) { String colName = getColNameForArray(valIndex); addColumn(new StructField(colName, ((MapType) field.getDataType()).getValueType()),
Map<Object, Integer> localCache, int index, String nullFormat, Boolean isEmptyBadRecords) { DataType dataType = carbonColumn.getDataType(); if (DataTypes.isArrayType(dataType) || DataTypes.isMapType(dataType)) { List<CarbonDimension> listOfChildDimensions = ((CarbonDimension) carbonColumn).getListOfChildDimensions();
} else if (DataTypes.isStructType(dataType)) { return org.apache.carbondata.format.DataType.STRUCT; } else if (DataTypes.isMapType(dataType)) { return org.apache.carbondata.format.DataType.MAP; } else if (dataType.getId() == DataTypes.VARCHAR.getId()) {