From 976d1d854c12574ef880fbd8aa51c27bd14d0af0 Mon Sep 17 00:00:00 2001 From: zhang-arvin Date: Sat, 29 Aug 2026 20:18:20 +0800 Subject: [PATCH] [Bug] Add sequence-number fields to REST ContentFile serialization (#17319) Signed-off-by: zhang-arvin --- .../org/apache/iceberg/ContentFileParser.java | 69 ++++++++++++------- open-api/rest-catalog-open-api.yaml | 8 +++ 2 files changed, 51 insertions(+), 26 deletions(-) diff --git a/core/src/main/java/org/apache/iceberg/ContentFileParser.java b/core/src/main/java/org/apache/iceberg/ContentFileParser.java index 0499fef6d90a..d50a4194da9d 100644 --- a/core/src/main/java/org/apache/iceberg/ContentFileParser.java +++ b/core/src/main/java/org/apache/iceberg/ContentFileParser.java @@ -48,6 +48,8 @@ public class ContentFileParser { private static final String EQUALITY_IDS = "equality-ids"; private static final String SORT_ORDER_ID = "sort-order-id"; private static final String FIRST_ROW_ID = "first-row-id"; + private static final String DATA_SEQUENCE_NUMBER = "data-sequence-number"; + private static final String FILE_SEQUENCE_NUMBER = "file-sequence-number"; private static final String REFERENCED_DATA_FILE = "referenced-data-file"; private static final String CONTENT_OFFSET = "content-offset"; private static final String CONTENT_SIZE = "content-size-in-bytes"; @@ -123,6 +125,11 @@ public static void toJson(ContentFile contentFile, PartitionSpec spec, JsonGe JsonUtil.writeLongFieldIfPresent(FIRST_ROW_ID, contentFile.firstRowId(), generator); + JsonUtil.writeLongFieldIfPresent( + DATA_SEQUENCE_NUMBER, contentFile.dataSequenceNumber(), generator); + JsonUtil.writeLongFieldIfPresent( + FILE_SEQUENCE_NUMBER, contentFile.fileSequenceNumber(), generator); + if (contentFile instanceof DeleteFile) { DeleteFile deleteFile = (DeleteFile) contentFile; @@ -170,38 +177,48 @@ public static ContentFile fromJson(JsonNode jsonNode, Map