This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch object_type in repository https://gitbox.apache.org/repos/asf/tsfile.git
commit 92f922d73231a8c701ff82c5633264224433f55c Merge: 15201a9d cad87cb1 Author: HTHou <[email protected]> AuthorDate: Wed Oct 29 11:48:29 2025 +0800 Merge branch 'develop' of github.com:apache/tsfile into object_type .github/workflows/code-coverage.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/greetings.yml | 2 +- .github/workflows/site-build.yaml | 4 +- .github/workflows/unit-test-cpp.yml | 2 +- .github/workflows/unit-test-java.yml | 4 +- .github/workflows/unit-test-python.yml | 2 +- LICENSE | 42 + README-zh.md | 2 +- README.md | 2 +- RELEASE_NOTES.md | 30 + cpp/CMakeLists.txt | 2 +- cpp/README-zh.md | 2 +- cpp/README.md | 2 +- cpp/examples/c_examples/demo_write.c | 8 + cpp/pom.xml | 2 +- cpp/src/common/allocator/byte_stream.h | 72 + cpp/src/common/allocator/my_string.h | 8 +- cpp/src/common/container/byte_buffer.h | 2 + cpp/src/common/datatype/date_converter.h | 1 + cpp/src/common/db_common.h | 1 + cpp/src/common/global.cc | 2 +- cpp/src/common/global.h | 102 +- cpp/src/common/tablet.cc | 12 +- cpp/src/cwrapper/tsfile_cwrapper.cc | 30 + cpp/src/cwrapper/tsfile_cwrapper.h | 74 ++ cpp/src/encoding/decoder.h | 2 +- cpp/src/encoding/decoder_factory.h | 138 +- cpp/src/encoding/dictionary_decoder.h | 34 +- cpp/src/encoding/dictionary_encoder.h | 52 +- cpp/src/encoding/double_sprintz_decoder.h | 223 ++++ cpp/src/encoding/double_sprintz_encoder.h | 175 +++ cpp/src/encoding/encode_utils.h | 18 + cpp/src/encoding/encoder_factory.h | 159 ++- cpp/src/encoding/fire.h | 106 ++ cpp/src/encoding/float_sprintz_decoder.h | 236 ++++ cpp/src/encoding/float_sprintz_encoder.h | 174 +++ cpp/src/encoding/gorilla_decoder.h | 12 +- cpp/src/encoding/gorilla_encoder.h | 2 +- cpp/src/encoding/{intpacker.h => int32_packer.h} | 42 +- .../{bitpack_decoder.h => int32_rle_decoder.h} | 116 +- .../{bitpack_encoder.h => int32_rle_encoder.h} | 89 +- cpp/src/encoding/int32_sprintz_decoder.h | 195 +++ cpp/src/encoding/int32_sprintz_encoder.h | 190 +++ cpp/src/encoding/{intpacker.h => int64_packer.h} | 71 +- .../{bitpack_decoder.h => int64_rle_decoder.h} | 70 +- .../{bitpack_encoder.h => int64_rle_encoder.h} | 83 +- cpp/src/encoding/int64_sprintz_decoder.h | 196 +++ cpp/src/encoding/int64_sprintz_encoder.h | 190 +++ cpp/src/encoding/plain_decoder.h | 5 +- cpp/src/encoding/sprintz_decoder.h | 70 + cpp/src/encoding/sprintz_encoder.h | 69 + cpp/src/encoding/ts2diff_decoder.h | 5 +- cpp/src/encoding/zigzag_decoder.h | 52 +- cpp/src/encoding/zigzag_encoder.h | 86 +- cpp/src/reader/aligned_chunk_reader.cc | 13 +- cpp/src/reader/aligned_chunk_reader.h | 4 +- cpp/src/reader/chunk_reader.cc | 13 +- cpp/src/reader/chunk_reader.h | 2 +- cpp/src/reader/qds_without_timegenerator.cc | 5 +- cpp/src/utils/errno_define.h | 2 + cpp/test/common/allocator/byte_stream_test.cc | 32 + cpp/test/encoding/bitpack_codec_test.cc | 289 ---- cpp/test/encoding/dictionary_codec_test.cc | 82 +- cpp/test/encoding/gorilla_codec_test.cc | 100 ++ cpp/test/encoding/inpacker_test.cc | 57 - cpp/test/encoding/int32_packer_test.cc | 194 +++ cpp/test/encoding/int32_rle_codec_test.cc | 167 +++ cpp/test/encoding/int64_packer_test.cc | 250 ++++ cpp/test/encoding/int64_rle_codec_test.cc | 133 ++ cpp/test/encoding/sprintz_codec_test.cc | 387 ++++++ .../reader/table_view/tsfile_reader_table_test.cc | 2 - .../writer/table_view/tsfile_writer_table_test.cc | 224 ++++ doap_tsfile.rdf | 18 + java/common/pom.xml | 2 +- .../java/org/apache/tsfile/enums/TSDataType.java | 98 +- .../main/java/org/apache/tsfile/utils/Binary.java | 3 + .../main/java/org/apache/tsfile/utils/BitMap.java | 113 +- .../org/apache/tsfile/utils/RamUsageEstimator.java | 74 +- java/examples/pom.xml | 4 +- java/examples/readme.md | 2 +- .../org/apache/tsfile/v4/TagFilterExample.java | 206 +++ .../apache/tsfile/v4/TsFileTreeReaderExample.java | 181 +++ java/pom.xml | 14 +- java/tools/pom.xml | 14 +- .../java/org/apache/tsfile/tools/TsFileTool.java | 5 +- .../org/apache/tsfile/tools/TsfiletoolsTest.java | 2 +- java/tsfile/README-zh.md | 6 +- java/tsfile/README.md | 6 +- java/tsfile/pom.xml | 61 +- .../src/main/codegen/dataModel/AllFilter.tdd | 5 + .../codegen/templates/FilterOperatorsTemplate.ftl | 512 +++++-- .../src/main/codegen/templates/FilterTemplate.ftl | 7 + .../tsfile/common/bitStream/BitInputStream.java | 264 ++++ .../tsfile/common/bitStream/BitOutputStream.java | 196 +++ .../bitStream/BitStream.java} | 23 +- .../bitStream/ByteBufferBackedInputStream.java} | 33 +- .../apache/tsfile/common/conf/TSFileConfig.java | 15 +- .../tsfile/encoding/decoder/CamelDecoder.java | 269 ++++ .../apache/tsfile/encoding/decoder/Decoder.java | 7 + .../tsfile/encoding/encoder/CamelEncoder.java | 297 +++++ .../tsfile/encoding/encoder/TSEncodingBuilder.java | 64 +- .../org/apache/tsfile/encrypt/EncryptUtils.java | 101 +- .../exception/read/FileVersionTooOldException.java | 6 +- .../tsfile/external/commons/codec/binary/Hex.java | 118 ++ .../codec/binary/MessageDigestAlgorithms.java | 52 + .../external/commons/codec/binary/StringUtils.java | 54 + .../external/commons/codec/digest/DigestUtils.java | 141 ++ .../external/commons/collections4/BoundedMap.java | 44 + .../commons/collections4/CollectionUtils.java | 52 + .../tsfile/external/commons/collections4/Get.java | 91 ++ .../external/commons/collections4/IterableGet.java | 47 + .../external/commons/collections4/IterableMap.java | 43 + .../external/commons/collections4/KeyValue.java | 44 + .../external/commons/collections4/MapIterator.java | 110 ++ .../external/commons/collections4/MapUtils.java | 39 + .../commons/collections4/OrderedIterator.java | 46 + .../external/commons/collections4/OrderedMap.java | 70 + .../commons/collections4/OrderedMapIterator.java | 46 + .../tsfile/external/commons/collections4/Put.java | 60 + .../commons/collections4/ResettableIterator.java | 33 + .../collections4/comparators/ComparatorChain.java | 197 +++ .../iterators/AbstractEmptyIterator.java | 56 + .../iterators/AbstractEmptyMapIterator.java | 44 + .../collections4/iterators/EmptyIterator.java | 74 ++ .../collections4/iterators/EmptyMapIterator.java | 55 + .../iterators/EmptyOrderedIterator.java | 53 + .../iterators/EmptyOrderedMapIterator.java | 55 + .../collections4/map/AbstractHashedMap.java | 1394 ++++++++++++++++++++ .../collections4/map/AbstractLinkedMap.java | 610 +++++++++ .../external/commons/collections4/map/LRUMap.java | 573 ++++++++ .../tsfile/external/commons/io/Charsets.java | 211 +++ .../external/commons/io/FileExistsException.java | 40 + .../tsfile/external/commons/io/FileUtils.java | 928 +++++++++++++ .../tsfile/external/commons/io/FilenameUtils.java | 290 ++++ .../apache/tsfile/external/commons/io/IOCase.java | 247 ++++ .../external/commons/io/IOExceptionList.java | 140 ++ .../external/commons/io/IOIndexedException.java | 68 + .../apache/tsfile/external/commons/io/IOUtils.java | 558 ++++++++ .../external/commons/io/RandomAccessFileMode.java | 96 ++ .../external/commons/io/RandomAccessFiles.java | 46 + .../external/commons/io/build/AbstractOrigin.java | 484 +++++++ .../commons/io/build/AbstractOriginSupplier.java | 276 ++++ .../commons/io/build/AbstractStreamBuilder.java | 177 +++ .../commons/io/build/AbstractSupplier.java | 41 + .../commons/io/charset/CharsetDecoders.java | 44 + .../commons/io/charset/CharsetEncoders.java | 58 + .../tsfile/external/commons/io/file/Counters.java | 419 ++++++ .../commons/io/file/CountingPathVisitor.java | 155 +++ .../external/commons/io/file/DeleteOption.java | 30 + .../commons/io/file/DeletingPathVisitor.java | 157 +++ .../external/commons/io/file/PathFilter.java | 40 + .../tsfile/external/commons/io/file/PathUtils.java | 532 ++++++++ .../external/commons/io/file/PathVisitor.java | 30 + .../commons/io/file/SimplePathVisitor.java | 46 + .../commons/io/file/StandardDeleteOption.java | 51 + .../commons/io/filefilter/AbstractFileFilter.java | 177 +++ .../commons/io/filefilter/AndFileFilter.java | 131 ++ .../io/filefilter/ConditionalFileFilter.java | 33 + .../commons/io/filefilter/FalseFileFilter.java | 109 ++ .../commons/io/filefilter/FileFileFilter.java | 111 ++ .../commons/io/filefilter/IOFileFilter.java | 109 ++ .../commons/io/filefilter/NotFileFilter.java | 104 ++ .../commons/io/filefilter/OrFileFilter.java | 162 +++ .../commons/io/filefilter/SuffixFileFilter.java | 163 +++ .../io/filefilter/SymbolicLinkFileFilter.java | 141 ++ .../commons/io/filefilter/TrueFileFilter.java | 109 ++ .../external/commons/io/function/Constants.java | 60 + .../tsfile/external/commons/io/function/Erase.java | 191 +++ .../external/commons/io/function/IOBaseStream.java | 141 ++ .../commons/io/function/IOBaseStreamAdapter.java | 50 + .../external/commons/io/function/IOBiConsumer.java | 55 + .../external/commons/io/function/IOBiFunction.java | 65 + .../commons/io/function/IOBinaryOperator.java | 32 + .../external/commons/io/function/IOComparator.java | 58 + .../external/commons/io/function/IOConsumer.java | 145 ++ .../external/commons/io/function/IOFunction.java | 41 + .../commons/io/function/IOIntSupplier.java | 38 + .../external/commons/io/function/IOIterator.java | 78 ++ .../commons/io/function/IOIteratorAdapter.java | 55 + .../external/commons/io/function/IOPredicate.java | 79 ++ .../commons/io/function/IOQuadFunction.java | 51 + .../external/commons/io/function/IORunnable.java | 36 + .../commons/io/function/IOSpliterator.java | 135 ++ .../commons/io/function/IOSpliteratorAdapter.java | 44 + .../external/commons/io/function/IOStream.java | 633 +++++++++ .../commons/io/function/IOStreamAdapter.java | 44 + .../external/commons/io/function/IOStreams.java | 91 ++ .../external/commons/io/function/IOSupplier.java | 54 + .../commons/io/function/IOTriConsumer.java | 44 + .../commons/io/function/IOTriFunction.java | 49 + .../commons/io/function/IOUnaryOperator.java | 32 + .../external/commons/io/function/Uncheck.java | 310 +++++ .../commons/io/function/UncheckedIOIterator.java | 60 + .../commons/io/input/ClosedInputStream.java | 58 + .../commons/io/input/ReaderInputStream.java | 427 ++++++ .../input/UnsynchronizedByteArrayInputStream.java | 276 ++++ .../io/output/AbstractByteArrayOutputStream.java | 394 ++++++ .../commons/io/output/ByteArrayOutputStream.java | 104 ++ .../commons/io/output/NullOutputStream.java | 86 ++ .../commons/io/output/StringBuilderWriter.java | 140 ++ .../io/output/ThresholdingOutputStream.java | 210 +++ .../UnsynchronizedByteArrayOutputStream.java | 172 +++ .../commons/io/output/WriterOutputStream.java | 479 +++++++ .../commons/lang3/ArrayFill.java} | 26 +- .../tsfile/external/commons/lang3/ArrayUtils.java | 477 +++++++ .../external/commons/lang3/CharSequenceUtils.java | 163 +++ .../tsfile/external/commons/lang3/ClassUtils.java | 34 + .../commons/lang3/NotImplementedException.java | 143 ++ .../tsfile/external/commons/lang3/ObjectUtils.java | 172 +++ .../tsfile/external/commons/lang3/StringUtils.java | 679 ++++++++++ .../tsfile/external/commons/lang3/Strings.java | 464 +++++++ .../external/commons/lang3/SystemProperties.java | 94 ++ .../tsfile/external/commons/lang3/SystemUtils.java | 144 ++ .../tsfile/external/commons/lang3/Validate.java | 150 +++ .../commons/lang3/builder/HashCodeBuilder.java | 109 ++ .../commons/lang3/exception/ExceptionUtils.java | 70 + .../commons/lang3/function/FailableBiConsumer.java | 78 ++ .../commons/lang3/function/FailableBiFunction.java | 77 ++ .../commons/lang3/function/FailableFunction.java | 114 ++ .../external/commons/lang3/function/Suppliers.java | 71 + .../commons/lang3/function/TriFunction.java | 65 + .../external/commons/lang3/math/NumberUtils.java | 153 +++ .../commons/lang3/stream/LangCollectors.java | 115 ++ .../external/commons/lang3/stream/Streams.java | 56 + .../commons/lang3/tuple/ImmutablePair.java | 204 +++ .../commons/lang3/tuple/ImmutableTriple.java | 168 +++ .../tsfile/external/commons/lang3/tuple/Pair.java | 264 ++++ .../external/commons/lang3/tuple/Triple.java | 205 +++ .../tsfile/file/metadata/ColumnSchemaBuilder.java | 15 + .../tsfile/file/metadata/StringArrayDeviceID.java | 10 +- .../apache/tsfile/file/metadata/TableSchema.java | 9 + .../tsfile/file/metadata/TsFileMetadata.java | 36 +- .../tsfile/file/metadata/enums/TSEncoding.java | 11 +- .../file/metadata/statistics/DoubleStatistics.java | 10 + .../file/metadata/statistics/FloatStatistics.java | 10 + .../metadata/statistics/IntegerStatistics.java | 10 + .../file/metadata/statistics/Statistics.java | 63 +- .../fileSystem/fsFactory/LocalFSFactory.java | 2 +- .../apache/tsfile/read/TsFileDeviceIterator.java | 12 + .../java/org/apache/tsfile/read/TsFileReader.java | 23 + .../apache/tsfile/read/TsFileRestorableReader.java | 30 +- .../apache/tsfile/read/TsFileSequenceReader.java | 123 +- ...leSequenceReaderTimeseriesMetadataIterator.java | 4 +- .../apache/tsfile/read/UnClosedTsFileReader.java | 20 +- .../java/org/apache/tsfile/read/common/Path.java | 5 +- .../common/block/column/BinaryColumnBuilder.java | 30 + .../read/common/block/column/DictionaryColumn.java | 6 +- .../tsfile/read/common/parser/PathVisitor.java | 3 +- .../tsfile/read/common/type/UnknownType.java | 2 +- .../tsfile/read/controller/DeviceMetaIterator.java | 12 +- .../tsfile/read/controller/IMetadataQuerier.java | 4 +- .../read/controller/MetadataQuerierByFileImpl.java | 6 +- .../apache/tsfile/read/filter/basic/Filter.java | 28 + .../tsfile/read/filter/basic/OperatorType.java | 16 +- .../tsfile/read/filter/basic/TimeFilter.java | 7 +- .../tsfile/read/filter/basic/ValueFilter.java | 7 +- .../read/filter/factory/TagFilterBuilder.java | 131 ++ .../tsfile/read/filter/factory/TimeFilterApi.java | 38 + .../tsfile/read/filter/factory/ValueFilterApi.java | 131 +- .../apache/tsfile/read/filter/operator/And.java | 5 + .../operator/ExtractTimeFilterOperators.java | 632 +++++++++ .../operator/ExtractValueFilterOperators.java | 341 +++++ .../read/filter/operator/GroupByMonthFilter.java | 11 + .../apache/tsfile/read/filter/operator/Not.java | 5 + .../org/apache/tsfile/read/filter/operator/Or.java | 5 + .../tsfile/read/query/dataset/ResultSet.java | 7 +- .../tsfile/read/query/dataset/TableResultSet.java | 100 +- .../tsfile/read/query/dataset/TreeResultSet.java | 123 +- .../read/query/executor/TableQueryExecutor.java | 7 +- .../query/executor/task/DeviceTaskIterator.java | 6 +- .../org/apache/tsfile/read/reader/IPageReader.java | 2 + .../reader/page/AbstractAlignedPageReader.java | 5 + .../apache/tsfile/read/reader/page/PageReader.java | 5 + .../tsfile/read/reader/page/ValuePageReader.java | 41 +- .../tsfile/read/v4/DeviceTableModelReader.java | 12 +- .../org/apache/tsfile/read/v4/ITsFileReader.java | 6 + .../{ITsFileReader.java => ITsFileTreeReader.java} | 30 +- .../apache/tsfile/read/v4/TsFileTreeReader.java | 127 ++ .../v4/TsFileTreeReaderBuilder.java} | 29 +- .../main/java/org/apache/tsfile/utils/Pair.java | 1 + .../org/apache/tsfile/utils/ReadWriteIOUtils.java | 23 + .../java/org/apache/tsfile/write/TsFileWriter.java | 147 ++- .../write/chunk/AlignedChunkGroupWriterImpl.java | 9 +- .../org/apache/tsfile/write/record/TSRecord.java | 45 +- .../org/apache/tsfile/write/record/Tablet.java | 174 ++- .../tsfile/write/record/datapoint/DataPoint.java | 11 + .../tsfile/write/schema/MeasurementSchema.java | 5 +- .../write/schema/MeasurementSchemaBuilder.java | 135 ++ .../write/v4/AbstractTableModelTsFileWriter.java | 93 +- .../tsfile/write/v4/DeviceTableModelWriter.java | 49 + .../org/apache/tsfile/write/v4/ITsFileWriter.java | 4 + .../apache/tsfile/write/v4/TsFileTreeWriter.java | 129 ++ .../tsfile/write/v4/TsFileTreeWriterBuilder.java | 68 + .../tsfile/write/v4/TsFileWriterBuilder.java | 3 +- .../write/writer/ForceAppendTsFileWriter.java | 14 +- .../write/writer/RestorableTsFileIOWriter.java | 34 +- .../apache/tsfile/write/writer/TsFileIOWriter.java | 87 +- .../tsfile/common/bitStream/TestBitStream.java | 346 +++++ .../tsfile/encoding/decoder/CamelDecoderTest.java | 281 ++++ .../encoding/encoder/TSEncodingBuilderTest.java | 65 + .../apache/tsfile/read/TsFileTreeReaderTest.java | 190 +++ .../read/TsFileV4ReadWriteInterfacesTest.java | 102 ++ .../tsfile/read/filter/ExtractTimeFilterTest.java | 436 ++++++ .../tsfile/read/filter/ExtractValueFilterTest.java | 116 ++ .../apache/tsfile/read/query/ResultSetTest.java | 369 ++++++ .../TsFileGeneratorForSeriesReaderByTimestamp.java | 10 +- .../read/reader/chunk/TableChunkReaderTest.java | 2 +- .../apache/tsfile/tableview/PerformanceTest.java | 468 ++++--- .../org/apache/tsfile/tableview/TableViewTest.java | 2 +- .../java/org/apache/tsfile/utils/BitMapTest.java | 109 ++ .../org/apache/tsfile/utils/FilePathUtilsTest.java | 6 +- .../utils/{FileUtils.java => FileTestUtils.java} | 2 +- .../{FileUtilsTest.java => FileTestUtilsTest.java} | 26 +- .../org/apache/tsfile/utils/TsFileUtilsTest.java | 6 +- .../java/org/apache/tsfile/utils/TypeCastTest.java | 81 +- .../apache/tsfile/write/TsFileReadWriteTest.java | 13 +- .../apache/tsfile/write/TsFileWriteApiTest.java | 209 +++ .../org/apache/tsfile/write/record/TabletTest.java | 314 +++++ .../writer/TsFileIOWriterMemoryControlTest.java | 2 +- pom.xml | 2 +- python/README.md | 2 +- python/pom.xml | 2 +- 323 files changed, 32915 insertions(+), 1454 deletions(-) diff --cc java/common/src/main/java/org/apache/tsfile/enums/TSDataType.java index 9c2c1ba3,492d1bab..1dc768c5 --- a/java/common/src/main/java/org/apache/tsfile/enums/TSDataType.java +++ b/java/common/src/main/java/org/apache/tsfile/enums/TSDataType.java @@@ -122,9 -129,16 +132,18 @@@ public enum TSDataType Set<TSDataType> stringCompatibleTypes = new HashSet<>(); stringCompatibleTypes.add(TEXT); + // add + stringCompatibleTypes.add(INT32); + stringCompatibleTypes.add(INT64); + stringCompatibleTypes.add(FLOAT); + stringCompatibleTypes.add(DOUBLE); + stringCompatibleTypes.add(BOOLEAN); + stringCompatibleTypes.add(BLOB); + stringCompatibleTypes.add(DATE); + stringCompatibleTypes.add(TIMESTAMP); compatibleTypes.put(STRING, stringCompatibleTypes); + + compatibleTypes.put(OBJECT, Collections.emptySet()); } TSDataType(byte type) { @@@ -507,10 -565,10 +587,14 @@@ } public boolean isBinary() { - return this == TEXT || this == STRING || this == BLOB; + return this == TEXT || this == STRING || this == BLOB || this == OBJECT; + } + + public boolean isBlob() { + return this == BLOB || this == OBJECT; } + + public static String getDateStringValue(int value) { + return String.format("%04d-%02d-%02d", value / 10000, (value % 10000) / 100, value % 100); + } } diff --cc java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java index bd83857a,c984b422..8336d2b7 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java @@@ -668,11 -660,10 +674,11 @@@ public class Tablet case TEXT: case STRING: case BLOB: + case OBJECT: - valueColumn = new Binary[maxRowNumber]; + valueColumn = new Binary[capacity]; break; case DATE: - valueColumn = new LocalDate[maxRowNumber]; + valueColumn = new LocalDate[capacity]; break; default: throw new UnSupportedDataTypeException(String.format(NOT_SUPPORT_DATATYPE, dataType)); diff --cc java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java index 341324eb,260d4264..2df52df5 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java @@@ -86,19 -82,19 +83,37 @@@ abstract class AbstractTableModelTsFile @TsFileApi protected AbstractTableModelTsFileWriter(File file, long chunkGroupSizeThreshold) throws IOException { - this(new TsFileIOWriter(file), chunkGroupSizeThreshold); + this( - file, ++ new TsFileIOWriter(file), + chunkGroupSizeThreshold, + new EncryptParameter(config.getEncryptType(), config.getEncryptKey())); } + @TsFileApi + protected AbstractTableModelTsFileWriter( + File file, long chunkGroupSizeThreshold, EncryptParameter firstEncryptParam) + throws IOException { ++ this(new TsFileIOWriter(file), chunkGroupSizeThreshold, firstEncryptParam); ++ } ++ ++ @TsFileApi + protected AbstractTableModelTsFileWriter(TsFileOutput output, long chunkGroupSizeThreshold) + throws IOException { - this(new TsFileIOWriter(output), chunkGroupSizeThreshold); ++ this( ++ new TsFileIOWriter(output), ++ chunkGroupSizeThreshold, ++ new EncryptParameter(config.getEncryptType(), config.getEncryptKey())); + } + - private AbstractTableModelTsFileWriter( - TsFileIOWriter tsFileIOWriter, long chunkGroupSizeThreshold) { ++ @TsFileApi ++ protected AbstractTableModelTsFileWriter( ++ TsFileIOWriter tsFileIOWriter, ++ long chunkGroupSizeThreshold, ++ EncryptParameter firstEncryptParam) ++ throws IOException { Schema schema = new Schema(); TSFileConfig conf = TSFileDescriptor.getInstance().getConfig(); - this.fileWriter = new TsFileIOWriter(file); + this.fileWriter = tsFileIOWriter; fileWriter.setSchema(schema); this.pageSize = conf.getPageSizeInByte(); diff --cc java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java index 40ba6549,b2ae6b1f..0397b42d --- a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java @@@ -29,9 -29,11 +29,12 @@@ import org.apache.tsfile.file.metadata. import org.apache.tsfile.file.metadata.TableSchema; import org.apache.tsfile.utils.Pair; import org.apache.tsfile.utils.WriteUtils; + import org.apache.tsfile.write.chunk.AlignedChunkGroupWriterImpl; + import org.apache.tsfile.write.record.TSRecord; import org.apache.tsfile.write.record.Tablet; + import org.apache.tsfile.write.record.datapoint.DataPoint; import org.apache.tsfile.write.schema.IMeasurementSchema; +import org.apache.tsfile.write.writer.TsFileOutput; import java.io.File; import java.io.IOException;
