/** * create a decimal type object with default precision = 10 and scale = 2 */ public static DecimalType createDefaultDecimalType() { return new DecimalType(10, 2); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + getName().hashCode(); result = prime * result + getPrecision(); result = prime * result + getScale(); return result; }
public static ColumnSpec newInstanceLegacy(String fieldName, DataType schemaDataType, ColumnType columnType) { // for backward compatibility as the precision and scale is not stored, the values should be // initialized with -1 for both precision and scale if (schemaDataType instanceof DecimalType) { ((DecimalType) schemaDataType).setPrecision(-1); ((DecimalType) schemaDataType).setScale(-1); } return new ColumnSpec(fieldName, schemaDataType, columnType); }
@Override public void write(DataOutput out) throws IOException { out.writeUTF(fieldName); out.writeByte(schemaDataType.getId()); out.writeByte(columnType.ordinal()); if (DataTypes.isDecimal(schemaDataType)) { DecimalType decimalType = (DecimalType) schemaDataType; out.writeInt(decimalType.getScale()); out.writeInt(decimalType.getPrecision()); } else { out.writeInt(-1); out.writeInt(-1); } }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } DecimalType other = (DecimalType)obj; if (!this.getName().equalsIgnoreCase(other.getName())) { return false; } if (this.precision != other.precision) { return false; } if (this.scale != other.scale) { return false; } return true; }
/** * Set the scale if it is decimal type */ public void setScale(int scale) { this.scale = scale; if (DataTypes.isDecimal(dataType)) { ((DecimalType) dataType).setScale(scale); } }
/** * Set the precision if it is decimal type */ public void setPrecision(int precision) { this.precision = precision; if (DataTypes.isDecimal(dataType)) { ((DecimalType) dataType).setPrecision(precision); } }
public int getPrecision() { if (DataTypes.isDecimal(schemaDataType)) { return ((DecimalType) schemaDataType).getPrecision(); } else if (schemaDataType == DataTypes.BYTE_ARRAY) { return -1; } throw new UnsupportedOperationException(); }
public int getScale() { if (DataTypes.isDecimal(schemaDataType)) { return ((DecimalType) schemaDataType).getScale(); } else if (schemaDataType == DataTypes.BYTE_ARRAY) { return -1; } throw new UnsupportedOperationException(); }
out.writeInt(((DecimalType) dataType).getScale()); out.writeInt(((DecimalType) dataType).getPrecision()); } else { out.writeInt(-1);
@Override public void readFields(DataInput in) throws IOException { this.fieldName = in.readUTF(); this.schemaDataType = DataTypes.valueOf(in.readByte()); this.columnType = ColumnType.valueOf(in.readByte()); int scale = in.readInt(); int precision = in.readInt(); if (DataTypes.isDecimal(this.schemaDataType)) { DecimalType decimalType = (DecimalType) this.schemaDataType; decimalType.setPrecision(precision); decimalType.setScale(scale); } } }
if (DataTypes.isDecimal(dataType)) { DecimalType decimalType = (DecimalType) dataType; out.writeInt(decimalType.getScale()); out.writeInt(decimalType.getPrecision()); } else { out.writeInt(-1);
/** * create a decimal type object with specified precision and scale */ public static DecimalType createDecimalType(int precision, int scale) { return new DecimalType(precision, scale); }
if (DataTypes.isDecimal(dataType)) { DecimalType decimalType = (DecimalType) dataType; decimalType.setPrecision(precision); decimalType.setScale(scale);
newColumn.setPrecision(decimalType.getPrecision()); newColumn.setScale(decimalType.getScale());
@Override public void readFields(DataInput in) throws IOException { columnSpec = new TableSpec.ColumnSpec(); columnSpec.readFields(in); storeDataType = DataTypes.valueOf(in.readByte()); if (DataTypes.isDecimal(storeDataType)) { DecimalType decimalType = (DecimalType) storeDataType; decimalType.setPrecision(columnSpec.getPrecision()); decimalType.setScale(columnSpec.getScale()); } setDecimal(in.readInt()); setDataTypeSelected(in.readByte()); readMinMax(in); compressorName = in.readUTF(); }
if (DataTypes.isDecimal(dataType)) { DecimalType decimalType = (DecimalType) dataType; decimalType.setPrecision(externalColumnSchema.getPrecision()); decimalType.setScale(externalColumnSchema.getScale());
if (DataTypes.isDecimal(dataType)) { DecimalType decimalType = (DecimalType) dataType; decimalType.setPrecision(externalColumnSchema.getPrecision()); decimalType.setScale(externalColumnSchema.getScale());