@Override public JsonElement serialize(Datum src, Type typeOfSrc, JsonSerializationContext context) { JsonObject jsonObj = new JsonObject(); jsonObj.addProperty("type", TypeStringEncoder.encode(src.type())); switch (src.kind()) { case DATE: jsonObj.addProperty("value", src.asInt4()); break; case TIME: jsonObj.addProperty("value", src.asInt8()); break; case TIMESTAMP: jsonObj.addProperty("value", src.asInt8()); break; case INTERVAL: IntervalDatum interval = (IntervalDatum)src; jsonObj.addProperty("value", interval.getMonths() + "," + interval.getMilliSeconds()); break; case ANY: jsonObj.add("actual", serialize(((AnyDatum) src).getActual(), typeOfSrc, context)); break; default: jsonObj.add("body", context.serialize(src)); } return jsonObj; } }
@Override public JsonElement serialize(Datum src, Type typeOfSrc, JsonSerializationContext context) { JsonObject jsonObj = new JsonObject(); jsonObj.addProperty("type", src.type().name()); switch (src.type()) { case DATE: jsonObj.addProperty("value", src.asInt4()); break; case TIME: jsonObj.addProperty("value", src.asInt8()); break; case TIMESTAMP: jsonObj.addProperty("value", src.asInt8()); break; case INTERVAL: IntervalDatum interval = (IntervalDatum)src; jsonObj.addProperty("value", interval.getMonths() + "," + interval.getMilliSeconds()); break; case ANY: jsonObj.add("actual", serialize(((AnyDatum) src).getActual(), typeOfSrc, context)); break; default: jsonObj.add("body", context.serialize(src)); } return jsonObj; } }
IntervalDatum interval = (IntervalDatum) tuple.getInterval(i); bb.putInt(interval.getMonths()); bb.putLong(interval.getMilliSeconds()); break; case BLOB:
@Override public void putInterval(IntervalDatum val) { ensureSize(SizeOf.SIZE_OF_INT + SizeOf.SIZE_OF_LONG); long addr = currentAddr(); PlatformDependent.putInt(addr, val.getMonths()); PlatformDependent.putLong(addr + SizeOf.SIZE_OF_INT, val.getMilliSeconds()); putFieldHeader(addr, curOffset); forwardField(SizeOf.SIZE_OF_INT + SizeOf.SIZE_OF_LONG); }
@Override public void putInterval(IntervalDatum val) { ensureSize(SizeOf.SIZE_OF_INT + SizeOf.SIZE_OF_LONG); long addr = currentAddr(); PlatformDependent.putInt(addr, val.getMonths()); PlatformDependent.putLong(addr + SizeOf.SIZE_OF_INT, val.getMilliSeconds()); putFieldHeader(addr, curOffset); forwardField(SizeOf.SIZE_OF_INT + SizeOf.SIZE_OF_LONG); }
@Override public void putInterval(IntervalDatum val) { ensureSize(MAXIMUM_VARIANT_INT32 + MAXIMUM_VARIANT_INT64); long addr = currentAddr(); short length = writeRawVarint32(addr, encodeZigZag32(val.getMonths())); length += writeRawVarint64(addr, encodeZigZag64(val.getMilliSeconds())); curFieldIdx++; forwardField(length); }
IntervalDatum interval = (IntervalDatum) tuple.get(i); bb.putInt(interval.getMonths()); bb.putLong(interval.getMilliSeconds()); break; case BLOB:
@Override public void putInterval(IntervalDatum val) { ensureSize(MAXIMUM_VARIANT_INT32 + MAXIMUM_VARIANT_INT64); long addr = currentAddr(); short length = writeRawVarint32(addr, encodeZigZag32(val.getMonths())); length += writeRawVarint64(addr, encodeZigZag64(val.getMilliSeconds())); curFieldIdx++; forwardField(length); }
@Override public Datum multiply(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 INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum((int)(interval.getMonths() * val), (long)(interval.getMilliSeconds() * val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createFloat8(val * datum.asInt2()); case INT4: return DatumFactory.createFloat8(val * datum.asInt4()); case INT8: return DatumFactory.createFloat8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat8(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum((int)(interval.getMonths() * val), (long)(interval.getMilliSeconds() * val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(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 INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum((int)(interval.getMonths() * val), (long)(interval.getMilliSeconds() * val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createInt4(val * datum.asInt2()); case INT4: return DatumFactory.createInt4(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum(interval.getMonths() * val, interval.getMilliSeconds() * val); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createInt4(val * datum.asInt2()); case INT4: return DatumFactory.createInt4(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum(interval.getMonths() * val, interval.getMilliSeconds() * val); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createInt4(val * datum.asInt2()); case INT4: return DatumFactory.createInt4(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum(interval.getMonths() * val, interval.getMilliSeconds() * val); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createFloat8(val * datum.asInt2()); case INT4: return DatumFactory.createFloat8(val * datum.asInt4()); case INT8: return DatumFactory.createFloat8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat8(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum((int)(interval.getMonths() * val), (long)(interval.getMilliSeconds() * val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createInt4(val * datum.asInt2()); case INT4: return DatumFactory.createInt4(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat4(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; return new IntervalDatum(interval.getMonths() * val, interval.getMilliSeconds() * val); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.type()) { case INT2: return DatumFactory.createInt8(val * datum.asInt2()); case INT4: return DatumFactory.createInt8(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat8(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; int intVal = asInt4(); return new IntervalDatum(interval.getMonths() * intVal, interval.getMilliSeconds() * asInt8()); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum multiply(Datum datum) { switch (datum.kind()) { case INT2: return DatumFactory.createInt8(val * datum.asInt2()); case INT4: return DatumFactory.createInt8(val * datum.asInt4()); case INT8: return DatumFactory.createInt8(val * datum.asInt8()); case FLOAT4: return DatumFactory.createFloat8(val * datum.asFloat4()); case FLOAT8: return DatumFactory.createFloat8(val * datum.asFloat8()); case INTERVAL: IntervalDatum interval = (IntervalDatum)datum; int intVal = asInt4(); return new IntervalDatum(interval.getMonths() * intVal, interval.getMilliSeconds() * asInt8()); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
PlanProto.Interval.Builder intervalBuilder = PlanProto.Interval.newBuilder(); intervalBuilder.setMonth(interval.getMonths()); intervalBuilder.setMsec(interval.getMilliSeconds()); builder.setInterval(intervalBuilder); break;
PlanProto.Interval.Builder intervalBuilder = PlanProto.Interval.newBuilder(); intervalBuilder.setMonth(interval.getMonths()); intervalBuilder.setMsec(interval.getMilliSeconds()); builder.setInterval(intervalBuilder); break;