From 1f6f5c270af3ac89c5997c16b4803737c66e78a1 Mon Sep 17 00:00:00 2001 From: v-zhangjc9 Date: Mon, 3 Jun 2024 15:51:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(patch):=20=E9=80=82=E9=85=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=AE=B0=E5=BD=95latest=5Fop=5Fts=E7=9A=84=E6=94=B9?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/TraceEventTimeAvroPayload.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java b/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java index e6819b3..a299731 100644 --- a/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java +++ b/utils/patch/src/main/java/org/apache/hudi/common/model/TraceEventTimeAvroPayload.java @@ -22,36 +22,30 @@ import org.slf4j.LoggerFactory; public class TraceEventTimeAvroPayload extends EventTimeAvroPayload { private static final Logger logger = LoggerFactory.getLogger(TraceEventTimeAvroPayload.class); - private final String latestOpts; + private final Map metadata = new HashMap<>(); public TraceEventTimeAvroPayload(GenericRecord record, Comparable orderingVal) { super(record, orderingVal); - this.latestOpts = updateLatestOpts(Option.ofNullable(record)); + updateLatestOpts(Option.ofNullable(record)); } public TraceEventTimeAvroPayload(Option record) { super(record); - this.latestOpts = updateLatestOpts(record); + updateLatestOpts(record); } - private String updateLatestOpts(Option record) { + private void updateLatestOpts(Option record) { try { - return record + record .map(r -> ((Utf8) r.get(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME)).toString()) - .orElse(null); + .ifPresent(latestOpts -> metadata.put(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME, latestOpts)); } catch (Throwable throwable) { logger.error("Get latest opts failure", throwable); } - return null; } @Override public Option> getMetadata() { - if (this.latestOpts == null) { - return Option.empty(); - } - Map metadata = super.getMetadata().orElse(new HashMap<>()); - metadata.put(Constants.LATEST_OPERATION_TIMESTAMP_KEY_NAME, this.latestOpts); return Option.of(metadata); } }