public static DateDatum createDate(Datum datum) { switch (datum.type()) { case INT4: return new DateDatum(datum.asInt4()); case INT8: return new DateDatum(datum.asInt4()); case TEXT: return createDate(datum.asChars()); case DATE: return (DateDatum) datum; default: throw new TajoRuntimeException(new InvalidValueForCastException(datum.type(), Type.DATE)); } }
public static TimeDatum createTime(Datum datum) { switch (datum.type()) { case INT8: return new TimeDatum(datum.asInt8()); case CHAR: case VARCHAR: case TEXT: TimeMeta tm = DateTimeFormat.parseDateTime(datum.asChars(), "HH24:MI:SS.MS"); return new TimeDatum(DateTimeUtil.toTime(tm)); case TIME: return (TimeDatum) datum; default: throw new TajoRuntimeException(new InvalidValueForCastException(datum.type(), Type.TIME)); } }
public static TimestampDatum createTimestamp(Datum datum, @Nullable TimeZone tz) { switch (datum.type()) { case CHAR: case VARCHAR: case TEXT: return parseTimestamp(datum.asChars(), tz); case TIMESTAMP: return (TimestampDatum) datum; case DATE: { TimeMeta tm = datum.asTimeMeta(); if (tz != null) { DateTimeUtil.toUTCTimezone(tm, tz); } return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } default: throw new TajoRuntimeException( new InvalidValueForCastException(datum.type(), Type.TIMESTAMP)); } }