@Override public int compareTo(Datum datum) { if (datum.type() == TajoDataTypes.Type.PROTOBUF) { return value.equals(((ProtobufDatum)datum).get()) ? 0 : -1; } else { return -1; } }
@Override public void putProtoDatum(ProtobufDatum val) { putBlob(val.asByteArray()); }
public static ProtobufDatum createDatum(Message message) { return new ProtobufDatum(message); }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.PROTOBUF) { return value.equals(((ProtobufDatum)datum).get()) ? 0 : -1; } else { return -1; } }
public static ProtobufDatum createDatum(Message message) { return new ProtobufDatum(message); }
@Override public void putProtoDatum(ProtobufDatum val) { putBlob(val.asByteArray()); }
@Override public void merge(FunctionContext context, Tuple part) { ConcatContext concatCtx = (ConcatContext) context; if (part.isBlankOrNull(0)) { return; } ProtobufDatum datum = (ProtobufDatum) part.getProtobufDatum(0); StringAggProto proto = (StringAggProto) datum.get(); String delimiter = proto.getDelimiter(); String concatData = proto.getValue(); if (concatCtx.concatData.length() > 0) { concatCtx.concatData.append(delimiter); } concatCtx.concatData.append(concatData); }
@Override public Datum getPartialResult(FunctionContext ctx) { ConcatContext concatCtx = (ConcatContext) ctx; if (concatCtx.concatData.length() == 0) { return NullDatum.get(); } StringAggProto.Builder builder = StringAggProto.newBuilder(); builder.setDelimiter(concatCtx.delimiter); builder.setValue(concatCtx.concatData.toString()); return new ProtobufDatum(builder.build()); }
@Override public void putProtoDatum(ProtobufDatum val) { putBlob(val.asByteArray()); }
@Override public void merge(FunctionContext ctx, Tuple part) { AvgContext avgCtx = (AvgContext) ctx; if (part.isBlankOrNull(0)) { return; } ProtobufDatum datum = (ProtobufDatum) part.getProtobufDatum(0); AvgDoubleProto proto = (AvgDoubleProto) datum.get(); avgCtx.sum += proto.getSum(); avgCtx.count += proto.getCount(); }
@Override public Datum getPartialResult(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } AvgLongProto.Builder builder = AvgLongProto.newBuilder(); builder.setSum(avgCtx.sum); builder.setCount(avgCtx.count); return new ProtobufDatum(builder.build()); }
@Override public void putProtoDatum(ProtobufDatum val) { putBlob(val.asByteArray()); }
@Override public void merge(FunctionContext ctx, Tuple part) { AvgContext avgCtx = (AvgContext) ctx; if (part.isBlankOrNull(0)) { return; } ProtobufDatum datum = (ProtobufDatum) part.getProtobufDatum(0); AvgLongProto proto = (AvgLongProto) datum.get(); avgCtx.sum += proto.getSum(); avgCtx.count += proto.getCount(); }
@Override public Datum getPartialResult(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } AvgDoubleProto.Builder builder = AvgDoubleProto.newBuilder(); builder.setSum(avgCtx.sum); builder.setCount(avgCtx.count); return new ProtobufDatum(builder.build()); }
case PROTOBUF: ProtobufDatum protobufDatum = (ProtobufDatum) datum; bytes = protobufDatum.asByteArray(); length = bytes.length; out.write(bytes, 0, length);
@Override public void merge(FunctionContext ctx, Tuple part) { AvgContext avgCtx = (AvgContext) ctx; if (part.isBlankOrNull(0)) { return; } ProtobufDatum datum = (ProtobufDatum) part.getProtobufDatum(0); AvgLongProto proto = (AvgLongProto) datum.get(); avgCtx.sum += proto.getSum(); avgCtx.count += proto.getCount(); }
@Override public Datum getPartialResult(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } AvgLongProto.Builder builder = AvgLongProto.newBuilder(); builder.setSum(avgCtx.sum); builder.setCount(avgCtx.count); return new ProtobufDatum(builder.build()); }
case PROTOBUF: ProtobufDatum protobufDatum = (ProtobufDatum) tuple.getProtobufDatum(index); bytes = protobufDatum.asByteArray(); length = bytes.length; out.write(bytes, 0, length);
@Override public void merge(FunctionContext ctx, Tuple part) { AvgContext avgCtx = (AvgContext) ctx; if (part.isBlankOrNull(0)) { return; } ProtobufDatum datum = (ProtobufDatum) part.getProtobufDatum(0); AvgDoubleProto proto = (AvgDoubleProto) datum.get(); avgCtx.sum += proto.getSum(); avgCtx.count += proto.getCount(); }
@Override public Datum getPartialResult(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } AvgDoubleProto.Builder builder = AvgDoubleProto.newBuilder(); builder.setSum(avgCtx.sum); builder.setCount(avgCtx.count); return new ProtobufDatum(builder.build()); }