This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new b573ea82ba [common] Serialize BlobDescriptor with current version
(#7915)
b573ea82ba is described below
commit b573ea82bad5f0a5ca6e9a595a74fdffcc9e11b0
Author: YeJunHao <[email protected]>
AuthorDate: Wed May 20 19:26:02 2026 +0800
[common] Serialize BlobDescriptor with current version (#7915)
---
.../java/org/apache/paimon/data/BlobDescriptor.java | 2 +-
.../org/apache/paimon/data/BlobDescriptorTest.java | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git
a/paimon-common/src/main/java/org/apache/paimon/data/BlobDescriptor.java
b/paimon-common/src/main/java/org/apache/paimon/data/BlobDescriptor.java
index 2687083c62..671ac822a2 100644
--- a/paimon-common/src/main/java/org/apache/paimon/data/BlobDescriptor.java
+++ b/paimon-common/src/main/java/org/apache/paimon/data/BlobDescriptor.java
@@ -117,7 +117,7 @@ public class BlobDescriptor implements Serializable {
ByteBuffer buffer = ByteBuffer.allocate(totalSize);
buffer.order(ByteOrder.LITTLE_ENDIAN);
- buffer.put(version);
+ buffer.put(CURRENT_VERSION);
buffer.putLong(MAGIC);
buffer.putInt(uriLength);
buffer.put(uriBytes);
diff --git
a/paimon-common/src/test/java/org/apache/paimon/data/BlobDescriptorTest.java
b/paimon-common/src/test/java/org/apache/paimon/data/BlobDescriptorTest.java
index eaf9d3dea8..b25d603bf8 100644
--- a/paimon-common/src/test/java/org/apache/paimon/data/BlobDescriptorTest.java
+++ b/paimon-common/src/test/java/org/apache/paimon/data/BlobDescriptorTest.java
@@ -114,6 +114,24 @@ public class BlobDescriptorTest {
assertThat(blobDescriptor.length()).isEqualTo(200L);
}
+ @Test
+ public void testSerializeUsesCurrentVersion() throws Exception {
+ byte[] serializedV1 =
+ IOUtils.readFully(
+ BlobDescriptorTest.class
+ .getClassLoader()
+
.getResourceAsStream("compatible/blob_descriptor_v1"),
+ true);
+
+ BlobDescriptor blobDescriptor =
BlobDescriptor.deserialize(serializedV1);
+ byte[] serialized = blobDescriptor.serialize();
+
+ assertThat(serialized[0]).isEqualTo((byte) 2);
+ assertThat(BlobDescriptor.isBlobDescriptor(serialized)).isTrue();
+ assertThat(BlobDescriptor.deserialize(serialized))
+ .isEqualTo(new BlobDescriptor("/test/path", 100L, 200L));
+ }
+
private BlobDescriptor createDescriptorWithVersion(
byte version, String uri, long offset, long length) throws
Exception {
Constructor<BlobDescriptor> constructor =