You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/09/21 01:13:16 UTC
[iotdb] 01/01: AlignedChunkReader should uncompress value page by the compress type in chunkHeader (#7368)
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch alignedchunkreader
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2a0e2b9317148f85c30992dd13d2a41108479f68
Author: Haonan <hh...@outlook.com>
AuthorDate: Wed Sep 21 08:59:09 2022 +0800
AlignedChunkReader should uncompress value page by the compress type in chunkHeader (#7368)
---
.../tsfile/read/reader/chunk/AlignedChunkReader.java | 1 +
.../apache/iotdb/tsfile/utils/TsFileGeneratorForTest.java | 15 +++++++++------
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/AlignedChunkReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/AlignedChunkReader.java
index db8b3ff6c5..3dcec665fe 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/AlignedChunkReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/AlignedChunkReader.java
@@ -248,6 +248,7 @@ public class AlignedChunkReader implements IChunkReader {
Decoder.getDecoderByType(chunkHeader.getEncodingType(), chunkHeader.getDataType());
byte[] uncompressedPageData = new byte[pageHeader.getUncompressedSize()];
try {
+ IUnCompressor unCompressor = IUnCompressor.getUnCompressor(chunkHeader.getCompressionType());
unCompressor.uncompress(
compressedPageBody, 0, compressedPageBodyLength, uncompressedPageData, 0);
} catch (Exception e) {
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/TsFileGeneratorForTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/TsFileGeneratorForTest.java
index 486131ffad..713299790f 100755
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/TsFileGeneratorForTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/TsFileGeneratorForTest.java
@@ -287,19 +287,22 @@ public class TsFileGeneratorForTest {
// register align timeseries
List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
alignedMeasurementSchemas.add(
- new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN));
+ new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.LZ4));
alignedMeasurementSchemas.add(
- new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN));
+ new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.SNAPPY));
alignedMeasurementSchemas.add(
- new MeasurementSchema("s3", TSDataType.INT64, TSEncoding.PLAIN));
+ new MeasurementSchema("s3", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.GZIP));
alignedMeasurementSchemas.add(new MeasurementSchema("s4", TSDataType.INT64, TSEncoding.RLE));
tsFileWriter.registerAlignedTimeseries(new Path("d1"), alignedMeasurementSchemas);
// register nonAlign timeseries
List<MeasurementSchema> measurementSchemas = new ArrayList<>();
- measurementSchemas.add(new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN));
- measurementSchemas.add(new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN));
- measurementSchemas.add(new MeasurementSchema("s3", TSDataType.INT64, TSEncoding.PLAIN));
+ measurementSchemas.add(
+ new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.LZ4));
+ measurementSchemas.add(
+ new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema("s3", TSDataType.INT64, TSEncoding.PLAIN, CompressionType.SNAPPY));
tsFileWriter.registerTimeseries(new Path("d2"), measurementSchemas);
TsFileGeneratorUtils.writeWithTsRecord(