@Override public NumericDatum inverseSign() { return new Float4Datum(-val); } }
@Override public char asChar() { return asChars().charAt(0); }
@Override public Datum plus(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createFloat4(val + datum.asInt2()); case INT4: return DatumFactory.createFloat4(val + datum.asInt4()); case INT8: return DatumFactory.createFloat4(val + datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val + datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val + datum.asFloat8()); case DATE: TimeMeta tm = datum.asTimeMeta(); tm.plusDays(asInt4()); return new DateDatum(tm); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type); } }
case INT2: short paramValueI2 = datum.asInt2(); if (!validateDivideZero(paramValueI2)) { return NullDatum.get(); case INT4: int paramValueI4 = datum.asInt4(); if (!validateDivideZero(paramValueI4)) { return NullDatum.get(); case INT8: long paramValueI8 = datum.asInt8(); if (!validateDivideZero(paramValueI8)) { return NullDatum.get(); case FLOAT4: float paramValueF4 = datum.asFloat4(); if (!validateDivideZero(paramValueF4)) { return NullDatum.get(); case FLOAT8: double paramValueF8 = datum.asFloat8(); if (!validateDivideZero(paramValueF8)) { return NullDatum.get();
@Override public Datum minus(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createFloat4(val - datum.asInt2()); case INT4: return DatumFactory.createFloat4(val - datum.asInt4()); case INT8: return DatumFactory.createFloat4(val - datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val - datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val - datum.asFloat8()); case DATE: TimeMeta tm = datum.asTimeMeta(); tm.plusDays(0 - asInt4()); return new DateDatum(tm); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type); } }
case INT2: short paramValueI2 = datum.asInt2(); if (!validateDivideZero(paramValueI2)) { return NullDatum.get(); case INT4: int paramValueI4 = datum.asInt4(); if (!validateDivideZero(paramValueI4)) { return NullDatum.get(); case INT8: long paramValueI8 = datum.asInt8(); if (!validateDivideZero(paramValueI8)) { return NullDatum.get(); case FLOAT4: float paramValueF4 = datum.asFloat4(); if (!validateDivideZero(paramValueF4)) { return NullDatum.get(); case FLOAT8: double paramValueF8 = datum.asFloat8(); if (!validateDivideZero(paramValueF8)) { return NullDatum.get();
@Override public NumericDatum inverseSign() { return new Float4Datum(-val); } }
@Override public Datum minus(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createFloat4(val - datum.asInt2()); case INT4: return DatumFactory.createFloat4(val - datum.asInt4()); case INT8: return DatumFactory.createFloat4(val - datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val - datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val - datum.asFloat8()); case DATE: TimeMeta tm = datum.asTimeMeta(); tm.plusDays(0 - asInt4()); return new DateDatum(tm); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
case INT2: short paramValueI2 = datum.asInt2(); if (!validateDivideZero(paramValueI2)) { return NullDatum.get(); case INT4: int paramValueI4 = datum.asInt4(); if (!validateDivideZero(paramValueI4)) { return NullDatum.get(); case INT8: long paramValueI8 = datum.asInt8(); if (!validateDivideZero(paramValueI8)) { return NullDatum.get(); case FLOAT4: float paramValueF4 = datum.asFloat4(); if (!validateDivideZero(paramValueF4)) { return NullDatum.get(); case FLOAT8: double paramValueF8 = datum.asFloat8(); if (!validateDivideZero(paramValueF8)) { return NullDatum.get();
@Override public char asChar() { return asChars().charAt(0); }
public static Float4Datum createFloat4(float val) { return new Float4Datum(val); }
@Override public Datum plus(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createFloat4(val + datum.asInt2()); case INT4: return DatumFactory.createFloat4(val + datum.asInt4()); case INT8: return DatumFactory.createFloat4(val + datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val + datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val + datum.asFloat8()); case DATE: TimeMeta tm = datum.asTimeMeta(); tm.plusDays(asInt4()); return new DateDatum(tm); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
case INT2: short paramValueI2 = datum.asInt2(); if (!validateDivideZero(paramValueI2)) { return NullDatum.get(); case INT4: int paramValueI4 = datum.asInt4(); if (!validateDivideZero(paramValueI4)) { return NullDatum.get(); case INT8: long paramValueI8 = datum.asInt8(); if (!validateDivideZero(paramValueI8)) { return NullDatum.get(); case FLOAT4: float paramValueF4 = datum.asFloat4(); if (!validateDivideZero(paramValueF4)) { return NullDatum.get(); case FLOAT8: double paramValueF8 = datum.asFloat8(); if (!validateDivideZero(paramValueF8)) { return NullDatum.get();
public static Float4Datum createFloat4(float val) { return new Float4Datum(val); }
public static Float4Datum createFloat4(String val) { return new Float4Datum(Float.valueOf(val)); }
public static Float4Datum createFloat4(String val) { return new Float4Datum(Float.valueOf(val)); }
public static Datum convertWritable2Datum(Writable value) throws UnsupportedDataTypeException { if (value == null) { return NullDatum.get(); } DataType type = convertWritableToTajoType(value.getClass()); switch(type.getType()) { case INT1: return new Int2Datum(((ByteWritable)value).get()); case INT2: return new Int2Datum(((ShortWritable)value).get()); case INT4: return new Int4Datum(((IntWritable)value).get()); case INT8: return new Int8Datum(((LongWritable)value).get()); case FLOAT4: return new Float4Datum(((FloatWritable)value).get()); case FLOAT8: return new Float8Datum(((DoubleWritable)value).get()); case DATE: return new DateDatum(((DateWritable)value).getDays() + DateTimeConstants.UNIX_EPOCH_JDATE); case TIMESTAMP: return new TimestampDatum(DateTimeUtil.javaTimeToJulianTime( ((TimestampWritable)value).getTimestamp().getTime())); case CHAR: return new CharDatum(value.toString()); case TEXT: return new TextDatum(value.toString()); case VARBINARY: return new BlobDatum(((BytesWritable)value).getBytes()); } throw new TajoRuntimeException(new UnsupportedDataTypeException(value.getClass().getTypeName())); } }