return DataTypes.DOUBLE; case DECIMAL: return DataTypes.createDecimalType(precision, scale); case TIMESTAMP: return DataTypes.TIMESTAMP;
int precision = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getPrecision(); int scale = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getScale(); return DataTypes.createDecimalType(precision, scale); } else { throw new UnsupportedOperationException(
int precision = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getPrecision(); int scale = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getScale(); return new Field(fieldName, DataTypes.createDecimalType(precision, scale)); } else { throw new UnsupportedOperationException(
return DataTypes.BYTE_ARRAY; } else if (dataType.getName().equalsIgnoreCase("decimal")) { return DataTypes.createDecimalType(precision, scale); } else if (dataType.getName().equalsIgnoreCase("array")) { return DataTypes.createDefaultArrayType();
int precision = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getPrecision(); int scale = ((LogicalTypes.Decimal) childSchema.getLogicalType()).getScale(); return new StructField(fieldName, DataTypes.createDecimalType(precision, scale)); } else { throw new UnsupportedOperationException(
private static void updateDecimalType(TableInfo tableInfo) { List<ColumnSchema> deserializedColumns = tableInfo.getFactTable().getListOfColumns(); for (ColumnSchema column : deserializedColumns) { DataType dataType = column.getDataType(); if (DataTypes.isDecimal(dataType)) { column.setDataType(DataTypes.createDecimalType(column.getPrecision(), column.getScale())); } } if (tableInfo.getFactTable().getPartitionInfo() != null) { List<ColumnSchema> partitionColumns = tableInfo.getFactTable().getPartitionInfo().getColumnSchemaList(); for (ColumnSchema column : partitionColumns) { DataType dataType = column.getDataType(); if (DataTypes.isDecimal(dataType)) { column.setDataType(DataTypes.createDecimalType(column.getPrecision(), column.getScale())); } } } }
/** * Create a new column page for decimal page */ public static ColumnPage newDecimalColumnPage(ColumnPageEncoderMeta meta, byte[] lvEncodedBytes, int actualDataLength) throws MemoryException { TableSpec.ColumnSpec columnSpec = meta.getColumnSpec(); DecimalConverterFactory.DecimalConverter decimalConverter = DecimalConverterFactory.INSTANCE.getDecimalConverter(columnSpec.getPrecision(), columnSpec.getScale()); int size = decimalConverter.getSize(); if (size < 0) { return getLVBytesColumnPage(columnSpec, lvEncodedBytes, DataTypes.createDecimalType(columnSpec.getPrecision(), columnSpec.getScale()), CarbonCommonConstants.INT_SIZE_IN_BYTE, meta.getCompressorName()); } else { // Here the size is always fixed. return getDecimalColumnPage(meta, lvEncodedBytes, size, actualDataLength); } }
} else if (DataTypes.isDecimal(dataType)) { fields[msr.getOrdinal()] = new StructField(msr.getColumnName(), DataTypes.createDecimalType(msr.getMeasure().getPrecision(), msr.getMeasure().getScale())); } else {