public static TimeDatum createTime(long instance) { return new TimeDatum(instance); }
public static TimeDatum createTime(long instance) { return new TimeDatum(instance); }
public static TimeDatum createTime(String timeStr) { return new TimeDatum(DateTimeUtil.toJulianTime(timeStr)); }
public static TimeDatum createTime(String timeStr) { return new TimeDatum(DateTimeUtil.toJulianTime(timeStr)); }
@Override public Expr visitTimeLiteral(Object ctx, Stack<Expr> stack, TimeLiteral expr) throws TajoException { StringBuilder sb = new StringBuilder(); if (!isHiveCatalog) { TimeValue timeValue = expr.getTime(); int [] times = ExprAnnotator.timeToIntArray(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds(), timeValue.getSecondsFraction()); long time; if (timeValue.hasSecondsFraction()) { time = DateTimeUtil.toTime(times[0], times[1], times[2], times[3] * 1000); } else { time = DateTimeUtil.toTime(times[0], times[1], times[2], 0); } TimeDatum timeDatum = new TimeDatum(time); TimeMeta tm = timeDatum.asTimeMeta(); TimeZone tz = TimeZone.getDefault(); DateTimeUtil.toUTCTimezone(tm, tz); sb.append("?").append(" )"); parameters.add(new Pair(Type.TIME, new Time(DateTimeUtil.toJavaTime(tm.hours, tm.minutes, tm.secs, tm.fsecs)))); } else { sb.append("\"").append(expr.toString()).append("\""); } queries.push(sb.toString()); return expr; }
@Override public Datum deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); String typeName = CommonGsonHelper.getOrDie(jsonObject, "type").getAsString(); TajoDataTypes.Type type = TajoDataTypes.Type.valueOf(typeName); switch (type) { case DATE: return new DateDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsInt()); case TIME: return new TimeDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case TIMESTAMP: return new TimestampDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case INTERVAL: String[] values = CommonGsonHelper.getOrDie(jsonObject, "value").getAsString().split(","); return new IntervalDatum(Integer.parseInt(values[0]), Long.parseLong(values[1])); case ANY: return new AnyDatum(deserialize(CommonGsonHelper.getOrDie(jsonObject, "actual"), typeOfT, context)); default: return context.deserialize(CommonGsonHelper.getOrDie(jsonObject, "body"), DatumFactory.getDatumClass(TajoDataTypes.Type.valueOf(typeName))); } }
@Override public EvalNode visitTimeLiteral(Context ctx, Stack<Expr> stack, TimeLiteral expr) throws TajoException { TimeValue timeValue = expr.getTime(); int [] times = timeToIntArray(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds(), timeValue.getSecondsFraction()); long time; if (timeValue.hasSecondsFraction()) { time = DateTimeUtil.toTime(times[0], times[1], times[2], times[3] * 1000); } else { time = DateTimeUtil.toTime(times[0], times[1], times[2], 0); } TimeDatum timeDatum = new TimeDatum(time); TimeMeta tm = timeDatum.asTimeMeta(); return new ConstEval(new TimeDatum(DateTimeUtil.toTime(tm))); }
@Override public EvalNode visitTimeLiteral(Context ctx, Stack<Expr> stack, TimeLiteral expr) throws TajoException { TimeValue timeValue = expr.getTime(); int [] times = timeToIntArray(timeValue.getHours(), timeValue.getMinutes(), timeValue.getSeconds(), timeValue.getSecondsFraction()); long time; if (timeValue.hasSecondsFraction()) { time = DateTimeUtil.toTime(times[0], times[1], times[2], times[3] * 1000); } else { time = DateTimeUtil.toTime(times[0], times[1], times[2], 0); } TimeDatum timeDatum = new TimeDatum(time); TimeMeta tm = timeDatum.asTimeMeta(); return new ConstEval(new TimeDatum(DateTimeUtil.toTime(tm))); }
public static TimeDatum createTime(Datum datum) { switch (datum.kind()) { 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 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)); } }
@Override public Datum deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = json.getAsJsonObject(); String typeStr = CommonGsonHelper.getOrDie(jsonObject, "type").getAsString(); org.apache.tajo.type.Type type = TypeStringEncoder.decode(typeStr); switch (type.kind()) { case DATE: return new DateDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsInt()); case TIME: return new TimeDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case TIMESTAMP: return new TimestampDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsLong()); case INTERVAL: String[] values = CommonGsonHelper.getOrDie(jsonObject, "value").getAsString().split(","); return new IntervalDatum(Integer.parseInt(values[0]), Long.parseLong(values[1])); case ANY: return new AnyDatum(deserialize(CommonGsonHelper.getOrDie(jsonObject, "actual"), typeOfT, context)); default: return context.deserialize(CommonGsonHelper.getOrDie(jsonObject, "body"), DatumFactory.getDatumClass(TajoDataTypes.Type.valueOf(type.kind().name()))); } }
@Override public Datum minus(Datum datum) { switch(datum.type()) { case INTERVAL: IntervalDatum interval = ((IntervalDatum)datum); TimeMeta tm = asTimeMeta(); tm.plusInterval(-interval.months, -interval.milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); case TIME: return new IntervalDatum((time - ((TimeDatum)datum).time)/1000); default: throw new InvalidOperationException("operator does not exist: " + type() + " - " + datum.type()); } }
@Override public Datum minus(Datum datum) { switch(datum.kind()) { case INTERVAL: IntervalDatum interval = ((IntervalDatum)datum); TimeMeta tm = asTimeMeta(); tm.plusInterval(-interval.months, -interval.milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); case TIME: return new IntervalDatum((time - ((TimeDatum)datum).time)/1000); default: throw new InvalidOperationException("operator does not exist: " + type() + " - " + datum.type()); } }
case TIME: final Time time = resultSet.getTime(resultIdx); tuple.put(column_idx, new TimeDatum( DateTimeUtil.toTime(time.getHours(), time.getMinutes(), time.getSeconds(), 0))); break;
@Override public Datum plus(Datum datum) { switch (datum.type()) { case INTERVAL: { IntervalDatum interval = ((IntervalDatum) datum); TimeMeta tm = asTimeMeta(); tm.plusInterval(interval.months, interval.milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); } case DATE: { DateDatum dateDatum = (DateDatum) datum; TimeMeta dateTm = dateDatum.asTimeMeta(); dateTm.plusTime(time); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(dateTm)); } case TIMESTAMP: { TimestampDatum timestampDatum = (TimestampDatum) datum; TimeMeta tm = timestampDatum.asTimeMeta(); tm.plusTime(time); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } default: throw new InvalidOperationException("operator does not exist: " + type() + " + " + datum.type()); } }
@Override public Datum plus(Datum datum) { switch (datum.kind()) { case INTERVAL: { IntervalDatum interval = ((IntervalDatum) datum); TimeMeta tm = asTimeMeta(); tm.plusInterval(interval.months, interval.milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); } case DATE: { DateDatum dateDatum = (DateDatum) datum; TimeMeta dateTm = dateDatum.asTimeMeta(); dateTm.plusTime(time); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(dateTm)); } case TIMESTAMP: { TimestampDatum timestampDatum = (TimestampDatum) datum; TimeMeta tm = timestampDatum.asTimeMeta(); tm.plusTime(time); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } default: throw new InvalidOperationException("operator does not exist: " + type() + " + " + datum.type()); } }
@Override public Datum plus(Datum datum) { switch(datum.type()) { case INTERVAL: IntervalDatum other = (IntervalDatum) datum; return new IntervalDatum(months + other.months, milliseconds + other.milliseconds); case DATE: { DateDatum dateDatum = (DateDatum) datum; TimeMeta tm = dateDatum.asTimeMeta(); tm.plusInterval(months, milliseconds); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } case TIME: { TimeMeta tm = datum.asTimeMeta(); tm.plusInterval(months, milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); } case TIMESTAMP: { TimeMeta tm = new TimeMeta(); DateTimeUtil.toJulianTimeMeta(datum.asInt8(), tm); tm.plusInterval(months, milliseconds); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } default: throw new InvalidOperationException("operator does not exist: " + type() + " + " + datum.type()); } }
@Override public Datum plus(Datum datum) { switch(datum.kind()) { case INTERVAL: IntervalDatum other = (IntervalDatum) datum; return new IntervalDatum(months + other.months, milliseconds + other.milliseconds); case DATE: { DateDatum dateDatum = (DateDatum) datum; TimeMeta tm = dateDatum.asTimeMeta(); tm.plusInterval(months, milliseconds); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } case TIME: { TimeMeta tm = datum.asTimeMeta(); tm.plusInterval(months, milliseconds); return new TimeDatum(DateTimeUtil.toTime(tm)); } case TIMESTAMP: { TimeMeta tm = new TimeMeta(); DateTimeUtil.toJulianTimeMeta(datum.asInt8(), tm); tm.plusInterval(months, milliseconds); return new TimestampDatum(DateTimeUtil.toJulianTimestamp(tm)); } default: throw new InvalidOperationException("operator does not exist: " + type() + " + " + datum.type()); } }
return new DateDatum(NumberUtil.toInt(bytes)); case TIME: return new TimeDatum(NumberUtil.toLong(bytes)); case TIMESTAMP: return new TimestampDatum(NumberUtil.toLong(bytes));
return new DateDatum(NumberUtil.toInt(bytes)); case TIME: return new TimeDatum(NumberUtil.toLong(bytes)); case TIMESTAMP: return new TimestampDatum(NumberUtil.toLong(bytes));