This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch AlignedReaderSelfCheck in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit fc0b91689b6e5c85177b79e19daecb7a141f2dfc Author: JackieTien97 <[email protected]> AuthorDate: Tue Jan 18 15:26:26 2022 +0800 change self check --- .../java/org/apache/iotdb/tsfile/file/MetaMarker.java | 15 +++++++++++++++ .../apache/iotdb/tsfile/read/TsFileSequenceReader.java | 6 ++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/MetaMarker.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/MetaMarker.java index 2c45941..70d326d 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/MetaMarker.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/MetaMarker.java @@ -19,6 +19,8 @@ package org.apache.iotdb.tsfile.file; +import org.apache.iotdb.tsfile.common.constant.TsFileConstant; + import java.io.IOException; /** MetaMarker denotes the type of headers and footers. Enum is not used for space saving. */ @@ -44,6 +46,19 @@ public class MetaMarker { /** Chunk header marker and this chunk has only one page. */ public static final byte ONLY_ONE_PAGE_CHUNK_HEADER = 5; + /** Time Chunk header marker and this chunk has more than one page. */ + public static final byte TIME_CHUNK_HEADER = (byte) (CHUNK_HEADER | TsFileConstant.TIME_COLUMN_MASK); + + /** Value Chunk header marker and this chunk has more than one page. */ + public static final byte VALUE_CHUNK_HEADER = (byte) (CHUNK_HEADER | TsFileConstant.VALUE_COLUMN_MASK); + + /** Time Chunk header marker and this chunk has only one page. */ + public static final byte ONLY_ONE_PAGE_TIME_CHUNK_HEADER = (byte) (ONLY_ONE_PAGE_CHUNK_HEADER | TsFileConstant.TIME_COLUMN_MASK); + + /** Value Chunk header marker and this chunk has only one page. */ + public static final byte ONLY_ONE_PAGE_VALUE_CHUNK_HEADER = (byte) (ONLY_ONE_PAGE_CHUNK_HEADER | TsFileConstant.VALUE_COLUMN_MASK); + + private MetaMarker() {} public static void handleUnexpectedMarker(byte marker) throws IOException { diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java index bd42af8..c504174 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java @@ -1252,9 +1252,11 @@ public class TsFileSequenceReader implements AutoCloseable { while ((marker = this.readMarker()) != MetaMarker.SEPARATOR) { switch (marker) { case MetaMarker.CHUNK_HEADER: + case MetaMarker.TIME_CHUNK_HEADER: + case MetaMarker.VALUE_CHUNK_HEADER: case MetaMarker.ONLY_ONE_PAGE_CHUNK_HEADER: - case (byte) (MetaMarker.ONLY_ONE_PAGE_CHUNK_HEADER | 0x80): - case (byte) (MetaMarker.ONLY_ONE_PAGE_CHUNK_HEADER | 0x40): + case MetaMarker.ONLY_ONE_PAGE_TIME_CHUNK_HEADER: + case MetaMarker.ONLY_ONE_PAGE_VALUE_CHUNK_HEADER: fileOffsetOfChunk = this.position() - 1; // if there is something wrong with a chunk, we will drop the whole ChunkGroup // as different chunks may be created by the same insertions(sqls), and partial
