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;

Reply via email to