예제 #1
0
 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));
   }
 }
예제 #2
0
 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));
   }
 }
예제 #3
0
 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));
   }
 }