/** * @return the precision */ public int getPrecision() { return columnSchema.getPrecision(); }
private static String parseStringToBigDecimal(String value, ColumnSchema columnSchema) { BigDecimal bigDecimal = new BigDecimal(value).setScale(columnSchema.getScale(), RoundingMode.HALF_UP); BigDecimal normalizedValue = normalizeDecimalValue(bigDecimal, columnSchema.getPrecision()); if (null != normalizedValue) { return normalizedValue.toString(); } return null; }
private static String parseStringToBigDecimal(String value, CarbonDimension dimension) { BigDecimal bigDecimal = new BigDecimal(value) .setScale(dimension.getColumnSchema().getScale(), RoundingMode.HALF_UP); BigDecimal normalizedValue = normalizeDecimalValue(bigDecimal, dimension.getColumnSchema().getPrecision()); if (null != normalizedValue) { return normalizedValue.toString(); } return null; }
/** * Construct Field from ColumnSchema * * @param columnSchema ColumnSchema, Store the information about the column meta data */ public Field(ColumnSchema columnSchema) { this.name = columnSchema.getColumnName(); this.type = columnSchema.getDataType(); children = new LinkedList<>(); schemaOrdinal = columnSchema.getSchemaOrdinal(); precision = columnSchema.getPrecision(); scale = columnSchema.getScale(); }
if (org.apache.carbondata.core.metadata.datatype.DataTypes.isDecimal(dataType)) { fields.add(new StructField(carbonColumn.getColumnName(), new DecimalType(carbonColumn.getPrecision(), carbonColumn.getScale()), true, Metadata.empty())); } else if (org.apache.carbondata.core.metadata.datatype.DataTypes.isStructType(dataType)) {
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())); } } } }
columnSchema.setDataType( DataTypeUtil.valueOf( columnSchema.getDataType(), columnSchema.getPrecision(), columnSchema.getScale())); for (ColumnSchema columnSchema : dataMapSchema.childSchema.getListOfColumns()) { columnSchema.setDataType(DataTypeUtil .valueOf(columnSchema.getDataType(), columnSchema.getPrecision(), columnSchema.getScale())); columnSchema.setDataType( DataTypeUtil.valueOf( columnSchema.getDataType(), columnSchema.getPrecision(), columnSchema.getScale())); .getColumnSchemaList()) { columnSchema.setDataType(DataTypeUtil .valueOf(columnSchema.getDataType(), columnSchema.getPrecision(), columnSchema.getScale()));
dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), true, dateFormat); } else { output = DataTypeUtil.getNoDictionaryValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), false, dateFormat); .getMeasureValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision(), true); } else { output = DataTypeUtil .getMeasureValueBasedOnDataType(literalValue, dataField.getColumn().getDataType(), dataField.getColumn().getColumnSchema().getScale(), dataField.getColumn().getColumnSchema().getPrecision());
if (DataTypes.isDecimal(wrapperColumnSchema.getDataType())) { thriftColumnSchema.setScale(wrapperColumnSchema.getScale()); thriftColumnSchema.setPrecision(wrapperColumnSchema.getPrecision()); } else { thriftColumnSchema.setScale(-1);
ProjectionDimension currentBlockDimension = new ProjectionDimension(tableDimension); tableDimension.getColumnSchema() .setPrecision(queryDimension.getDimension().getColumnSchema().getPrecision()); tableDimension.getColumnSchema() .setScale(queryDimension.getDimension().getColumnSchema().getScale());