public Field(Field field) { this.type = field.type; this.indexed = false; if (Types.isArrayType(this.type) || Types.isMapType(this.type)) { this.value = field.value; return; } if (type.equals(BIGINT)) { this.value = field.getLong(); } else if (type.equals(BOOLEAN)) { this.value = field.getBoolean(); } else if (type.equals(DATE)) { this.value = new Date(field.getDate().getTime()); } else if (type.equals(DOUBLE)) { this.value = field.getDouble(); } else if (type.equals(INTEGER)) { this.value = field.getInt(); } else if (type.equals(REAL)) { this.value = field.getFloat(); } else if (type.equals(SMALLINT)) { this.value = field.getShort(); } else if (type.equals(TIME)) { this.value = new Time(field.getTime().getTime()); } else if (type.equals(TIMESTAMP)) { this.value = new Timestamp(field.getTimestamp().getTime()); } else if (type.equals(TINYINT)) { this.value = field.getByte(); } else if (type.equals(VARBINARY)) { this.value = Arrays.copyOf(field.getVarbinary(), field.getVarbinary().length); } else if (type.equals(VARCHAR)) { this.value = field.getVarchar(); } else { throw new PrestoException(NOT_SUPPORTED, "Unsupported type " + type); } }