This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch fix_empty_bloom_filter_deserialization in repository https://gitbox.apache.org/repos/asf/tsfile.git
commit a68a7d4c00a480b6e98ad8e3ba77579fefd473f9 Author: Tian Jiang <[email protected]> AuthorDate: Fri Jan 3 18:44:34 2025 +0800 Fix the deserialization of empty bloom filters --- .../main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java | 6 +++++- .../java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java | 4 ++++ .../src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java index 379a9036..16f1da5d 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java @@ -221,7 +221,7 @@ public class TsFileMetadata { if (bloomFilter != null) { byteLen += serializeBloomFilter(outputStream, bloomFilter); } else { - byteLen += ReadWriteIOUtils.write(0, outputStream); + byteLen += ReadWriteForEncodingUtils.writeUnsignedVarInt(0, outputStream); } byteLen += @@ -284,4 +284,8 @@ public class TsFileMetadata { public Map<String, TableSchema> getTableSchemaMap() { return tableSchemaMap; } + + public Map<String, String> getTsFileProperties() { + return tsFileProperties; + } } diff --git a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java index cfac37e8..03e22e27 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/TsFileMetadataTest.java @@ -53,6 +53,10 @@ public class TsFileMetadataTest { @Test public void testWriteFileMetaData() { TsFileMetadata tsfMetaData = TestHelper.createSimpleFileMetaData(); + tsfMetaData.addProperty("encryptLevel", "0"); + tsfMetaData.addProperty("encryptType", "org.apache.tsfile.encrypt.UNENCRYPTED"); + tsfMetaData.addProperty("encryptKey", ""); + tsfMetaData.addProperty("d", "1"); serialized(tsfMetaData); TsFileMetadata readMetaData = deSerialized(); Assert.assertTrue(Utils.isFileMetaDataEqual(tsfMetaData, readMetaData)); diff --git a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java index 91c2cbf2..dc37e00f 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java @@ -25,6 +25,8 @@ import org.apache.tsfile.file.metadata.statistics.BooleanStatistics; import org.apache.tsfile.file.metadata.statistics.IntegerStatistics; import org.apache.tsfile.file.metadata.statistics.Statistics; +import java.util.Objects; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -58,7 +60,9 @@ public class Utils { metadata1.getTableMetadataIndexNode(TestHelper.TEST_TABLE_NAME); MetadataIndexNode metaDataIndex2 = metadata2.getTableMetadataIndexNode(TestHelper.TEST_TABLE_NAME); - return metaDataIndex1.getChildren().size() == metaDataIndex2.getChildren().size(); + + return Objects.equals(metadata1.getTsFileProperties(), metadata2.getTsFileProperties()) + && metaDataIndex1.getChildren().size() == metaDataIndex2.getChildren().size(); } } return false;
