/** * the method prepares and return the message mentioning the reason of badrecord * * @param columnName * @param dataType * @return */ public static String prepareFailureReason(String columnName, DataType dataType) { return "The value with column name " + columnName + " and column data type " + dataType .getName() + " is not a valid " + dataType + " type."; }
@Override public String toString() { return getName(); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + getName().hashCode(); return result; }
/** * get field data type name by ordinal * * @param ordinal the data index of carbon schema * @return ordinal field data type name */ public String getFieldDataTypeName(int ordinal) { return fields[ordinal].getDataType().getName(); }
public static DataType valueOf(String name) { if (DataTypes.STRING.getName().equalsIgnoreCase(name)) { return DataTypes.STRING; } else if (DataTypes.DATE.getName().equalsIgnoreCase(name)) { return DataTypes.DATE; } else if (DataTypes.TIMESTAMP.getName().equalsIgnoreCase(name)) { return DataTypes.TIMESTAMP; } else if (DataTypes.BOOLEAN.getName().equalsIgnoreCase(name)) { return DataTypes.BOOLEAN; } else if (DataTypes.BYTE.getName().equalsIgnoreCase(name)) { return DataTypes.BYTE; } else if (DataTypes.SHORT.getName().equalsIgnoreCase(name)) { return DataTypes.SHORT; } else if (DataTypes.SHORT_INT.getName().equalsIgnoreCase(name)) { return DataTypes.SHORT_INT; } else if (DataTypes.INT.getName().equalsIgnoreCase(name)) { return DataTypes.INT; } else if (DataTypes.LONG.getName().equalsIgnoreCase(name)) { return DataTypes.LONG; } else if (DataTypes.LEGACY_LONG.getName().equalsIgnoreCase(name)) { return DataTypes.LEGACY_LONG; } else if (DataTypes.FLOAT.getName().equalsIgnoreCase(name)) { return DataTypes.FLOAT; } else if (DataTypes.DOUBLE.getName().equalsIgnoreCase(name)) { return DataTypes.DOUBLE; } else if (DataTypes.VARCHAR.getName().equalsIgnoreCase(name)) { return DataTypes.VARCHAR; } else if (DataTypes.NULL.getName().equalsIgnoreCase(name)) { return DataTypes.NULL; } else if (DataTypes.BYTE_ARRAY.getName().equalsIgnoreCase(name)) {
/** * get array child element data type name by ordinal * * @param ordinal the data index of carbon schema * @return ordinal array child element data type name */ public String getArrayElementTypeName(int ordinal) { if (getFieldDataTypeName(ordinal).equalsIgnoreCase("ARRAY")) { return ((ArrayType) fields[ordinal].getDataType()).getElementType().getName(); } throw new RuntimeException("Only support Array type."); }
public Boolean getBoolean() throws FilterIllegalMemberException { if (value == null) { return null; } try { DataType dataType = this.getDataType(); if (dataType == DataTypes.STRING) { try { return Boolean.parseBoolean(value.toString()); } catch (NumberFormatException e) { throw new FilterIllegalMemberException(e); } } else if (dataType == DataTypes.BOOLEAN) { return Boolean.parseBoolean(value.toString()); } else { throw new FilterIllegalMemberException( "Cannot convert" + this.getDataType().getName() + " to boolean type value"); } } catch (ClassCastException e) { throw new FilterIllegalMemberException( "Cannot convert" + this.getDataType().getName() + " to Boolean type value"); } }
"Cannot convert" + this.getDataType().getName() + " to String type value");
dataType = DataTypeUtil.valueOf(dataType.getName()); Object data = new Object(); if (dataType == DataTypes.BOOLEAN) {
dataType = DataTypeUtil.valueOf(dataType.getName()); if (dataType == DataTypes.BOOLEAN) { CarbonUnsafe.getUnsafe().putBoolean(baseObject, address + size, (boolean) data);
/** * create Comparator for Measure Datatype * * @param dataType * @return */ public static SerializableComparator getComparatorByDataTypeForMeasure(DataType dataType) { if (dataType == DataTypes.BOOLEAN) { return new BooleanSerializableComparator(); } else if (dataType == DataTypes.INT) { return new IntSerializableComparator(); } else if (dataType == DataTypes.SHORT) { return new ShortSerializableComparator(); } else if (dataType == DataTypes.LONG) { return new LongSerializableComparator(); } else if (dataType == DataTypes.DOUBLE) { return new DoubleSerializableComparator(); } else if (dataType == DataTypes.FLOAT) { return new FloatSerializableComparator(); } else if (DataTypes.isDecimal(dataType)) { return new BigDecimalSerializableComparator(); } else if (dataType == DataTypes.BYTE) { return new ByteArraySerializableComparator(); } else { throw new IllegalArgumentException("Unsupported data type: " + dataType.getName()); } } }
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); }
public static GenericQueryType[] getComplexDimensions(CarbonTable carbontable, CarbonColumn[] carbonColumns, Cache<DictionaryColumnUniqueIdentifier, Dictionary> cache) throws IOException { GenericQueryType[] queryTypes = new GenericQueryType[carbonColumns.length]; for (int i = 0; i < carbonColumns.length; i++) { if (carbonColumns[i].isComplex()) { if (DataTypes.isArrayType(carbonColumns[i].getDataType())) { queryTypes[i] = new ArrayQueryType(carbonColumns[i].getColName(), carbonColumns[i].getColName(), i); } else if (DataTypes.isStructType(carbonColumns[i].getDataType())) { queryTypes[i] = new StructQueryType(carbonColumns[i].getColName(), carbonColumns[i].getColName(), i); } else { throw new UnsupportedOperationException( carbonColumns[i].getDataType().getName() + " is not supported"); } fillChildren(carbontable, queryTypes[i], (CarbonDimension) carbonColumns[i], i, cache); } } return queryTypes; }