Full Code of apache/tsfile for AI

develop 8fced479ed20 cached
3152 files
66.7 MB
17.7M tokens
30347 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (70,669K chars total). Download the full file to get everything.
Repository: apache/tsfile
Branch: develop
Commit: 8fced479ed20
Files: 3152
Total size: 66.7 MB

Directory structure:
gitextract_k6f65djk/

├── .asf.yaml
├── .clang-format
├── .gitattributes
├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── code-coverage.yml
│       ├── codeql.yml
│       ├── site-build.yaml
│       ├── unit-test-cpp.yml
│       ├── unit-test-java.yml
│       ├── unit-test-python.yml
│       └── wheels.yml
├── .gitignore
├── .mvn/
│   ├── develocity.xml
│   ├── extensions.xml
│   └── wrapper/
│       └── maven-wrapper.properties
├── CLAUDE.md
├── Jenkinsfile
├── LICENSE
├── NOTICE
├── README-zh.md
├── README.md
├── RELEASE_NOTES.md
├── checkstyle.xml
├── codecov.yml
├── cpp/
│   ├── .clang-format
│   ├── .gitignore
│   ├── CLAUDE.md
│   ├── CMakeLists.txt
│   ├── README-zh.md
│   ├── README.md
│   ├── VersionUpdater.groovy
│   ├── bench_mark/
│   │   ├── CMakeLists.txt
│   │   ├── bench_mark_src/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── bench_conf.h
│   │   │   ├── bench_mark.cc
│   │   │   └── bench_mark.h
│   │   └── build.sh
│   ├── build.sh
│   ├── cmake/
│   │   ├── CopyToDir.cmake
│   │   └── ToolChain.cmake
│   ├── examples/
│   │   ├── CMakeLists.txt
│   │   ├── README.md
│   │   ├── build.sh
│   │   ├── c_examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── c_examples.h
│   │   │   ├── demo_read.c
│   │   │   └── demo_write.c
│   │   ├── cpp_examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── cpp_examples.h
│   │   │   ├── demo_read.cpp
│   │   │   └── demo_write.cpp
│   │   ├── examples.cc
│   │   └── test_cpp.tsfile
│   ├── pom.xml
│   ├── src/
│   │   ├── CMakeLists.txt
│   │   ├── common/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── allocator/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── alloc_base.h
│   │   │   │   ├── byte_stream.h
│   │   │   │   ├── mem_alloc.cc
│   │   │   │   ├── my_string.h
│   │   │   │   ├── page_arena.cc
│   │   │   │   └── page_arena.h
│   │   │   ├── cache/
│   │   │   │   └── lru_cache.h
│   │   │   ├── config/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── config.h
│   │   │   ├── constant/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── tsfile_constant.h
│   │   │   ├── container/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── array.h
│   │   │   │   ├── bit_map.cc
│   │   │   │   ├── bit_map.h
│   │   │   │   ├── blocking_queue.cc
│   │   │   │   ├── blocking_queue.h
│   │   │   │   ├── byte_buffer.h
│   │   │   │   ├── hash_func.h
│   │   │   │   ├── hash_node.h
│   │   │   │   ├── hash_segm.h
│   │   │   │   ├── hash_table.h
│   │   │   │   ├── list.h
│   │   │   │   ├── murmur_hash3.cc
│   │   │   │   ├── murmur_hash3.h
│   │   │   │   ├── simple_vector.h
│   │   │   │   ├── slice.h
│   │   │   │   └── sorted_array.h
│   │   │   ├── datatype/
│   │   │   │   ├── date_converter.h
│   │   │   │   └── value.h
│   │   │   ├── db_common.h
│   │   │   ├── device_id.cc
│   │   │   ├── device_id.h
│   │   │   ├── global.cc
│   │   │   ├── global.h
│   │   │   ├── logger/
│   │   │   │   └── elog.h
│   │   │   ├── mutex/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── mutex.h
│   │   │   ├── path.cc
│   │   │   ├── path.h
│   │   │   ├── record.h
│   │   │   ├── row_record.h
│   │   │   ├── schema.h
│   │   │   ├── seq_tvlist.h
│   │   │   ├── seq_tvlist.inc
│   │   │   ├── statistic.h
│   │   │   ├── tablet.cc
│   │   │   ├── tablet.h
│   │   │   ├── thread_pool.h
│   │   │   ├── tsblock/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── tsblock.cc
│   │   │   │   ├── tsblock.h
│   │   │   │   ├── tuple_desc.cc
│   │   │   │   ├── tuple_desc.h
│   │   │   │   └── vector/
│   │   │   │       ├── fixed_length_vector.h
│   │   │   │       ├── variable_length_vector.h
│   │   │   │       └── vector.h
│   │   │   ├── tsfile_common.cc
│   │   │   └── tsfile_common.h
│   │   ├── compress/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── compressor.cc
│   │   │   ├── compressor.h
│   │   │   ├── compressor_factory.h
│   │   │   ├── gzip_compressor.cc
│   │   │   ├── gzip_compressor.h
│   │   │   ├── lz4_compressor.cc
│   │   │   ├── lz4_compressor.h
│   │   │   ├── lzo_compressor.cc
│   │   │   ├── lzo_compressor.h
│   │   │   ├── snappy_compressor.cc
│   │   │   ├── snappy_compressor.h
│   │   │   └── uncompressed_compressor.h
│   │   ├── cwrapper/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── arrow_c.cc
│   │   │   ├── errno_define_c.h
│   │   │   ├── tsfile_cwrapper.cc
│   │   │   ├── tsfile_cwrapper.h
│   │   │   ├── tsfile_cwrapper_expression.cc
│   │   │   └── tsfile_cwrapper_expression.h
│   │   ├── encoding/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── decoder.h
│   │   │   ├── decoder_factory.h
│   │   │   ├── dictionary_decoder.h
│   │   │   ├── dictionary_encoder.h
│   │   │   ├── double_sprintz_decoder.h
│   │   │   ├── double_sprintz_encoder.h
│   │   │   ├── encode_utils.h
│   │   │   ├── encoder.h
│   │   │   ├── encoder_factory.h
│   │   │   ├── fire.h
│   │   │   ├── float_sprintz_decoder.h
│   │   │   ├── float_sprintz_encoder.h
│   │   │   ├── gorilla_decoder.h
│   │   │   ├── gorilla_encoder.h
│   │   │   ├── int32_packer.h
│   │   │   ├── int32_rle_decoder.h
│   │   │   ├── int32_rle_encoder.h
│   │   │   ├── int32_sprintz_decoder.h
│   │   │   ├── int32_sprintz_encoder.h
│   │   │   ├── int64_packer.h
│   │   │   ├── int64_rle_decoder.h
│   │   │   ├── int64_rle_encoder.h
│   │   │   ├── int64_sprintz_decoder.h
│   │   │   ├── int64_sprintz_encoder.h
│   │   │   ├── plain_decoder.h
│   │   │   ├── plain_encoder.h
│   │   │   ├── sprintz_decoder.h
│   │   │   ├── sprintz_encoder.h
│   │   │   ├── ts2diff_decoder.h
│   │   │   ├── ts2diff_encoder.h
│   │   │   ├── zigzag_decoder.h
│   │   │   └── zigzag_encoder.h
│   │   ├── file/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── read_file.cc
│   │   │   ├── read_file.h
│   │   │   ├── restorable_tsfile_io_writer.cc
│   │   │   ├── restorable_tsfile_io_writer.h
│   │   │   ├── tsfile_io_reader.cc
│   │   │   ├── tsfile_io_reader.h
│   │   │   ├── tsfile_io_writer.cc
│   │   │   ├── tsfile_io_writer.h
│   │   │   ├── write_file.cc
│   │   │   └── write_file.h
│   │   ├── parser/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── PathLexer.g4
│   │   │   ├── PathParser.g4
│   │   │   ├── generated/
│   │   │   │   ├── PathLexer.cpp
│   │   │   │   ├── PathLexer.h
│   │   │   │   ├── PathParser.cpp
│   │   │   │   ├── PathParser.h
│   │   │   │   ├── PathParserBaseListener.cpp
│   │   │   │   ├── PathParserBaseListener.h
│   │   │   │   ├── PathParserBaseVisitor.cpp
│   │   │   │   ├── PathParserBaseVisitor.h
│   │   │   │   ├── PathParserListener.cpp
│   │   │   │   ├── PathParserListener.h
│   │   │   │   ├── PathParserVisitor.cpp
│   │   │   │   └── PathParserVisitor.h
│   │   │   ├── path_nodes_generator.cpp
│   │   │   ├── path_nodes_generator.h
│   │   │   ├── path_parser_error.h
│   │   │   ├── path_visitor.cpp
│   │   │   └── path_visitor.h
│   │   ├── reader/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── aligned_chunk_reader.cc
│   │   │   ├── aligned_chunk_reader.h
│   │   │   ├── block/
│   │   │   │   ├── device_ordered_tsblock_reader.cc
│   │   │   │   ├── device_ordered_tsblock_reader.h
│   │   │   │   ├── single_device_tsblock_reader.cc
│   │   │   │   ├── single_device_tsblock_reader.h
│   │   │   │   └── tsblock_reader.h
│   │   │   ├── bloom_filter.cc
│   │   │   ├── bloom_filter.h
│   │   │   ├── chunk_reader.cc
│   │   │   ├── chunk_reader.h
│   │   │   ├── column_mapping.h
│   │   │   ├── device_meta_iterator.cc
│   │   │   ├── device_meta_iterator.h
│   │   │   ├── expression.cc
│   │   │   ├── expression.h
│   │   │   ├── filter/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── and_filter.h
│   │   │   │   ├── between.h
│   │   │   │   ├── binary_filter.h
│   │   │   │   ├── eq.h
│   │   │   │   ├── filter.h
│   │   │   │   ├── filter_type.h
│   │   │   │   ├── gt.h
│   │   │   │   ├── gt_eq.h
│   │   │   │   ├── in.h
│   │   │   │   ├── lt.h
│   │   │   │   ├── lt_eq.h
│   │   │   │   ├── not_eq.h
│   │   │   │   ├── object.h
│   │   │   │   ├── or_filter.h
│   │   │   │   ├── tag_filter.cc
│   │   │   │   ├── tag_filter.h
│   │   │   │   ├── time_filter.cc
│   │   │   │   ├── time_filter.h
│   │   │   │   ├── time_operator.cc
│   │   │   │   ├── time_operator.h
│   │   │   │   └── unary_filter.h
│   │   │   ├── ichunk_reader.h
│   │   │   ├── imeta_data_querier.h
│   │   │   ├── meta_data_querier.cc
│   │   │   ├── meta_data_querier.h
│   │   │   ├── qds_with_timegenerator.cc
│   │   │   ├── qds_with_timegenerator.h
│   │   │   ├── qds_without_timegenerator.cc
│   │   │   ├── qds_without_timegenerator.h
│   │   │   ├── query_executor.h
│   │   │   ├── result_set.h
│   │   │   ├── table_query_executor.cc
│   │   │   ├── table_query_executor.h
│   │   │   ├── table_result_set.cc
│   │   │   ├── table_result_set.h
│   │   │   ├── task/
│   │   │   │   ├── device_query_task.cc
│   │   │   │   ├── device_query_task.h
│   │   │   │   ├── device_task_iterator.cc
│   │   │   │   └── device_task_iterator.h
│   │   │   ├── tsfile_executor.cc
│   │   │   ├── tsfile_executor.h
│   │   │   ├── tsfile_reader.cc
│   │   │   ├── tsfile_reader.h
│   │   │   ├── tsfile_series_scan_iterator.cc
│   │   │   ├── tsfile_series_scan_iterator.h
│   │   │   ├── tsfile_tree_reader.cc
│   │   │   └── tsfile_tree_reader.h
│   │   ├── utils/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── date_utils.h
│   │   │   ├── db_utils.h
│   │   │   ├── errno_define.h
│   │   │   ├── injection.h
│   │   │   ├── storage_utils.h
│   │   │   └── util_define.h
│   │   └── writer/
│   │       ├── CMakeLists.txt
│   │       ├── chunk_writer.cc
│   │       ├── chunk_writer.h
│   │       ├── page_writer.cc
│   │       ├── page_writer.h
│   │       ├── time_chunk_writer.cc
│   │       ├── time_chunk_writer.h
│   │       ├── time_page_writer.cc
│   │       ├── time_page_writer.h
│   │       ├── tsfile_table_writer.cc
│   │       ├── tsfile_table_writer.h
│   │       ├── tsfile_tree_writer.cc
│   │       ├── tsfile_tree_writer.h
│   │       ├── tsfile_writer.cc
│   │       ├── tsfile_writer.h
│   │       ├── value_chunk_writer.cc
│   │       ├── value_chunk_writer.h
│   │       ├── value_page_writer.cc
│   │       └── value_page_writer.h
│   ├── test/
│   │   ├── CMakeLists.txt
│   │   ├── common/
│   │   │   ├── allocator/
│   │   │   │   ├── alloc_base_test.cc
│   │   │   │   ├── byte_stream_test.cc
│   │   │   │   ├── my_string_test.cc
│   │   │   │   └── page_arena_test.cc
│   │   │   ├── container/
│   │   │   │   ├── array_test.cc
│   │   │   │   ├── bit_map_test.cc
│   │   │   │   ├── byte_buffer_test.cc
│   │   │   │   ├── list_test.cc
│   │   │   │   ├── murmur_hash3_test.cc
│   │   │   │   ├── simple_vector_test.cc
│   │   │   │   ├── slice_test.cc
│   │   │   │   └── sorted_array_test.cc
│   │   │   ├── datatype/
│   │   │   │   ├── date_converter_test.cc
│   │   │   │   └── value_test.cc
│   │   │   ├── device_id_test.cc
│   │   │   ├── record_test.cc
│   │   │   ├── row_record_test.cc
│   │   │   ├── schema_test.cc
│   │   │   ├── statistic_test.cc
│   │   │   ├── tablet_test.cc
│   │   │   ├── tsblock/
│   │   │   │   ├── arrow_tsblock_test.cc
│   │   │   │   ├── tslock_test.cc
│   │   │   │   ├── tuple_desc_test.cc
│   │   │   │   └── vector/
│   │   │   │       ├── fixed_length_vector_test.cc
│   │   │   │       └── variable_length_vector_test.cc
│   │   │   └── tsfile_common_test.cc
│   │   ├── compress/
│   │   │   ├── gzip_compressor_test.cc
│   │   │   ├── lz4_compressor_test.cc
│   │   │   ├── lzo_compressor_test.cc
│   │   │   └── snappy_compressor_test.cc
│   │   ├── cwrapper/
│   │   │   ├── c_release_test.cc
│   │   │   ├── cwrapper_metadata_test.cc
│   │   │   ├── cwrapper_test.cc
│   │   │   └── query_by_row_cwrapper_test.cc
│   │   ├── encoding/
│   │   │   ├── dictionary_codec_test.cc
│   │   │   ├── gorilla_codec_test.cc
│   │   │   ├── int32_packer_test.cc
│   │   │   ├── int32_rle_codec_test.cc
│   │   │   ├── int64_packer_test.cc
│   │   │   ├── int64_rle_codec_test.cc
│   │   │   ├── plain_codec_test.cc
│   │   │   ├── sprintz_codec_test.cc
│   │   │   ├── ts2diff_codec_test.cc
│   │   │   └── zigzag_codec_test.cc
│   │   ├── file/
│   │   │   ├── restorable_tsfile_io_writer_test.cc
│   │   │   └── write_file_test.cc
│   │   ├── parser/
│   │   │   └── path_name_test.cc
│   │   ├── reader/
│   │   │   ├── bloom_filter_test.cc
│   │   │   ├── filter/
│   │   │   │   └── tag_filter_test.cc
│   │   │   ├── query_by_row_performance_test.cc
│   │   │   ├── table_view/
│   │   │   │   ├── tsfile_reader_table_batch_test.cc
│   │   │   │   ├── tsfile_reader_table_test.cc
│   │   │   │   └── tsfile_table_query_by_row_test.cc
│   │   │   ├── tree_view/
│   │   │   │   ├── tsfile_reader_tree_test.cc
│   │   │   │   └── tsfile_tree_query_by_row_test.cc
│   │   │   └── tsfile_reader_test.cc
│   │   ├── utils/
│   │   │   └── db_utils_test.cc
│   │   └── writer/
│   │       ├── chunk_writer_test.cc
│   │       ├── page_writer_test.cc
│   │       ├── table_view/
│   │       │   └── tsfile_writer_table_test.cc
│   │       ├── time_chunk_writer_test.cc
│   │       ├── time_page_writer_test.cc
│   │       ├── tsfile_writer_test.cc
│   │       ├── value_chunk_writer_test.cc
│   │       └── value_page_writer_test.cc
│   └── third_party/
│       ├── CMakeLists.txt
│       ├── antlr4-cpp-runtime-4/
│       │   ├── CMakeLists.txt
│       │   ├── LICENSE.txt
│       │   ├── README.md
│       │   ├── VERSION
│       │   ├── cmake/
│       │   │   ├── Antlr4Package.md
│       │   │   ├── ExternalAntlr4Cpp.cmake
│       │   │   ├── FindANTLR.cmake
│       │   │   ├── README.md
│       │   │   ├── antlr4-generator.cmake.in
│       │   │   └── antlr4-runtime.cmake.in
│       │   ├── demo/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Linux/
│       │   │   │   └── main.cpp
│       │   │   ├── Mac/
│       │   │   │   ├── antlr4-cpp-demo/
│       │   │   │   │   └── main.cpp
│       │   │   │   ├── antlrcpp Tests/
│       │   │   │   │   ├── Info.plist
│       │   │   │   │   ├── InputHandlingTests.mm
│       │   │   │   │   ├── MiscClassTests.mm
│       │   │   │   │   └── antlrcpp_Tests.mm
│       │   │   │   ├── antlrcpp-demo.xcodeproj/
│       │   │   │   │   ├── project.pbxproj
│       │   │   │   │   ├── project.xcworkspace/
│       │   │   │   │   │   ├── contents.xcworkspacedata
│       │   │   │   │   │   └── xcshareddata/
│       │   │   │   │   │       └── IDEWorkspaceChecks.plist
│       │   │   │   │   └── xcshareddata/
│       │   │   │   │       └── xcschemes/
│       │   │   │   │           ├── antlr4-cpp-demo.xcscheme
│       │   │   │   │           └── antlrcpp Tests.xcscheme
│       │   │   │   └── build.sh
│       │   │   ├── README.md
│       │   │   ├── TLexer.g4
│       │   │   ├── TParser.g4
│       │   │   ├── Windows/
│       │   │   │   ├── antlr4-cpp-demo/
│       │   │   │   │   ├── antlr4-cpp-demo-vs2015.vcxproj
│       │   │   │   │   ├── antlr4-cpp-demo-vs2015.vcxproj.filters
│       │   │   │   │   ├── antlr4-cpp-demo.vcxproj
│       │   │   │   │   ├── antlr4-cpp-demo.vcxproj.filters
│       │   │   │   │   └── main.cpp
│       │   │   │   ├── antlr4cpp-vs2013.sln
│       │   │   │   └── antlr4cpp-vs2015.sln
│       │   │   ├── generate.cmd
│       │   │   └── generate.sh
│       │   ├── deploy-macos.sh
│       │   ├── deploy-source.sh
│       │   ├── deploy-windows.cmd
│       │   └── runtime/
│       │       ├── CMakeLists.txt
│       │       ├── antlr4cpp-vs2013.vcxproj
│       │       ├── antlr4cpp-vs2013.vcxproj.filters
│       │       ├── antlr4cpp-vs2015.vcxproj
│       │       ├── antlr4cpp-vs2015.vcxproj.filters
│       │       ├── antlr4cpp-vs2017.vcxproj
│       │       ├── antlr4cpp-vs2017.vcxproj.filters
│       │       ├── antlr4cpp-vs2019.vcxproj
│       │       ├── antlr4cpp-vs2019.vcxproj.filters
│       │       ├── antlrcpp-ios/
│       │       │   ├── Info.plist
│       │       │   └── antlrcpp_ios.h
│       │       ├── antlrcpp.xcodeproj/
│       │       │   ├── project.pbxproj
│       │       │   ├── project.xcworkspace/
│       │       │   │   ├── contents.xcworkspacedata
│       │       │   │   └── xcshareddata/
│       │       │   │       └── IDEWorkspaceChecks.plist
│       │       │   └── xcshareddata/
│       │       │       └── xcschemes/
│       │       │           ├── antlr4.xcscheme
│       │       │           ├── antlr4_ios.xcscheme
│       │       │           └── antlr4_static.xcscheme
│       │       └── src/
│       │           ├── ANTLRErrorListener.cpp
│       │           ├── ANTLRErrorListener.h
│       │           ├── ANTLRErrorStrategy.cpp
│       │           ├── ANTLRErrorStrategy.h
│       │           ├── ANTLRFileStream.cpp
│       │           ├── ANTLRFileStream.h
│       │           ├── ANTLRInputStream.cpp
│       │           ├── ANTLRInputStream.h
│       │           ├── BailErrorStrategy.cpp
│       │           ├── BailErrorStrategy.h
│       │           ├── BaseErrorListener.cpp
│       │           ├── BaseErrorListener.h
│       │           ├── BufferedTokenStream.cpp
│       │           ├── BufferedTokenStream.h
│       │           ├── CharStream.cpp
│       │           ├── CharStream.h
│       │           ├── CommonToken.cpp
│       │           ├── CommonToken.h
│       │           ├── CommonTokenFactory.cpp
│       │           ├── CommonTokenFactory.h
│       │           ├── CommonTokenStream.cpp
│       │           ├── CommonTokenStream.h
│       │           ├── ConsoleErrorListener.cpp
│       │           ├── ConsoleErrorListener.h
│       │           ├── DefaultErrorStrategy.cpp
│       │           ├── DefaultErrorStrategy.h
│       │           ├── DiagnosticErrorListener.cpp
│       │           ├── DiagnosticErrorListener.h
│       │           ├── Exceptions.cpp
│       │           ├── Exceptions.h
│       │           ├── FailedPredicateException.cpp
│       │           ├── FailedPredicateException.h
│       │           ├── InputMismatchException.cpp
│       │           ├── InputMismatchException.h
│       │           ├── IntStream.cpp
│       │           ├── IntStream.h
│       │           ├── InterpreterRuleContext.cpp
│       │           ├── InterpreterRuleContext.h
│       │           ├── Lexer.cpp
│       │           ├── Lexer.h
│       │           ├── LexerInterpreter.cpp
│       │           ├── LexerInterpreter.h
│       │           ├── LexerNoViableAltException.cpp
│       │           ├── LexerNoViableAltException.h
│       │           ├── ListTokenSource.cpp
│       │           ├── ListTokenSource.h
│       │           ├── NoViableAltException.cpp
│       │           ├── NoViableAltException.h
│       │           ├── Parser.cpp
│       │           ├── Parser.h
│       │           ├── ParserInterpreter.cpp
│       │           ├── ParserInterpreter.h
│       │           ├── ParserRuleContext.cpp
│       │           ├── ParserRuleContext.h
│       │           ├── ProxyErrorListener.cpp
│       │           ├── ProxyErrorListener.h
│       │           ├── RecognitionException.cpp
│       │           ├── RecognitionException.h
│       │           ├── Recognizer.cpp
│       │           ├── Recognizer.h
│       │           ├── RuleContext.cpp
│       │           ├── RuleContext.h
│       │           ├── RuleContextWithAltNum.cpp
│       │           ├── RuleContextWithAltNum.h
│       │           ├── RuntimeMetaData.cpp
│       │           ├── RuntimeMetaData.h
│       │           ├── Token.cpp
│       │           ├── Token.h
│       │           ├── TokenFactory.h
│       │           ├── TokenSource.cpp
│       │           ├── TokenSource.h
│       │           ├── TokenStream.cpp
│       │           ├── TokenStream.h
│       │           ├── TokenStreamRewriter.cpp
│       │           ├── TokenStreamRewriter.h
│       │           ├── UnbufferedCharStream.cpp
│       │           ├── UnbufferedCharStream.h
│       │           ├── UnbufferedTokenStream.cpp
│       │           ├── UnbufferedTokenStream.h
│       │           ├── Vocabulary.cpp
│       │           ├── Vocabulary.h
│       │           ├── WritableToken.cpp
│       │           ├── WritableToken.h
│       │           ├── antlr4-common.h
│       │           ├── antlr4-runtime.h
│       │           ├── atn/
│       │           │   ├── ATN.cpp
│       │           │   ├── ATN.h
│       │           │   ├── ATNConfig.cpp
│       │           │   ├── ATNConfig.h
│       │           │   ├── ATNConfigSet.cpp
│       │           │   ├── ATNConfigSet.h
│       │           │   ├── ATNDeserializationOptions.cpp
│       │           │   ├── ATNDeserializationOptions.h
│       │           │   ├── ATNDeserializer.cpp
│       │           │   ├── ATNDeserializer.h
│       │           │   ├── ATNSerializer.cpp
│       │           │   ├── ATNSerializer.h
│       │           │   ├── ATNSimulator.cpp
│       │           │   ├── ATNSimulator.h
│       │           │   ├── ATNState.cpp
│       │           │   ├── ATNState.h
│       │           │   ├── ATNType.h
│       │           │   ├── AbstractPredicateTransition.cpp
│       │           │   ├── AbstractPredicateTransition.h
│       │           │   ├── ActionTransition.cpp
│       │           │   ├── ActionTransition.h
│       │           │   ├── AmbiguityInfo.cpp
│       │           │   ├── AmbiguityInfo.h
│       │           │   ├── ArrayPredictionContext.cpp
│       │           │   ├── ArrayPredictionContext.h
│       │           │   ├── AtomTransition.cpp
│       │           │   ├── AtomTransition.h
│       │           │   ├── BasicBlockStartState.cpp
│       │           │   ├── BasicBlockStartState.h
│       │           │   ├── BasicState.cpp
│       │           │   ├── BasicState.h
│       │           │   ├── BlockEndState.cpp
│       │           │   ├── BlockEndState.h
│       │           │   ├── BlockStartState.cpp
│       │           │   ├── BlockStartState.h
│       │           │   ├── ContextSensitivityInfo.cpp
│       │           │   ├── ContextSensitivityInfo.h
│       │           │   ├── DecisionEventInfo.cpp
│       │           │   ├── DecisionEventInfo.h
│       │           │   ├── DecisionInfo.cpp
│       │           │   ├── DecisionInfo.h
│       │           │   ├── DecisionState.cpp
│       │           │   ├── DecisionState.h
│       │           │   ├── EmptyPredictionContext.cpp
│       │           │   ├── EmptyPredictionContext.h
│       │           │   ├── EpsilonTransition.cpp
│       │           │   ├── EpsilonTransition.h
│       │           │   ├── ErrorInfo.cpp
│       │           │   ├── ErrorInfo.h
│       │           │   ├── LL1Analyzer.cpp
│       │           │   ├── LL1Analyzer.h
│       │           │   ├── LexerATNConfig.cpp
│       │           │   ├── LexerATNConfig.h
│       │           │   ├── LexerATNSimulator.cpp
│       │           │   ├── LexerATNSimulator.h
│       │           │   ├── LexerAction.cpp
│       │           │   ├── LexerAction.h
│       │           │   ├── LexerActionExecutor.cpp
│       │           │   ├── LexerActionExecutor.h
│       │           │   ├── LexerActionType.h
│       │           │   ├── LexerChannelAction.cpp
│       │           │   ├── LexerChannelAction.h
│       │           │   ├── LexerCustomAction.cpp
│       │           │   ├── LexerCustomAction.h
│       │           │   ├── LexerIndexedCustomAction.cpp
│       │           │   ├── LexerIndexedCustomAction.h
│       │           │   ├── LexerModeAction.cpp
│       │           │   ├── LexerModeAction.h
│       │           │   ├── LexerMoreAction.cpp
│       │           │   ├── LexerMoreAction.h
│       │           │   ├── LexerPopModeAction.cpp
│       │           │   ├── LexerPopModeAction.h
│       │           │   ├── LexerPushModeAction.cpp
│       │           │   ├── LexerPushModeAction.h
│       │           │   ├── LexerSkipAction.cpp
│       │           │   ├── LexerSkipAction.h
│       │           │   ├── LexerTypeAction.cpp
│       │           │   ├── LexerTypeAction.h
│       │           │   ├── LookaheadEventInfo.cpp
│       │           │   ├── LookaheadEventInfo.h
│       │           │   ├── LoopEndState.cpp
│       │           │   ├── LoopEndState.h
│       │           │   ├── Makefile
│       │           │   ├── NotSetTransition.cpp
│       │           │   ├── NotSetTransition.h
│       │           │   ├── OrderedATNConfigSet.cpp
│       │           │   ├── OrderedATNConfigSet.h
│       │           │   ├── ParseInfo.cpp
│       │           │   ├── ParseInfo.h
│       │           │   ├── ParserATNSimulator.cpp
│       │           │   ├── ParserATNSimulator.h
│       │           │   ├── PlusBlockStartState.cpp
│       │           │   ├── PlusBlockStartState.h
│       │           │   ├── PlusLoopbackState.cpp
│       │           │   ├── PlusLoopbackState.h
│       │           │   ├── PrecedencePredicateTransition.cpp
│       │           │   ├── PrecedencePredicateTransition.h
│       │           │   ├── PredicateEvalInfo.cpp
│       │           │   ├── PredicateEvalInfo.h
│       │           │   ├── PredicateTransition.cpp
│       │           │   ├── PredicateTransition.h
│       │           │   ├── PredictionContext.cpp
│       │           │   ├── PredictionContext.h
│       │           │   ├── PredictionMode.cpp
│       │           │   ├── PredictionMode.h
│       │           │   ├── ProfilingATNSimulator.cpp
│       │           │   ├── ProfilingATNSimulator.h
│       │           │   ├── RangeTransition.cpp
│       │           │   ├── RangeTransition.h
│       │           │   ├── RuleStartState.cpp
│       │           │   ├── RuleStartState.h
│       │           │   ├── RuleStopState.cpp
│       │           │   ├── RuleStopState.h
│       │           │   ├── RuleTransition.cpp
│       │           │   ├── RuleTransition.h
│       │           │   ├── SemanticContext.cpp
│       │           │   ├── SemanticContext.h
│       │           │   ├── SetTransition.cpp
│       │           │   ├── SetTransition.h
│       │           │   ├── SingletonPredictionContext.cpp
│       │           │   ├── SingletonPredictionContext.h
│       │           │   ├── StarBlockStartState.cpp
│       │           │   ├── StarBlockStartState.h
│       │           │   ├── StarLoopEntryState.cpp
│       │           │   ├── StarLoopEntryState.h
│       │           │   ├── StarLoopbackState.cpp
│       │           │   ├── StarLoopbackState.h
│       │           │   ├── TokensStartState.cpp
│       │           │   ├── TokensStartState.h
│       │           │   ├── Transition.cpp
│       │           │   ├── Transition.h
│       │           │   ├── WildcardTransition.cpp
│       │           │   └── WildcardTransition.h
│       │           ├── dfa/
│       │           │   ├── DFA.cpp
│       │           │   ├── DFA.h
│       │           │   ├── DFASerializer.cpp
│       │           │   ├── DFASerializer.h
│       │           │   ├── DFAState.cpp
│       │           │   ├── DFAState.h
│       │           │   ├── LexerDFASerializer.cpp
│       │           │   └── LexerDFASerializer.h
│       │           ├── misc/
│       │           │   ├── InterpreterDataReader.cpp
│       │           │   ├── InterpreterDataReader.h
│       │           │   ├── Interval.cpp
│       │           │   ├── Interval.h
│       │           │   ├── IntervalSet.cpp
│       │           │   ├── IntervalSet.h
│       │           │   ├── MurmurHash.cpp
│       │           │   ├── MurmurHash.h
│       │           │   ├── Predicate.cpp
│       │           │   └── Predicate.h
│       │           ├── support/
│       │           │   ├── Any.cpp
│       │           │   ├── Any.h
│       │           │   ├── Arrays.cpp
│       │           │   ├── Arrays.h
│       │           │   ├── BitSet.h
│       │           │   ├── CPPUtils.cpp
│       │           │   ├── CPPUtils.h
│       │           │   ├── Casts.h
│       │           │   ├── Declarations.h
│       │           │   ├── Guid.cpp
│       │           │   ├── Guid.h
│       │           │   ├── StringUtils.cpp
│       │           │   └── StringUtils.h
│       │           └── tree/
│       │               ├── AbstractParseTreeVisitor.h
│       │               ├── ErrorNode.cpp
│       │               ├── ErrorNode.h
│       │               ├── ErrorNodeImpl.cpp
│       │               ├── ErrorNodeImpl.h
│       │               ├── IterativeParseTreeWalker.cpp
│       │               ├── IterativeParseTreeWalker.h
│       │               ├── ParseTree.cpp
│       │               ├── ParseTree.h
│       │               ├── ParseTreeListener.cpp
│       │               ├── ParseTreeListener.h
│       │               ├── ParseTreeProperty.h
│       │               ├── ParseTreeVisitor.cpp
│       │               ├── ParseTreeVisitor.h
│       │               ├── ParseTreeWalker.cpp
│       │               ├── ParseTreeWalker.h
│       │               ├── TerminalNode.cpp
│       │               ├── TerminalNode.h
│       │               ├── TerminalNodeImpl.cpp
│       │               ├── TerminalNodeImpl.h
│       │               ├── Trees.cpp
│       │               ├── Trees.h
│       │               ├── pattern/
│       │               │   ├── Chunk.cpp
│       │               │   ├── Chunk.h
│       │               │   ├── ParseTreeMatch.cpp
│       │               │   ├── ParseTreeMatch.h
│       │               │   ├── ParseTreePattern.cpp
│       │               │   ├── ParseTreePattern.h
│       │               │   ├── ParseTreePatternMatcher.cpp
│       │               │   ├── ParseTreePatternMatcher.h
│       │               │   ├── RuleTagToken.cpp
│       │               │   ├── RuleTagToken.h
│       │               │   ├── TagChunk.cpp
│       │               │   ├── TagChunk.h
│       │               │   ├── TextChunk.cpp
│       │               │   ├── TextChunk.h
│       │               │   ├── TokenTagToken.cpp
│       │               │   └── TokenTagToken.h
│       │               └── xpath/
│       │                   ├── XPath.cpp
│       │                   ├── XPath.h
│       │                   ├── XPathElement.cpp
│       │                   ├── XPathElement.h
│       │                   ├── XPathLexer.cpp
│       │                   ├── XPathLexer.g4
│       │                   ├── XPathLexer.h
│       │                   ├── XPathLexer.tokens
│       │                   ├── XPathLexerErrorListener.cpp
│       │                   ├── XPathLexerErrorListener.h
│       │                   ├── XPathRuleAnywhereElement.cpp
│       │                   ├── XPathRuleAnywhereElement.h
│       │                   ├── XPathRuleElement.cpp
│       │                   ├── XPathRuleElement.h
│       │                   ├── XPathTokenAnywhereElement.cpp
│       │                   ├── XPathTokenAnywhereElement.h
│       │                   ├── XPathTokenElement.cpp
│       │                   ├── XPathTokenElement.h
│       │                   ├── XPathWildcardAnywhereElement.cpp
│       │                   ├── XPathWildcardAnywhereElement.h
│       │                   ├── XPathWildcardElement.cpp
│       │                   └── XPathWildcardElement.h
│       ├── google_snappy/
│       │   ├── AUTHORS
│       │   ├── CMakeLists.txt
│       │   ├── COPYING
│       │   ├── README.md
│       │   ├── cmake/
│       │   │   ├── SnappyConfig.cmake.in
│       │   │   └── config.h.in
│       │   ├── snappy-internal.h
│       │   ├── snappy-sinksource.cc
│       │   ├── snappy-sinksource.h
│       │   ├── snappy-stubs-internal.cc
│       │   ├── snappy-stubs-internal.h
│       │   ├── snappy-stubs-public.h.in
│       │   ├── snappy.cc
│       │   └── snappy.h
│       ├── lz4/
│       │   ├── CMakeLists.txt
│       │   ├── lz4.c
│       │   └── lz4.h
│       ├── lzokay/
│       │   ├── CMakeLists.txt
│       │   ├── LICENSE
│       │   ├── lzokay.cpp
│       │   └── lzokay.hpp
│       └── simde-0.8.4-rc3/
│           ├── .all-contributorsrc
│           ├── .appveyor.yml
│           ├── .azure-pipelines.yml
│           ├── .circleci/
│           │   └── config.yml
│           ├── .cirrus.yml
│           ├── .dockerignore
│           ├── .drone.star.disabled
│           ├── .editorconfig
│           ├── .github/
│           │   ├── actionlint-matcher.json
│           │   ├── dependabot.yml
│           │   └── workflows/
│           │       ├── actionlint.yml
│           │       ├── ci.yml
│           │       ├── cmake.yml
│           │       ├── codeql-analysis.yml
│           │       ├── deploy.yml
│           │       ├── gcc-snapshot.yml
│           │       ├── ossar-analysis.yml
│           │       └── pr-cleanup.yml
│           ├── .gitignore
│           ├── .gitmodules
│           ├── .mailmap
│           ├── .no-test/
│           │   └── README.md
│           ├── .packit/
│           │   ├── README.md
│           │   ├── ci.sh
│           │   └── simde.spec
│           ├── .packit.yml
│           ├── .semaphore/
│           │   └── semaphore.yml
│           ├── .travis.yml
│           ├── CMakeLists.txt
│           ├── CONTRIBUTING.md
│           ├── COPYING
│           ├── README.md
│           ├── amalgamate.py
│           ├── codecov.yml
│           ├── docker/
│           │   ├── Dockerfile
│           │   ├── Dockerfile.ubuntu
│           │   ├── Dockerfile.ubuntu_bionic
│           │   ├── README.md
│           │   ├── bin/
│           │   │   ├── arch2gcc.sh
│           │   │   ├── simde-check-all.sh
│           │   │   └── simde-reset-build.sh
│           │   ├── cross-files/
│           │   │   ├── aarch64+sve-clang-10.cross
│           │   │   ├── aarch64+sve-clang-11.cross
│           │   │   ├── aarch64+sve-clang-12.cross
│           │   │   ├── aarch64+sve-clang-13.cross
│           │   │   ├── aarch64+sve-clang-14.cross
│           │   │   ├── aarch64+sve-clang-15.cross
│           │   │   ├── aarch64+sve-gcc-10.cross
│           │   │   ├── aarch64+sve-gcc-11.cross
│           │   │   ├── aarch64+sve-gcc-12.cross
│           │   │   ├── aarch64-clang-10.cross
│           │   │   ├── aarch64-clang-11.cross
│           │   │   ├── aarch64-clang-12.cross
│           │   │   ├── aarch64-clang-13-debflags.cross
│           │   │   ├── aarch64-clang-13.cross
│           │   │   ├── aarch64-clang-14-debflags.cross
│           │   │   ├── aarch64-clang-14.cross
│           │   │   ├── aarch64-clang-15-ccache.cross
│           │   │   ├── aarch64-clang-15-debflags.cross
│           │   │   ├── aarch64-clang-15.cross
│           │   │   ├── aarch64-clang-16-ccache.cross
│           │   │   ├── aarch64-clang-17-ccache.cross
│           │   │   ├── aarch64-clang-18-ccache.cross
│           │   │   ├── aarch64-clang-18-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-19-ccache.cross
│           │   │   ├── aarch64-clang-19-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-20-ccache.cross
│           │   │   ├── aarch64-clang-20-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-21-ccache.cross
│           │   │   ├── aarch64-clang-21-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-22-ccache.cross
│           │   │   ├── aarch64-clang-22-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-23-ccache.cross
│           │   │   ├── aarch64-clang-23-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-6.cross
│           │   │   ├── aarch64-clang-7.cross
│           │   │   ├── aarch64-clang-8.cross
│           │   │   ├── aarch64-clang-9.cross
│           │   │   ├── aarch64-gcc-10.cross
│           │   │   ├── aarch64-gcc-11-ccache.cross
│           │   │   ├── aarch64-gcc-11-debflags.cross
│           │   │   ├── aarch64-gcc-11.cross
│           │   │   ├── aarch64-gcc-12-ccache.cross
│           │   │   ├── aarch64-gcc-12-debflags.cross
│           │   │   ├── aarch64-gcc-12.cross
│           │   │   ├── aarch64-gcc-13-ccache.cross
│           │   │   ├── aarch64-gcc-14-ccache.cross
│           │   │   ├── aarch64-gcc-14-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-15-ccache.cross
│           │   │   ├── aarch64-gcc-15-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-16-ccache.cross
│           │   │   ├── aarch64-gcc-16-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-7.cross
│           │   │   ├── aarch64-gcc-8.cross
│           │   │   ├── aarch64-gcc-9.cross
│           │   │   ├── armel-clang-15-ccache.cross
│           │   │   ├── armel-clang-16-ccache.cross
│           │   │   ├── armel-clang-17-ccache.cross
│           │   │   ├── armel-clang-18-ccache.cross
│           │   │   ├── armel-clang-19-ccache.cross
│           │   │   ├── armel-clang-20-ccache.cross
│           │   │   ├── armel-clang-21-ccache.cross
│           │   │   ├── armel-clang-22-ccache.cross
│           │   │   ├── armel-clang-23-ccache.cross
│           │   │   ├── armel-gcc-11-debflags.cross
│           │   │   ├── armel-gcc-12-ccache.cross
│           │   │   ├── armel-gcc-12-debflags.cross
│           │   │   ├── armel-gcc-13-ccache.cross
│           │   │   ├── armel-gcc-14-ccache.cross
│           │   │   ├── armel-gcc-15-ccache.cross
│           │   │   ├── armel-gcc-16-ccache.cross
│           │   │   ├── armhf-gcc-11-debflags.cross
│           │   │   ├── armhf-gcc-12-debflags.cross
│           │   │   ├── armv7-clang-11.cross
│           │   │   ├── armv7-clang-12.cross
│           │   │   ├── armv7-clang-13.cross
│           │   │   ├── armv7-clang-14.cross
│           │   │   ├── armv7-clang-15-ccache.cross
│           │   │   ├── armv7-clang-15.cross
│           │   │   ├── armv7-clang-16-ccache.cross
│           │   │   ├── armv7-clang-17-ccache.cross
│           │   │   ├── armv7-clang-18-ccache.cross
│           │   │   ├── armv7-clang-19-ccache.cross
│           │   │   ├── armv7-clang-20-ccache.cross
│           │   │   ├── armv7-clang-21-ccache.cross
│           │   │   ├── armv7-clang-22-ccache.cross
│           │   │   ├── armv7-clang-23-ccache.cross
│           │   │   ├── armv7-clang-6.cross
│           │   │   ├── armv7-gcc-10.cross
│           │   │   ├── armv7-gcc-11.cross
│           │   │   ├── armv7-gcc-12-ccache.cross
│           │   │   ├── armv7-gcc-12.cross
│           │   │   ├── armv7-gcc-13-ccache.cross
│           │   │   ├── armv7-gcc-14-ccache.cross
│           │   │   ├── armv7-gcc-15-ccache.cross
│           │   │   ├── armv7-gcc-16-ccache.cross
│           │   │   ├── armv7-gcc-8.cross
│           │   │   ├── armv8+mve-gcc-10.cross
│           │   │   ├── armv8+mve-gcc-11.cross
│           │   │   ├── armv8+mve-gcc-12.cross
│           │   │   ├── armv8-clang-10.cross
│           │   │   ├── armv8-clang-11.cross
│           │   │   ├── armv8-clang-12.cross
│           │   │   ├── armv8-clang-13.cross
│           │   │   ├── armv8-clang-14.cross
│           │   │   ├── armv8-clang-15.cross
│           │   │   ├── armv8-clang-6.cross
│           │   │   ├── armv8-clang-8.cross
│           │   │   ├── armv8-clang-9.cross
│           │   │   ├── armv8-gcc-10.cross
│           │   │   ├── armv8-gcc-11.cross
│           │   │   ├── armv8-gcc-12-32bit-ccache.cross
│           │   │   ├── armv8-gcc-12.cross
│           │   │   ├── armv8-gcc-13-32bit-ccache.cross
│           │   │   ├── armv8-gcc-14-32bit-ccache.cross
│           │   │   ├── armv8-gcc-15-32bit-ccache.cross
│           │   │   ├── armv8-gcc-16-32bit-ccache.cross
│           │   │   ├── armv8-gcc-9.cross
│           │   │   ├── clang-10.cross
│           │   │   ├── clang-11-debflags.cross
│           │   │   ├── clang-11.cross
│           │   │   ├── clang-12.cross
│           │   │   ├── clang-13.cross
│           │   │   ├── clang-14.cross
│           │   │   ├── clang-15.cross
│           │   │   ├── clang-16.cross
│           │   │   ├── clang-17.cross
│           │   │   ├── clang-3.9.cross
│           │   │   ├── clang-4.cross
│           │   │   ├── clang-5.cross
│           │   │   ├── clang-6.cross
│           │   │   ├── clang-7.cross
│           │   │   ├── clang-8.cross
│           │   │   ├── clang-9.cross
│           │   │   ├── emscripten32-relaxed.cross
│           │   │   ├── emscripten32.cross
│           │   │   ├── emscripten64-relaxed.cross
│           │   │   ├── emscripten64.cross
│           │   │   ├── gcc-10-fast-math.cross
│           │   │   ├── gcc-10.cross
│           │   │   ├── gcc-11-debflags.cross
│           │   │   ├── gcc-11-fast-math.cross
│           │   │   ├── gcc-11.cross
│           │   │   ├── gcc-12-debflags.cross
│           │   │   ├── gcc-12-fast-math.cross
│           │   │   ├── gcc-12-native.cross
│           │   │   ├── gcc-12.cross
│           │   │   ├── gcc-5.cross
│           │   │   ├── gcc-6.cross
│           │   │   ├── gcc-7.cross
│           │   │   ├── gcc-8.cross
│           │   │   ├── gcc-9.cross
│           │   │   ├── i686-all-gcc-10.cross
│           │   │   ├── i686-all-gcc-11.cross
│           │   │   ├── i686-all-gcc-12.cross
│           │   │   ├── i686-all-gcc-9.cross
│           │   │   ├── i686-clang-10.cross
│           │   │   ├── i686-clang-11.cross
│           │   │   ├── i686-clang-12.cross
│           │   │   ├── i686-clang-13.cross
│           │   │   ├── i686-clang-14.cross
│           │   │   ├── i686-clang-15.cross
│           │   │   ├── i686-gcc-10-debflags.cross
│           │   │   ├── i686-gcc-10.cross
│           │   │   ├── i686-gcc-11-debflags.cross
│           │   │   ├── i686-gcc-11-qemu-ccache.cross
│           │   │   ├── i686-gcc-11-qemu.cross
│           │   │   ├── i686-gcc-11.cross
│           │   │   ├── i686-gcc-12-debflags.cross
│           │   │   ├── i686-gcc-12-qemu-ccache.cross
│           │   │   ├── i686-gcc-12.cross
│           │   │   ├── i686-gcc-14.cross
│           │   │   ├── i686-gcc-9.cross
│           │   │   ├── i686-gcc-qemu-ccache.cross
│           │   │   ├── i686-gcc-qemu.cross
│           │   │   ├── icc.cross
│           │   │   ├── icx.cross
│           │   │   ├── intel-all-clang-10.cross
│           │   │   ├── intel-all-clang-11.cross
│           │   │   ├── intel-all-clang-12.cross
│           │   │   ├── intel-all-clang-13.cross
│           │   │   ├── intel-all-clang-14.cross
│           │   │   ├── intel-all-clang-15.cross
│           │   │   ├── intel-all-clang-7.cross
│           │   │   ├── intel-all-clang-8.cross
│           │   │   ├── intel-all-clang-9.cross
│           │   │   ├── intel-all-gcc-10.cross
│           │   │   ├── intel-all-gcc-11.cross
│           │   │   ├── intel-all-gcc-12.cross
│           │   │   ├── intel-all-gcc-8.cross
│           │   │   ├── intel-all-icc.cross
│           │   │   ├── intel-all-icx.cross
│           │   │   ├── loongarch64-clang-18-ccache.cross
│           │   │   ├── loongarch64-clang-19-ccache.cross
│           │   │   ├── loongarch64-clang-20-ccache.cross
│           │   │   ├── loongarch64-clang-21-ccache.cross
│           │   │   ├── loongarch64-clang-22-ccache.cross
│           │   │   ├── loongarch64-clang-23-ccache.cross
│           │   │   ├── loongarch64-gcc-13-ccache.cross
│           │   │   ├── loongarch64-gcc-13.cross
│           │   │   ├── loongarch64-gcc-14-ccache.cross
│           │   │   ├── loongarch64-gcc-15-ccache.cross
│           │   │   ├── loongarch64-gcc-16-ccache.cross
│           │   │   ├── loongson-gcc-10.cross
│           │   │   ├── loongson-gcc-11.cross
│           │   │   ├── loongson-gcc-12.cross
│           │   │   ├── loongson-gcc-ccache.cross
│           │   │   ├── loongson-gcc.cross
│           │   │   ├── mips64el+msa-gcc-10.cross
│           │   │   ├── mips64el+msa-gcc-11.cross
│           │   │   ├── mips64el+msa-gcc-12.cross
│           │   │   ├── mips64el-clang-11.cross
│           │   │   ├── mips64el-clang-12.cross
│           │   │   ├── mips64el-clang-13.cross
│           │   │   ├── mips64el-clang-14.cross
│           │   │   ├── mips64el-clang-15.cross
│           │   │   ├── mips64el-clang-16-ccache.cross
│           │   │   ├── mips64el-clang-16.cross
│           │   │   ├── mips64el-clang-17-ccache.cross
│           │   │   ├── mips64el-clang-18-ccache.cross
│           │   │   ├── mips64el-gcc-10.cross
│           │   │   ├── mips64el-gcc-11.cross
│           │   │   ├── mips64el-gcc-12-ccache.cross
│           │   │   ├── mips64el-gcc-12.cross
│           │   │   ├── mips64el-gcc-13-ccache.cross
│           │   │   ├── mips64el-gcc-14-ccache.cross
│           │   │   ├── mips64el-gcc-15-ccache.cross
│           │   │   ├── mips64el-gcc-16-ccache.cross
│           │   │   ├── power8-clang-9.cross
│           │   │   ├── power8-gcc-10.cross
│           │   │   ├── power9-clang-10.cross
│           │   │   ├── power9-clang-11.cross
│           │   │   ├── power9-clang-12.cross
│           │   │   ├── power9-clang-13.cross
│           │   │   ├── power9-clang-14.cross
│           │   │   ├── power9-clang-15-ccache.cross
│           │   │   ├── power9-clang-15.cross
│           │   │   ├── power9-gcc-10.cross
│           │   │   ├── power9-gcc-11.cross
│           │   │   ├── power9-gcc-12-ccache.cross
│           │   │   ├── power9-gcc-12.cross
│           │   │   ├── power9-gcc-13-ccache.cross
│           │   │   ├── power9-gcc-14-ccache.cross
│           │   │   ├── power9-gcc-15-ccache.cross
│           │   │   ├── power9-gcc-16-ccache.cross
│           │   │   ├── ppc64el-clang-14.cross
│           │   │   ├── ppc64el-clang-15-ccache.cross
│           │   │   ├── ppc64el-clang-15.cross
│           │   │   ├── ppc64el-clang-16-ccache.cross
│           │   │   ├── ppc64el-clang-17-ccache.cross
│           │   │   ├── ppc64el-clang-18-ccache.cross
│           │   │   ├── ppc64el-clang-19-ccache.cross
│           │   │   ├── ppc64el-clang-20-ccache.cross
│           │   │   ├── ppc64el-clang-21-ccache.cross
│           │   │   ├── ppc64el-clang-22-ccache.cross
│           │   │   ├── ppc64el-clang-23-ccache.cross
│           │   │   ├── ppc64el-gcc-10-debflags.cross
│           │   │   ├── ppc64el-gcc-10.cross
│           │   │   ├── ppc64el-gcc-11-debflags.cross
│           │   │   ├── ppc64el-gcc-11.cross
│           │   │   ├── ppc64el-gcc-12-debflags.cross
│           │   │   ├── ppc64el-gcc-12.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64-clang-10.cross
│           │   │   ├── riscv64-clang-11.cross
│           │   │   ├── riscv64-clang-12.cross
│           │   │   ├── riscv64-clang-13.cross
│           │   │   ├── riscv64-clang-14.cross
│           │   │   ├── riscv64-clang-15-ccache.cross
│           │   │   ├── riscv64-clang-15.cross
│           │   │   ├── riscv64-clang-16-ccache.cross
│           │   │   ├── riscv64-clang-16.cross
│           │   │   ├── riscv64-clang-17-ccache.cross
│           │   │   ├── riscv64-clang-17.cross
│           │   │   ├── riscv64-clang-18-ccache.cross
│           │   │   ├── riscv64-clang-19-ccache.cross
│           │   │   ├── riscv64-clang-20-ccache.cross
│           │   │   ├── riscv64-clang-21-ccache.cross
│           │   │   ├── riscv64-clang-22-ccache.cross
│           │   │   ├── riscv64-clang-23-ccache.cross
│           │   │   ├── riscv64-clang-9.cross
│           │   │   ├── riscv64-gcc-10.cross
│           │   │   ├── riscv64-gcc-11.cross
│           │   │   ├── riscv64-gcc-12-O3-ccache.cross
│           │   │   ├── riscv64-gcc-12-ccache.cross
│           │   │   ├── riscv64-gcc-12.cross
│           │   │   ├── riscv64-gcc-13-O3-ccache.cross
│           │   │   ├── riscv64-gcc-13-ccache.cross
│           │   │   ├── riscv64-gcc-14-O3-ccache.cross
│           │   │   ├── riscv64-gcc-14-ccache.cross
│           │   │   ├── riscv64-gcc-15-O3-ccache.cross
│           │   │   ├── riscv64-gcc-15-ccache.cross
│           │   │   ├── riscv64-gcc-16-O3-ccache.cross
│           │   │   ├── riscv64-gcc-16-ccache.cross
│           │   │   ├── s390x-clang-11.cross
│           │   │   ├── s390x-clang-12.cross
│           │   │   ├── s390x-clang-13.cross
│           │   │   ├── s390x-clang-14.cross
│           │   │   ├── s390x-clang-15-ccache.cross
│           │   │   ├── s390x-clang-15.cross
│           │   │   ├── s390x-clang-16-ccache.cross
│           │   │   ├── s390x-clang-17-ccache.cross
│           │   │   ├── s390x-clang-18-ccache.cross
│           │   │   ├── s390x-clang-19-ccache.cross
│           │   │   ├── s390x-clang-20-ccache.cross
│           │   │   ├── s390x-clang-21-ccache.cross
│           │   │   ├── s390x-clang-22-ccache.cross
│           │   │   ├── s390x-clang-23-ccache.cross
│           │   │   ├── s390x-gcc-10.cross
│           │   │   ├── s390x-gcc-11-debflags.cross
│           │   │   ├── s390x-gcc-11.cross
│           │   │   ├── s390x-gcc-12-ccache.cross
│           │   │   ├── s390x-gcc-12-debflags.cross
│           │   │   ├── s390x-gcc-12.cross
│           │   │   ├── s390x-gcc-13-ccache.cross
│           │   │   ├── s390x-gcc-14-ccache.cross
│           │   │   ├── s390x-gcc-15-ccache.cross
│           │   │   ├── s390x-gcc-16-ccache.cross
│           │   │   ├── s390x-gcc-8.cross
│           │   │   ├── s390x-gcc-9.cross
│           │   │   ├── sleef-gcc-10.cross
│           │   │   ├── sleef-gcc-11.cross
│           │   │   └── sleef-gcc-12.cross
│           │   └── simde-dev.sh
│           ├── meson.build
│           ├── meson_options.txt
│           ├── netlify-disable.toml
│           ├── simde/
│           │   ├── arm/
│           │   │   ├── neon/
│           │   │   │   ├── aba.h
│           │   │   │   ├── abal.h
│           │   │   │   ├── abal_high.h
│           │   │   │   ├── abd.h
│           │   │   │   ├── abdl.h
│           │   │   │   ├── abdl_high.h
│           │   │   │   ├── abs.h
│           │   │   │   ├── add.h
│           │   │   │   ├── addhn.h
│           │   │   │   ├── addhn_high.h
│           │   │   │   ├── addl.h
│           │   │   │   ├── addl_high.h
│           │   │   │   ├── addlv.h
│           │   │   │   ├── addv.h
│           │   │   │   ├── addw.h
│           │   │   │   ├── addw_high.h
│           │   │   │   ├── aes.h
│           │   │   │   ├── and.h
│           │   │   │   ├── bcax.h
│           │   │   │   ├── bic.h
│           │   │   │   ├── bsl.h
│           │   │   │   ├── cadd_rot270.h
│           │   │   │   ├── cadd_rot90.h
│           │   │   │   ├── cage.h
│           │   │   │   ├── cagt.h
│           │   │   │   ├── cale.h
│           │   │   │   ├── calt.h
│           │   │   │   ├── ceq.h
│           │   │   │   ├── ceqz.h
│           │   │   │   ├── cge.h
│           │   │   │   ├── cgez.h
│           │   │   │   ├── cgt.h
│           │   │   │   ├── cgtz.h
│           │   │   │   ├── cle.h
│           │   │   │   ├── clez.h
│           │   │   │   ├── cls.h
│           │   │   │   ├── clt.h
│           │   │   │   ├── cltz.h
│           │   │   │   ├── clz.h
│           │   │   │   ├── cmla.h
│           │   │   │   ├── cmla_lane.h
│           │   │   │   ├── cmla_rot180.h
│           │   │   │   ├── cmla_rot180_lane.h
│           │   │   │   ├── cmla_rot270.h
│           │   │   │   ├── cmla_rot270_lane.h
│           │   │   │   ├── cmla_rot90.h
│           │   │   │   ├── cmla_rot90_lane.h
│           │   │   │   ├── cnt.h
│           │   │   │   ├── combine.h
│           │   │   │   ├── copy_lane.h
│           │   │   │   ├── crc32.h
│           │   │   │   ├── create.h
│           │   │   │   ├── cvt.h
│           │   │   │   ├── cvt_n.h
│           │   │   │   ├── cvtm.h
│           │   │   │   ├── cvtn.h
│           │   │   │   ├── cvtp.h
│           │   │   │   ├── div.h
│           │   │   │   ├── dot.h
│           │   │   │   ├── dot_lane.h
│           │   │   │   ├── dup_lane.h
│           │   │   │   ├── dup_n.h
│           │   │   │   ├── eor.h
│           │   │   │   ├── ext.h
│           │   │   │   ├── fma.h
│           │   │   │   ├── fma_lane.h
│           │   │   │   ├── fma_n.h
│           │   │   │   ├── fmlal.h
│           │   │   │   ├── fmlsl.h
│           │   │   │   ├── fms.h
│           │   │   │   ├── fms_lane.h
│           │   │   │   ├── fms_n.h
│           │   │   │   ├── get_high.h
│           │   │   │   ├── get_lane.h
│           │   │   │   ├── get_low.h
│           │   │   │   ├── hadd.h
│           │   │   │   ├── hsub.h
│           │   │   │   ├── ld1.h
│           │   │   │   ├── ld1_dup.h
│           │   │   │   ├── ld1_lane.h
│           │   │   │   ├── ld1_x2.h
│           │   │   │   ├── ld1_x3.h
│           │   │   │   ├── ld1_x4.h
│           │   │   │   ├── ld1q_x2.h
│           │   │   │   ├── ld1q_x3.h
│           │   │   │   ├── ld1q_x4.h
│           │   │   │   ├── ld2.h
│           │   │   │   ├── ld2_dup.h
│           │   │   │   ├── ld2_lane.h
│           │   │   │   ├── ld3.h
│           │   │   │   ├── ld3_dup.h
│           │   │   │   ├── ld3_lane.h
│           │   │   │   ├── ld4.h
│           │   │   │   ├── ld4_dup.h
│           │   │   │   ├── ld4_lane.h
│           │   │   │   ├── max.h
│           │   │   │   ├── maxnm.h
│           │   │   │   ├── maxnmv.h
│           │   │   │   ├── maxv.h
│           │   │   │   ├── min.h
│           │   │   │   ├── minnm.h
│           │   │   │   ├── minnmv.h
│           │   │   │   ├── minv.h
│           │   │   │   ├── mla.h
│           │   │   │   ├── mla_lane.h
│           │   │   │   ├── mla_n.h
│           │   │   │   ├── mlal.h
│           │   │   │   ├── mlal_high.h
│           │   │   │   ├── mlal_high_lane.h
│           │   │   │   ├── mlal_high_n.h
│           │   │   │   ├── mlal_lane.h
│           │   │   │   ├── mlal_n.h
│           │   │   │   ├── mls.h
│           │   │   │   ├── mls_lane.h
│           │   │   │   ├── mls_n.h
│           │   │   │   ├── mlsl.h
│           │   │   │   ├── mlsl_high.h
│           │   │   │   ├── mlsl_high_lane.h
│           │   │   │   ├── mlsl_high_n.h
│           │   │   │   ├── mlsl_lane.h
│           │   │   │   ├── mlsl_n.h
│           │   │   │   ├── mmlaq.h
│           │   │   │   ├── movl.h
│           │   │   │   ├── movl_high.h
│           │   │   │   ├── movn.h
│           │   │   │   ├── movn_high.h
│           │   │   │   ├── mul.h
│           │   │   │   ├── mul_lane.h
│           │   │   │   ├── mul_n.h
│           │   │   │   ├── mull.h
│           │   │   │   ├── mull_high.h
│           │   │   │   ├── mull_high_lane.h
│           │   │   │   ├── mull_high_n.h
│           │   │   │   ├── mull_lane.h
│           │   │   │   ├── mull_n.h
│           │   │   │   ├── mulx.h
│           │   │   │   ├── mulx_lane.h
│           │   │   │   ├── mulx_n.h
│           │   │   │   ├── mvn.h
│           │   │   │   ├── neg.h
│           │   │   │   ├── orn.h
│           │   │   │   ├── orr.h
│           │   │   │   ├── padal.h
│           │   │   │   ├── padd.h
│           │   │   │   ├── paddl.h
│           │   │   │   ├── pmax.h
│           │   │   │   ├── pmaxnm.h
│           │   │   │   ├── pmin.h
│           │   │   │   ├── pminnm.h
│           │   │   │   ├── qabs.h
│           │   │   │   ├── qadd.h
│           │   │   │   ├── qdmlal.h
│           │   │   │   ├── qdmlal_high.h
│           │   │   │   ├── qdmlal_high_lane.h
│           │   │   │   ├── qdmlal_high_n.h
│           │   │   │   ├── qdmlal_lane.h
│           │   │   │   ├── qdmlal_n.h
│           │   │   │   ├── qdmlsl.h
│           │   │   │   ├── qdmlsl_high.h
│           │   │   │   ├── qdmlsl_high_lane.h
│           │   │   │   ├── qdmlsl_high_n.h
│           │   │   │   ├── qdmlsl_lane.h
│           │   │   │   ├── qdmlsl_n.h
│           │   │   │   ├── qdmulh.h
│           │   │   │   ├── qdmulh_lane.h
│           │   │   │   ├── qdmulh_n.h
│           │   │   │   ├── qdmull.h
│           │   │   │   ├── qdmull_high.h
│           │   │   │   ├── qdmull_high_lane.h
│           │   │   │   ├── qdmull_high_n.h
│           │   │   │   ├── qdmull_lane.h
│           │   │   │   ├── qdmull_n.h
│           │   │   │   ├── qmovn.h
│           │   │   │   ├── qmovn_high.h
│           │   │   │   ├── qmovun.h
│           │   │   │   ├── qmovun_high.h
│           │   │   │   ├── qneg.h
│           │   │   │   ├── qrdmlah.h
│           │   │   │   ├── qrdmlah_lane.h
│           │   │   │   ├── qrdmlsh.h
│           │   │   │   ├── qrdmlsh_lane.h
│           │   │   │   ├── qrdmulh.h
│           │   │   │   ├── qrdmulh_lane.h
│           │   │   │   ├── qrdmulh_n.h
│           │   │   │   ├── qrshl.h
│           │   │   │   ├── qrshrn_high_n.h
│           │   │   │   ├── qrshrn_n.h
│           │   │   │   ├── qrshrun_high_n.h
│           │   │   │   ├── qrshrun_n.h
│           │   │   │   ├── qshl.h
│           │   │   │   ├── qshl_n.h
│           │   │   │   ├── qshlu_n.h
│           │   │   │   ├── qshrn_high_n.h
│           │   │   │   ├── qshrn_n.h
│           │   │   │   ├── qshrun_high_n.h
│           │   │   │   ├── qshrun_n.h
│           │   │   │   ├── qsub.h
│           │   │   │   ├── qtbl.h
│           │   │   │   ├── qtbx.h
│           │   │   │   ├── raddhn.h
│           │   │   │   ├── raddhn_high.h
│           │   │   │   ├── rax.h
│           │   │   │   ├── rbit.h
│           │   │   │   ├── recpe.h
│           │   │   │   ├── recps.h
│           │   │   │   ├── recpx.h
│           │   │   │   ├── reinterpret.h
│           │   │   │   ├── rev16.h
│           │   │   │   ├── rev32.h
│           │   │   │   ├── rev64.h
│           │   │   │   ├── rhadd.h
│           │   │   │   ├── rnd.h
│           │   │   │   ├── rnd32x.h
│           │   │   │   ├── rnd32z.h
│           │   │   │   ├── rnd64x.h
│           │   │   │   ├── rnd64z.h
│           │   │   │   ├── rnda.h
│           │   │   │   ├── rndi.h
│           │   │   │   ├── rndm.h
│           │   │   │   ├── rndn.h
│           │   │   │   ├── rndp.h
│           │   │   │   ├── rndx.h
│           │   │   │   ├── rshl.h
│           │   │   │   ├── rshr_n.h
│           │   │   │   ├── rshrn_high_n.h
│           │   │   │   ├── rshrn_n.h
│           │   │   │   ├── rsqrte.h
│           │   │   │   ├── rsqrts.h
│           │   │   │   ├── rsra_n.h
│           │   │   │   ├── rsubhn.h
│           │   │   │   ├── rsubhn_high.h
│           │   │   │   ├── set_lane.h
│           │   │   │   ├── sha1.h
│           │   │   │   ├── sha256.h
│           │   │   │   ├── sha512.h
│           │   │   │   ├── shl.h
│           │   │   │   ├── shl_n.h
│           │   │   │   ├── shll_high_n.h
│           │   │   │   ├── shll_n.h
│           │   │   │   ├── shr_n.h
│           │   │   │   ├── shrn_high_n.h
│           │   │   │   ├── shrn_n.h
│           │   │   │   ├── sli_n.h
│           │   │   │   ├── sm3.h
│           │   │   │   ├── sm4.h
│           │   │   │   ├── sqadd.h
│           │   │   │   ├── sqrt.h
│           │   │   │   ├── sra_n.h
│           │   │   │   ├── sri_n.h
│           │   │   │   ├── st1.h
│           │   │   │   ├── st1_lane.h
│           │   │   │   ├── st1_x2.h
│           │   │   │   ├── st1_x3.h
│           │   │   │   ├── st1_x4.h
│           │   │   │   ├── st1q_x2.h
│           │   │   │   ├── st1q_x3.h
│           │   │   │   ├── st1q_x4.h
│           │   │   │   ├── st2.h
│           │   │   │   ├── st2_lane.h
│           │   │   │   ├── st3.h
│           │   │   │   ├── st3_lane.h
│           │   │   │   ├── st4.h
│           │   │   │   ├── st4_lane.h
│           │   │   │   ├── sub.h
│           │   │   │   ├── subhn.h
│           │   │   │   ├── subhn_high.h
│           │   │   │   ├── subl.h
│           │   │   │   ├── subl_high.h
│           │   │   │   ├── subw.h
│           │   │   │   ├── subw_high.h
│           │   │   │   ├── sudot_lane.h
│           │   │   │   ├── tbl.h
│           │   │   │   ├── tbx.h
│           │   │   │   ├── trn.h
│           │   │   │   ├── trn1.h
│           │   │   │   ├── trn2.h
│           │   │   │   ├── tst.h
│           │   │   │   ├── types.h
│           │   │   │   ├── uqadd.h
│           │   │   │   ├── usdot.h
│           │   │   │   ├── usdot_lane.h
│           │   │   │   ├── uzp.h
│           │   │   │   ├── uzp1.h
│           │   │   │   ├── uzp2.h
│           │   │   │   ├── xar.h
│           │   │   │   ├── zip.h
│           │   │   │   ├── zip1.h
│           │   │   │   └── zip2.h
│           │   │   ├── neon.h
│           │   │   ├── sve/
│           │   │   │   ├── add.h
│           │   │   │   ├── and.h
│           │   │   │   ├── cmplt.h
│           │   │   │   ├── cnt.h
│           │   │   │   ├── dup.h
│           │   │   │   ├── ld1.h
│           │   │   │   ├── ptest.h
│           │   │   │   ├── ptrue.h
│           │   │   │   ├── qadd.h
│           │   │   │   ├── reinterpret.h
│           │   │   │   ├── sel.h
│           │   │   │   ├── st1.h
│           │   │   │   ├── sub.h
│           │   │   │   ├── types.h
│           │   │   │   └── whilelt.h
│           │   │   └── sve.h
│           │   ├── check.h
│           │   ├── debug-trap.h
│           │   ├── hedley.h
│           │   ├── mips/
│           │   │   ├── msa/
│           │   │   │   ├── add_a.h
│           │   │   │   ├── adds.h
│           │   │   │   ├── adds_a.h
│           │   │   │   ├── addv.h
│           │   │   │   ├── addvi.h
│           │   │   │   ├── and.h
│           │   │   │   ├── andi.h
│           │   │   │   ├── ld.h
│           │   │   │   ├── madd.h
│           │   │   │   ├── st.h
│           │   │   │   ├── subv.h
│           │   │   │   └── types.h
│           │   │   └── msa.h
│           │   ├── simde-aes.h
│           │   ├── simde-align.h
│           │   ├── simde-arch.h
│           │   ├── simde-bf16.h
│           │   ├── simde-common.h
│           │   ├── simde-complex.h
│           │   ├── simde-constify.h
│           │   ├── simde-detect-clang.h
│           │   ├── simde-diagnostic.h
│           │   ├── simde-f16.h
│           │   ├── simde-features.h
│           │   ├── simde-math.h
│           │   ├── wasm/
│           │   │   ├── relaxed-simd.h
│           │   │   └── simd128.h
│           │   └── x86/
│           │       ├── aes.h
│           │       ├── avx.h
│           │       ├── avx2.h
│           │       ├── avx512/
│           │       │   ├── 2intersect.h
│           │       │   ├── 4dpwssd.h
│           │       │   ├── 4dpwssds.h
│           │       │   ├── abs.h
│           │       │   ├── add.h
│           │       │   ├── adds.h
│           │       │   ├── and.h
│           │       │   ├── andnot.h
│           │       │   ├── avg.h
│           │       │   ├── bitshuffle.h
│           │       │   ├── blend.h
│           │       │   ├── broadcast.h
│           │       │   ├── cast.h
│           │       │   ├── cmp.h
│           │       │   ├── cmpeq.h
│           │       │   ├── cmpge.h
│           │       │   ├── cmpgt.h
│           │       │   ├── cmple.h
│           │       │   ├── cmplt.h
│           │       │   ├── cmpneq.h
│           │       │   ├── compress.h
│           │       │   ├── conflict.h
│           │       │   ├── copysign.h
│           │       │   ├── cvt.h
│           │       │   ├── cvts.h
│           │       │   ├── cvtt.h
│           │       │   ├── cvtus.h
│           │       │   ├── dbsad.h
│           │       │   ├── div.h
│           │       │   ├── dpbf16.h
│           │       │   ├── dpbusd.h
│           │       │   ├── dpbusds.h
│           │       │   ├── dpwssd.h
│           │       │   ├── dpwssds.h
│           │       │   ├── expand.h
│           │       │   ├── expandloadu.h
│           │       │   ├── extract.h
│           │       │   ├── fixupimm.h
│           │       │   ├── fixupimm_round.h
│           │       │   ├── flushsubnormal.h
│           │       │   ├── fmadd.h
│           │       │   ├── fmaddsub.h
│           │       │   ├── fmsub.h
│           │       │   ├── fnmadd.h
│           │       │   ├── fnmsub.h
│           │       │   ├── fpclass.h
│           │       │   ├── gather.h
│           │       │   ├── insert.h
│           │       │   ├── kand.h
│           │       │   ├── knot.h
│           │       │   ├── kshift.h
│           │       │   ├── kxor.h
│           │       │   ├── load.h
│           │       │   ├── loadu.h
│           │       │   ├── lzcnt.h
│           │       │   ├── madd.h
│           │       │   ├── maddubs.h
│           │       │   ├── max.h
│           │       │   ├── min.h
│           │       │   ├── mov.h
│           │       │   ├── mov_mask.h
│           │       │   ├── movm.h
│           │       │   ├── mul.h
│           │       │   ├── mulhi.h
│           │       │   ├── mulhrs.h
│           │       │   ├── mullo.h
│           │       │   ├── multishift.h
│           │       │   ├── negate.h
│           │       │   ├── or.h
│           │       │   ├── packs.h
│           │       │   ├── packus.h
│           │       │   ├── permutex.h
│           │       │   ├── permutex2var.h
│           │       │   ├── permutexvar.h
│           │       │   ├── popcnt.h
│           │       │   ├── range.h
│           │       │   ├── range_round.h
│           │       │   ├── rcp.h
│           │       │   ├── reduce.h
│           │       │   ├── rol.h
│           │       │   ├── rolv.h
│           │       │   ├── ror.h
│           │       │   ├── rorv.h
│           │       │   ├── round.h
│           │       │   ├── roundscale.h
│           │       │   ├── roundscale_round.h
│           │       │   ├── sad.h
│           │       │   ├── scalef.h
│           │       │   ├── set.h
│           │       │   ├── set1.h
│           │       │   ├── set4.h
│           │       │   ├── setone.h
│           │       │   ├── setr.h
│           │       │   ├── setr4.h
│           │       │   ├── setzero.h
│           │       │   ├── shldv.h
│           │       │   ├── shuffle.h
│           │       │   ├── sll.h
│           │       │   ├── slli.h
│           │       │   ├── sllv.h
│           │       │   ├── sqrt.h
│           │       │   ├── sra.h
│           │       │   ├── srai.h
│           │       │   ├── srav.h
│           │       │   ├── srl.h
│           │       │   ├── srli.h
│           │       │   ├── srlv.h
│           │       │   ├── store.h
│           │       │   ├── storeu.h
│           │       │   ├── sub.h
│           │       │   ├── subs.h
│           │       │   ├── ternarylogic.h
│           │       │   ├── test.h
│           │       │   ├── testn.h
│           │       │   ├── types.h
│           │       │   ├── unpackhi.h
│           │       │   ├── unpacklo.h
│           │       │   ├── xor.h
│           │       │   └── xorsign.h
│           │       ├── avx512.h
│           │       ├── bmi.h
│           │       ├── clmul.h
│           │       ├── f16c.h
│           │       ├── fma.h
│           │       ├── gfni.h
│           │       ├── mmx.h
│           │       ├── sse.h
│           │       ├── sse2.h
│           │       ├── sse3.h
│           │       ├── sse4.1.h
│           │       ├── sse4.2.h
│           │       ├── ssse3.h
│           │       ├── svml.h
│           │       └── xop.h
│           └── test/
│               ├── .gitignore
│               ├── arm/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── neon/
│               │   │   ├── aba.c
│               │   │   ├── abal.c
│               │   │   ├── abal_high.c
│               │   │   ├── abd.c
│               │   │   ├── abdl.c
│               │   │   ├── abdl_high.c
│               │   │   ├── abs.c
│               │   │   ├── add.c
│               │   │   ├── addhn.c
│               │   │   ├── addhn_high.c
│               │   │   ├── addl.c
│               │   │   ├── addl_high.c
│               │   │   ├── addlv.c
│               │   │   ├── addv.c
│               │   │   ├── addw.c
│               │   │   ├── addw_high.c
│               │   │   ├── aes.c
│               │   │   ├── and.c
│               │   │   ├── bcax.c
│               │   │   ├── bic.c
│               │   │   ├── bsl.c
│               │   │   ├── cadd_rot270.c
│               │   │   ├── cadd_rot90.c
│               │   │   ├── cage.c
│               │   │   ├── cagt.c
│               │   │   ├── cale.c
│               │   │   ├── calt.c
│               │   │   ├── ceq.c
│               │   │   ├── ceqz.c
│               │   │   ├── cge.c
│               │   │   ├── cgez.c
│               │   │   ├── cgt.c
│               │   │   ├── cgtz.c
│               │   │   ├── cle.c
│               │   │   ├── clez.c
│               │   │   ├── cls.c
│               │   │   ├── clt.c
│               │   │   ├── cltz.c
│               │   │   ├── clz.c
│               │   │   ├── cmla.c
│               │   │   ├── cmla_lane.c
│               │   │   ├── cmla_rot180.c
│               │   │   ├── cmla_rot180_lane.c
│               │   │   ├── cmla_rot270.c
│               │   │   ├── cmla_rot270_lane.c
│               │   │   ├── cmla_rot90.c
│               │   │   ├── cmla_rot90_lane.c
│               │   │   ├── cnt.c
│               │   │   ├── combine.c
│               │   │   ├── copy_lane.c
│               │   │   ├── crc32.c
│               │   │   ├── create.c
│               │   │   ├── cvt.c
│               │   │   ├── cvt_n.c
│               │   │   ├── cvtm.c
│               │   │   ├── cvtn.c
│               │   │   ├── cvtp.c
│               │   │   ├── div.c
│               │   │   ├── dot.c
│               │   │   ├── dot_lane.c
│               │   │   ├── dup_lane.c
│               │   │   ├── dup_n.c
│               │   │   ├── eor.c
│               │   │   ├── ext.c
│               │   │   ├── fma.c
│               │   │   ├── fma_lane.c
│               │   │   ├── fma_n.c
│               │   │   ├── fmlal.c
│               │   │   ├── fmlsl.c
│               │   │   ├── fms.c
│               │   │   ├── fms_lane.c
│               │   │   ├── fms_n.c
│               │   │   ├── get_high.c
│               │   │   ├── get_lane.c
│               │   │   ├── get_low.c
│               │   │   ├── hadd.c
│               │   │   ├── hsub.c
│               │   │   ├── ld1_dup.c
│               │   │   ├── ld1_lane.c
│               │   │   ├── ld1_x2.c
│               │   │   ├── ld1_x3.c
│               │   │   ├── ld1_x4.c
│               │   │   ├── ld1q_x2.c
│               │   │   ├── ld1q_x3.c
│               │   │   ├── ld1q_x4.c
│               │   │   ├── ld2.c
│               │   │   ├── ld2_dup.c
│               │   │   ├── ld2_lane.c
│               │   │   ├── ld3.c
│               │   │   ├── ld3_dup.c
│               │   │   ├── ld3_lane.c
│               │   │   ├── ld4.c
│               │   │   ├── ld4_dup.c
│               │   │   ├── ld4_lane.c
│               │   │   ├── max.c
│               │   │   ├── maxnm.c
│               │   │   ├── maxnmv.c
│               │   │   ├── maxv.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── minnm.c
│               │   │   ├── minnmv.c
│               │   │   ├── minv.c
│               │   │   ├── mla.c
│               │   │   ├── mla_lane.c
│               │   │   ├── mla_n.c
│               │   │   ├── mlal.c
│               │   │   ├── mlal_high.c
│               │   │   ├── mlal_high_lane.c
│               │   │   ├── mlal_high_n.c
│               │   │   ├── mlal_lane.c
│               │   │   ├── mlal_n.c
│               │   │   ├── mls.c
│               │   │   ├── mls_lane.c
│               │   │   ├── mls_n.c
│               │   │   ├── mlsl.c
│               │   │   ├── mlsl_high.c
│               │   │   ├── mlsl_high_lane.c
│               │   │   ├── mlsl_high_n.c
│               │   │   ├── mlsl_lane.c
│               │   │   ├── mlsl_n.c
│               │   │   ├── mmlaq.c
│               │   │   ├── modify_c.txt
│               │   │   ├── movl.c
│               │   │   ├── movl_high.c
│               │   │   ├── movn.c
│               │   │   ├── movn_high.c
│               │   │   ├── mul.c
│               │   │   ├── mul_lane.c
│               │   │   ├── mul_n.c
│               │   │   ├── mull.c
│               │   │   ├── mull_high.c
│               │   │   ├── mull_high_lane.c
│               │   │   ├── mull_high_n.c
│               │   │   ├── mull_lane.c
│               │   │   ├── mull_n.c
│               │   │   ├── mulx.c
│               │   │   ├── mulx_lane.c
│               │   │   ├── mulx_n.c
│               │   │   ├── mvn.c
│               │   │   ├── neg.c
│               │   │   ├── orn.c
│               │   │   ├── orr.c
│               │   │   ├── padal.c
│               │   │   ├── padd.c
│               │   │   ├── paddl.c
│               │   │   ├── pmax.c
│               │   │   ├── pmaxnm.c
│               │   │   ├── pmin.c
│               │   │   ├── pminnm.c
│               │   │   ├── qabs.c
│               │   │   ├── qadd.c
│               │   │   ├── qdmlal.c
│               │   │   ├── qdmlal_high.c
│               │   │   ├── qdmlal_high_lane.c
│               │   │   ├── qdmlal_high_n.c
│               │   │   ├── qdmlal_lane.c
│               │   │   ├── qdmlal_n.c
│               │   │   ├── qdmlsl.c
│               │   │   ├── qdmlsl_high.c
│               │   │   ├── qdmlsl_high_lane.c
│               │   │   ├── qdmlsl_high_n.c
│               │   │   ├── qdmlsl_lane.c
│               │   │   ├── qdmlsl_n.c
│               │   │   ├── qdmulh.c
│               │   │   ├── qdmulh_lane.c
│               │   │   ├── qdmulh_n.c
│               │   │   ├── qdmull.c
│               │   │   ├── qdmull_high.c
│               │   │   ├── qdmull_high_lane.c
│               │   │   ├── qdmull_high_n.c
│               │   │   ├── qdmull_lane.c
│               │   │   ├── qdmull_n.c
│               │   │   ├── qmovn.c
│               │   │   ├── qmovn_high.c
│               │   │   ├── qmovun.c
│               │   │   ├── qmovun_high.c
│               │   │   ├── qneg.c
│               │   │   ├── qrdmlah.c
│               │   │   ├── qrdmlah_lane.c
│               │   │   ├── qrdmlsh.c
│               │   │   ├── qrdmlsh_lane.c
│               │   │   ├── qrdmulh.c
│               │   │   ├── qrdmulh_lane.c
│               │   │   ├── qrdmulh_n.c
│               │   │   ├── qrshl.c
│               │   │   ├── qrshrn_high_n.c
│               │   │   ├── qrshrn_n.c
│               │   │   ├── qrshrun_high_n.c
│               │   │   ├── qrshrun_n.c
│               │   │   ├── qshl.c
│               │   │   ├── qshl_n.c
│               │   │   ├── qshlu_n.c
│               │   │   ├── qshrn_high_n.c
│               │   │   ├── qshrn_n.c
│               │   │   ├── qshrun_high_n.c
│               │   │   ├── qshrun_n.c
│               │   │   ├── qsub.c
│               │   │   ├── qtbl.c
│               │   │   ├── qtbx.c
│               │   │   ├── raddhn.c
│               │   │   ├── raddhn_high.c
│               │   │   ├── rax.c
│               │   │   ├── rbit.c
│               │   │   ├── recpe.c
│               │   │   ├── recps.c
│               │   │   ├── recpx.c
│               │   │   ├── reinterpret.c
│               │   │   ├── rev16.c
│               │   │   ├── rev32.c
│               │   │   ├── rev64.c
│               │   │   ├── rhadd.c
│               │   │   ├── rnd.c
│               │   │   ├── rnd32x.c
│               │   │   ├── rnd32z.c
│               │   │   ├── rnd64x.c
│               │   │   ├── rnd64z.c
│               │   │   ├── rnda.c
│               │   │   ├── rndi.c
│               │   │   ├── rndm.c
│               │   │   ├── rndn.c
│               │   │   ├── rndp.c
│               │   │   ├── rndx.c
│               │   │   ├── rshl.c
│               │   │   ├── rshr_n.c
│               │   │   ├── rshrn_high_n.c
│               │   │   ├── rshrn_n.c
│               │   │   ├── rsqrte.c
│               │   │   ├── rsqrts.c
│               │   │   ├── rsra_n.c
│               │   │   ├── rsubhn.c
│               │   │   ├── rsubhn_high.c
│               │   │   ├── run-tests-neon.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── set_lane.c
│               │   │   ├── sha1.c
│               │   │   ├── sha256.c
│               │   │   ├── sha512.c
│               │   │   ├── shl.c
│               │   │   ├── shl_n.c
│               │   │   ├── shll_high_n.c
│               │   │   ├── shll_n.c
│               │   │   ├── shr_n.c
│               │   │   ├── shrn_high_n.c
│               │   │   ├── shrn_n.c
│               │   │   ├── skel-single.c
│               │   │   ├── skel-triple.c
│               │   │   ├── skel.c
│               │   │   ├── sli_n.c
│               │   │   ├── sm3.c
│               │   │   ├── sm4.c
│               │   │   ├── sqadd.c
│               │   │   ├── sqrt.c
│               │   │   ├── sra_n.c
│               │   │   ├── sri_n.c
│               │   │   ├── st1_lane.c
│               │   │   ├── st1_x2.c
│               │   │   ├── st1_x3.c
│               │   │   ├── st1_x4.c
│               │   │   ├── st1q_x2.c
│               │   │   ├── st1q_x3.c
│               │   │   ├── st1q_x4.c
│               │   │   ├── st2.c
│               │   │   ├── st2_lane.c
│               │   │   ├── st3.c
│               │   │   ├── st3_lane.c
│               │   │   ├── st4.c
│               │   │   ├── st4_lane.c
│               │   │   ├── sub.c
│               │   │   ├── subhn.c
│               │   │   ├── subhn_high.c
│               │   │   ├── subl.c
│               │   │   ├── subl_high.c
│               │   │   ├── subw.c
│               │   │   ├── subw_high.c
│               │   │   ├── sudot_lane.c
│               │   │   ├── tbl.c
│               │   │   ├── tbx.c
│               │   │   ├── test-neon-footer.h
│               │   │   ├── test-neon.h
│               │   │   ├── trn.c
│               │   │   ├── trn1.c
│               │   │   ├── trn2.c
│               │   │   ├── tst.c
│               │   │   ├── uqadd.c
│               │   │   ├── usdot.c
│               │   │   ├── usdot_lane.c
│               │   │   ├── uzp.c
│               │   │   ├── uzp1.c
│               │   │   ├── uzp2.c
│               │   │   ├── xar.c
│               │   │   ├── zip.c
│               │   │   ├── zip1.c
│               │   │   └── zip2.c
│               │   ├── run-tests.c
│               │   ├── run-tests.h
│               │   ├── sve/
│               │   │   ├── add.c
│               │   │   ├── and.c
│               │   │   ├── cmplt.c
│               │   │   ├── dup.c
│               │   │   ├── meson.build
│               │   │   ├── qadd.c
│               │   │   ├── run-tests-neon.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── sel.c
│               │   │   ├── sub.c
│               │   │   ├── test-sve-footer.h
│               │   │   └── test-sve.h
│               │   └── test-arm.h
│               ├── arm64cl.txt
│               ├── check-flags.sh
│               ├── cmake-packaging/
│               │   ├── CMakeLists.txt
│               │   ├── cmake-fetchcontent/
│               │   │   ├── CMakeLists.txt
│               │   │   ├── main.c
│               │   │   └── main.cpp
│               │   └── cmake-find-package/
│               │       ├── CMakeLists.txt
│               │       ├── main.c
│               │       └── main.cpp
│               ├── common/
│               │   ├── common.c
│               │   └── meson.build
│               ├── declare-suites.h
│               ├── docker/
│               │   ├── Dockerfile.Ubuntu1404
│               │   ├── Dockerfile.Ubuntu1604
│               │   ├── Dockerfile.Ubuntu1804
│               │   ├── Dockerfile.arm64
│               │   ├── Dockerfile.arm7
│               │   ├── Dockerfile.icc
│               │   ├── Dockerfile.mipsel
│               │   ├── Dockerfile.ppc64el
│               │   ├── Dockerfile.qemu5.s390x
│               │   └── Dockerfile.s390x
│               ├── download-iig.sh
│               ├── download-sde.sh
│               ├── meson.build
│               ├── mips/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── msa/
│               │   │   ├── add_a.c
│               │   │   ├── adds.c
│               │   │   ├── adds_a.c
│               │   │   ├── addv.c
│               │   │   ├── addvi.c
│               │   │   ├── and.c
│               │   │   ├── andi.c
│               │   │   ├── ld.c
│               │   │   ├── madd.c
│               │   │   ├── meson.build
│               │   │   ├── run-tests-msa.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── st.c
│               │   │   ├── subv.c
│               │   │   ├── test-msa-footer.h
│               │   │   └── test-msa.h
│               │   ├── run-tests.c
│               │   └── run-tests.h
│               ├── native-aliases.sh
│               ├── run-tests.c
│               ├── run-tests.h
│               ├── test.h
│               ├── wasm/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── relaxed-simd/
│               │   │   ├── laneselect.c
│               │   │   ├── madd.c
│               │   │   ├── max.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── nmadd.c
│               │   │   ├── run-tests-wasm.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── swizzle.c
│               │   │   ├── test-relaxed-simd-footer.h
│               │   │   ├── test-relaxed-simd.h
│               │   │   └── trunc.c
│               │   ├── run-tests.c
│               │   ├── run-tests.h
│               │   ├── simd128/
│               │   │   ├── abs.c
│               │   │   ├── add.c
│               │   │   ├── add_sat.c
│               │   │   ├── all_true.c
│               │   │   ├── and.c
│               │   │   ├── andnot.c
│               │   │   ├── any_true.c
│               │   │   ├── avgr.c
│               │   │   ├── bitmask.c
│               │   │   ├── bitselect.c
│               │   │   ├── ceil.c
│               │   │   ├── const.c
│               │   │   ├── convert.c
│               │   │   ├── demote.c
│               │   │   ├── div.c
│               │   │   ├── dot.c
│               │   │   ├── eq.c
│               │   │   ├── extadd_pairwise.c
│               │   │   ├── extend_high.c
│               │   │   ├── extend_low.c
│               │   │   ├── extmul_high.c
│               │   │   ├── extmul_low.c
│               │   │   ├── extract_lane.c
│               │   │   ├── floor.c
│               │   │   ├── ge.c
│               │   │   ├── gt.c
│               │   │   ├── le.c
│               │   │   ├── load.c
│               │   │   ├── load_lane.c
│               │   │   ├── load_splat.c
│               │   │   ├── load_zero.c
│               │   │   ├── lt.c
│               │   │   ├── make.c
│               │   │   ├── max.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── mul.c
│               │   │   ├── narrow.c
│               │   │   ├── ne.c
│               │   │   ├── nearest.c
│               │   │   ├── neg.c
│               │   │   ├── not.c
│               │   │   ├── or.c
│               │   │   ├── pmax.c
│               │   │   ├── pmin.c
│               │   │   ├── popcnt.c
│               │   │   ├── promote.c
│               │   │   ├── q15mulr_sat.c
│               │   │   ├── replace_lane.c
│               │   │   ├── run-tests-wasm.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── shl.c
│               │   │   ├── shr.c
│               │   │   ├── shuffle.c
│               │   │   ├── splat.c
│               │   │   ├── sqrt.c
│               │   │   ├── store_lane.c
│               │   │   ├── sub.c
│               │   │   ├── sub_sat.c
│               │   │   ├── swizzle.c
│               │   │   ├── test-simd128-footer.h
│               │   │   ├── test-simd128.h
│               │   │   ├── trunc.c
│               │   │   ├── trunc_sat.c
│               │   │   └── xor.c
│               │   ├── test-simd128-footer.h
│               │   └── test-simd128.h
│               └── x86/
│                   ├── aes.c
│                   ├── avx.c
│                   ├── avx2.c
│                   ├── avx512/
│                   │   ├── 2intersect.c
│                   │   ├── 4dpwssd.c
│                   │   ├── 4dpwssds.c
│                   │   ├── abs.c
│                   │   ├── add.c
│                   │   ├── adds.c
│                   │   ├── and.c
│                   │   ├── andnot.c
│                   │   ├── avg.c
│                   │   ├── bitshuffle.c
│                   │   ├── blend.c
│                   │   ├── broadcast.c
│                   │   ├── cast.c
│                   │   ├── cmp.c
│                   │   ├── cmpeq.c
│                   │   ├── cmpge.c
│                   │   ├── cmpgt.c
│                   │   ├── cmple.c
│                   │   ├── cmplt.c
│                   │   ├── cmpneq.c
│                   │   ├── compress.c
│                   │   ├── conflict.c
│                   │   ├── copysign.c
│                   │   ├── cvt.c
│                   │   ├── cvts.c
│                   │   ├── cvtt.c
│                   │   ├── cvtus.c
│                   │   ├── dbsad.c
│                   │   ├── div.c
│                   │   ├── dpbf16.c
│                   │   ├── dpbusd.c
│                   │   ├── dpbusds.c
│                   │   ├── dpwssd.c
│                   │   ├── dpwssds.c
│                   │   ├── expand.c
│                   │   ├── expandloadu.c
│                   │   ├── extract.c
│                   │   ├── fixupimm.c
│                   │   ├── fixupimm_round.c
│                   │   ├── flushsubnormal.c
│                   │   ├── fmadd.c
│                   │   ├── fmaddsub.c
│                   │   ├── fmsub.c
│                   │   ├── fnmadd.c
│                   │   ├── fnmsub.c
│                   │   ├── fpclass.c
│                   │   ├── gather.c
│                   │   ├── insert.c
│                   │   ├── kand.c
│                   │   ├── knot.c
│                   │   ├── kshift.c
│                   │   ├── kxor.c
│                   │   ├── load.c
│                   │   ├── loadu.c
│                   │   ├── lzcnt.c
│                   │   ├── madd.c
│                   │   ├── maddubs.c
│                   │   ├── max.c
│                   │   ├── meson.build
│                   │   ├── min.c
│                   │   ├── mov.c
│                   │   ├── mov_mask.c
│                   │   ├── movm.c
│                   │   ├── mul.c
│                   │   ├── mulhi.c
│                   │   ├── mulhrs.c
│                   │   ├── mullo.c
│                   │   ├── multishift.c
│                   │   ├── negate.c
│                   │   ├── or.c
│                   │   ├── packs.c
│                   │   ├── packus.c
│                   │   ├── permutex.c
│                   │   ├── permutex2var.c
│                   │   ├── permutexvar.c
│                   │   ├── popcnt.c
│                   │   ├── range.c
│                   │   ├── range_round.c
│                   │   ├── rcp.c
│                   │   ├── reduce.c
│                   │   ├── rol.c
│                   │   ├── rolv.c
│                   │   ├── ror.c
│                   │   ├── rorv.c
│                   │   ├── round.c
│                   │   ├── roundscale.c
│                   │   ├── roundscale_round.c
│                   │   ├── run-tests.c
│                   │   ├── run-tests.h
│                   │   ├── sad.c
│                   │   ├── scalef.c
│                   │   ├── set.c
│                   │   ├── set1.c
│                   │   ├── set4.c
│                   │   ├── setone.c
│                   │   ├── setr.c
│                   │   ├── setr4.c
│                   │   ├── setzero.c
│                   │   ├── shldv.c
│                   │   ├── shuffle.c
│                   │   ├── skel.c
│                   │   ├── sll.c
│                   │   ├── slli.c
│                   │   ├── sllv.c
│                   │   ├── sqrt.c
│                   │   ├── sra.c
│                   │   ├── srai.c
│                   │   ├── srav.c
│                   │   ├── srl.c
│                   │   ├── srli.c
│                   │   ├── srlv.c
│                   │   ├── store.c
│                   │   ├── storeu.c
│                   │   ├── sub.c
│                   │   ├── subs.c
│                   │   ├── ternarylogic.c
│                   │   ├── test-avx512-footer.h
│                   │   ├── test-avx512.h
│                   │   ├── test.c
│                   │   ├── testn.c
│                   │   ├── unpackhi.c
│                   │   ├── unpacklo.c
│                   │   ├── xor.c
│                   │   └── xorsign.c
│                   ├── bmi.c
│                   ├── clmul.c
│                   ├── f16c.c
│                   ├── fma.c
│                   ├── gfni.c
│                   ├── meson.build
│                   ├── mmx.c
│                   ├── run-tests.c
│                   ├── run-tests.h
│                   ├── skel.c
│                   ├── sse.c
│                   ├── sse2.c
│                   ├── sse3.c
│                   ├── sse4.1.c
│                   ├── sse4.2.c
│                   ├── ssse3.c
│                   ├── svml.c
│                   ├── test-avx.h
│                   ├── test-mmx.h
│                   ├── test-sse.h
│                   ├── test-sse2.h
│                   ├── test-x86-footer.h
│                   ├── test-x86.h
│                   └── xop.c
├── doap_tsfile.rdf
├── docs/
│   ├── .gitignore
│   ├── deploy.cjs
│   ├── deploy_staging.cjs
│   ├── package.json
│   └── src/
│       ├── .vuepress/
│       │   ├── components/
│       │   │   ├── PageFooter.vue
│       │   │   └── docsearch/
│       │   │       ├── client/
│       │   │       │   ├── components/
│       │   │       │   │   ├── Docsearch.ts
│       │   │       │   │   └── index.ts
│       │   │       │   ├── composables/
│       │   │       │   │   ├── index.ts
│       │   │       │   │   └── useDocsearchShim.ts
│       │   │       │   ├── config.js
│       │   │       │   ├── index.ts
│       │   │       │   ├── shims.d.ts
│       │   │       │   └── styles/
│       │   │       │       └── docsearch.css
│       │   │       ├── node/
│       │   │       │   ├── docsearchPlugin.ts
│       │   │       │   └── index.ts
│       │   │       └── shared/
│       │   │           ├── index.ts
│       │   │           └── types.ts
│       │   ├── config.ts
│       │   ├── navbar/
│       │   │   ├── en.ts
│       │   │   ├── index.ts
│       │   │   └── zh.ts
│       │   ├── public/
│       │   │   └── .asf.yaml
│       │   ├── sidebar/
│       │   │   ├── V1.0.x/
│       │   │   │   ├── en.ts
│       │   │   │   └── zh.ts
│       │   │   ├── en.ts
│       │   │   ├── index.ts
│       │   │   └── zh.ts
│       │   ├── styles/
│       │   │   ├── config.scss
│       │   │   ├── index.scss
│       │   │   └── palette.scss
│       │   └── theme.ts
│       ├── Community/
│       │   ├── About.md
│       │   └── Feedback.md
│       ├── Development/
│       │   ├── Community-Project-Committers.md
│       │   └── Powered-By.md
│       ├── Download/
│       │   └── README.md
│       ├── README.md
│       ├── UserGuide/
│       │   ├── develop/
│       │   │   └── QuickStart/
│       │   │       ├── Data-Model.md
│       │   │       ├── Interface-Definitions.md
│       │   │       └── QuickStart.md
│       │   └── latest/
│       │       └── QuickStart/
│       │           ├── Data-Model.md
│       │           ├── Navigating_Time_Series_Data.md
│       │           └── QuickStart.md
│       ├── stage/
│       │   └── QuickStart.md
│       └── zh/
│           ├── Community/
│           │   ├── About.md
│           │   └── Feedback.md
│           ├── Development/
│           │   ├── Community-Project-Committers.md
│           │   └── Powered-By.md
│           ├── Download/
│           │   └── README.md
│           ├── README.md
│           ├── UserGuide/
│           │   ├── develop/
│           │   │   └── QuickStart/
│           │   │       ├── Data-Model.md
│           │   │       ├── Interface-Definitions.md
│           │   │       └── QuickStart.md
│           │   └── latest/
│           │       └── QuickStart/
│           │           ├── Data-Model.md
│           │           ├── Navigating_Time_Series_Data.md
│           │           └── QuickStart.md
│           └── stage/
│               └── QuickStart.md
├── java/
│   ├── CLAUDE.md
│   ├── common/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── apache/
│   │       │   │           └── tsfile/
│   │       │   │               ├── annotations/
│   │       │   │               │   ├── MustOverride.java
│   │       │   │               │   ├── TableModel.java
│   │       │   │               │   ├── TreeModel.java
│   │       │   │               │   └── TsFileApi.java
│   │       │   │               ├── block/
│   │       │   │               │   ├── TsBlockBuilderStatus.java
│   │       │   │               │   └── column/
│   │       │   │               │       ├── Column.java
│   │       │   │               │       ├── ColumnBuilder.java
│   │       │   │               │       ├── ColumnBuilderStatus.java
│   │       │   │               │       └── ColumnEncoding.java
│   │       │   │               ├── enums/
│   │       │   │               │   ├── ColumnCategory.java
│   │       │   │               │   └── TSDataType.java
│   │       │   │               ├── i18n/
│   │       │   │               │   └── Messages.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── Accountable.java
│   │       │   │               │   ├── Binary.java
│   │       │   │               │   ├── BitMap.java
│   │       │   │               │   ├── Constants.java
│   │       │   │               │   ├── PooledBinary.java
│   │       │   │               │   ├── RamUsageEstimator.java
│   │       │   │               │   └── TsPrimitiveType.java
│   │       │   │               └── write/
│   │       │   │                   └── UnSupportedDataTypeException.java
│   │       │   └── resources/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── tsfile/
│   │       │                   └── i18n/
│   │       │                       ├── messages.properties
│   │       │                       └── messages_zh.properties
│   │       └── test/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           └── i18n/
│   │                               └── MessagesTest.java
│   ├── examples/
│   │   ├── pom.xml
│   │   ├── readme.md
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           ├── Constant.java
│   │                           ├── DataGenerator.java
│   │                           ├── TsFileForceAppendWrite.java
│   │                           ├── TsFileRead.java
│   │                           ├── TsFileSequenceRead.java
│   │                           ├── TsFileWriteAlignedWithTSRecord.java
│   │                           ├── TsFileWriteAlignedWithTablet.java
│   │                           ├── TsFileWriteWithTSRecord.java
│   │                           ├── TsFileWriteWithTablet.java
│   │                           └── v4/
│   │                               ├── ITsFileReaderAndITsFileWriter.java
│   │                               ├── TagFilterExample.java
│   │                               ├── TsFileTreeReaderExample.java
│   │                               └── WriteTabletWithITsFileWriter.java
│   ├── pom.xml
│   ├── tools/
│   │   ├── README-zh.md
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── assembly/
│   │       │   ├── resources/
│   │       │   │   ├── conf/
│   │       │   │   │   └── logback-cvs2tsfile.xml
│   │       │   │   └── tools/
│   │       │   │       ├── arrow2tsfile.bat
│   │       │   │       ├── arrow2tsfile.sh
│   │       │   │       ├── csv2tsfile.bat
│   │       │   │       ├── csv2tsfile.sh
│   │       │   │       ├── parquet2tsfile.bat
│   │       │   │       └── parquet2tsfile.sh
│   │       │   └── tools.xml
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── tsfile/
│   │       │                   └── tools/
│   │       │                       ├── ArrowSourceReader.java
│   │       │                       ├── AutoSchemaInferer.java
│   │       │                       ├── CsvSourceReader.java
│   │       │                       ├── DateTimeUtils.java
│   │       │                       ├── ImportExecutor.java
│   │       │                       ├── ImportSchema.java
│   │       │                       ├── ImportSchemaParser.java
│   │       │                       ├── ParquetSourceReader.java
│   │       │                       ├── SchemaParser.java
│   │       │                       ├── SourceBatch.java
│   │       │                       ├── SourceReader.java
│   │       │                       ├── TabletBuilder.java
│   │       │                       ├── TimeConverter.java
│   │       │                       ├── TsFileTool.java
│   │       │                       └── ValueConverter.java
│   │       └── test/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           └── tools/
│   │                               ├── ArrowSourceReaderTest.java
│   │                               ├── AutoSchemaInfererTest.java
│   │                               ├── CsvSourceReaderTest.java
│   │                               ├── ImportExecutorTest.java
│   │                               ├── ImportSchemaParserTest.java
│   │                               ├── ParquetSourceReaderTest.java
│   │                               ├── TabletBuilderTest.java
│   │                               ├── TimeConverterTest.java
│   │                               ├── TsFileToolCliTest.java
│   │                               ├── TsfiletoolsTest.java
│   │                               └── ValueConverterTest.java
│   └── tsfile/
│       ├── README-zh.md
│       ├── README.md
│       ├── format-changelist.md
│       ├── pom.xml
│       └── src/
│           ├── main/
│           │   ├── antlr4/
│           │   │   └── org/
│           │   │       └── apache/
│           │   │           └── tsfile/
│           │   │               └── parser/
│           │   │                   ├── PathLexer.g4
│           │   │                   └── PathParser.g4
│           │   ├── codegen/
│           │   │   ├── config.fmpp
│           │   │   ├── dataModel/
│           │   │   │   └── AllFilter.tdd
│           │   │   └── templates/
│           │   │       ├── FilterOperatorsTemplate.ftl
│           │   │       └── FilterTemplate.ftl
│           │   └── java/
│           │       └── org/
│           │           └── apache/
│           │               └── tsfile/
│           │                   ├── common/
│           │                   │   ├── bitStream/
│           │                   │   │   ├── BitInputStream.java
│           │                   │   │   ├── BitOutputStream.java
│           │                   │   │   ├── BitStream.java
│           │                   │   │   └── ByteBufferBackedInputStream.java
│           │                   │   ├── cache/
│           │                   │   │   ├── Cache.java
│           │                   │   │   └── LRUCache.java
│           │                   │   ├── conf/
│           │                   │   │   ├── TSFileConfig.java
│           │                   │   │   └── TSFileDescriptor.java
│           │                   │   ├── constant/
│           │                   │   │   ├── JsonFormatConstant.java
│           │                   │   │   ├── QueryConstant.java
│           │                   │   │   └── TsFileConstant.java
│           │                   │   └── regexp/
│           │                   │       ├── DFA.java
│           │                   │       ├── DenseDfaMatcher.java
│           │                   │       ├── FjsMatcher.java
│           │                   │       ├── LikeMatcher.java
│           │                   │       ├── LikePattern.java
│           │                   │       ├── Matcher.java
│           │                   │       ├── NFA.java
│           │                   │       ├── NfaMatcher.java
│           │                   │       └── pattern/
│           │                   │           ├── Any.java
│           │                   │           ├── Literal.java
│           │                   │           ├── Pattern.java
│           │                   │           └── ZeroOrMore.java
│           │                   ├── compatibility/
│           │                   │   ├── BufferDeserializer.java
│           │                   │   ├── CompatibilityUtils.java
│           │                   │   ├── DeserializeConfig.java
│           │                   │   └── StreamDeserializer.java
│           │                   ├── compress/
│           │                   │   ├── ICompressor.java
│           │                   │   └── IUnCompressor.java
│           │                   ├── encoding/
│           │                   │   ├── bitpacking/
│           │                   │   │   ├── IntPacker.java
│           │                   │   │   └── LongPacker.java
│           │                   │   ├── decoder/
│           │                   │   │   ├── BitmapDecoder.java
│           │                   │   │   ├── CamelDecoder.java
│           │                   │   │   ├── Decoder.java
│           │                   │   │   ├── DecoderWrapper.java
│           │                   │   │   ├── DeltaBinaryDecoder.java
│           │                   │   │   ├── DictionaryDecoder.java
│           │                   │   │   ├── DoublePrecisionChimpDecoder.java
│           │                   │   │   ├── DoublePrecisionDecoderV1.java
│           │                   │   │   ├── DoublePrecisionDecoderV2.java
│           │                   │   │   ├── DoubleRLBEDecoder.java
│           │                   │   │   ├── DoubleSprintzDecoder.java
│           │                   │   │   ├── FloatDecoder.java
│           │                   │   │   ├── FloatRLBEDecoder.java
│           │                   │   │   ├── FloatSprintzDecoder.java
│           │                   │   │   ├── GorillaDecoderV1.java
│           │                   │   │   ├── GorillaDecoderV2.java
│           │                   │   │   ├── IntChimpDecoder.java
│           │                   │   │   ├── IntGorillaDecoder.java
│           │                   │   │   ├── IntRLBEDecoder.java
│           │                   │   │   ├── IntRleDecoder.java
│           │                   │   │   ├── IntSprintzDecoder.java
│           │                   │   │   ├── IntZigzagDecoder.java
│           │                   │   │   ├── LongChimpDecoder.java
│           │                   │   │   ├── LongGorillaDecoder.java
│           │                   │   │   ├── LongRLBEDecoder.java
│           │                   │   │   ├── LongRleDecoder.java
│           │                   │   │   ├── LongSprintzDecoder.java
│           │                   │   │   ├── LongZigzagDecoder.java
│           │                   │   │   ├── PlainDecoder.java
│           │                   │   │   ├── RegularDataDecoder.java
│           │                   │   │   ├── RleDecoder.java
│           │                   │   │   ├── SinglePrecisionChimpDecoder.java
│           │                   │   │   ├── SinglePrecisionDecoderV1.java
│           │                   │   │   ├── SinglePrecisionDecoderV2.java
│           │                   │   │   └── SprintzDecoder.java
│           │                   │   ├── encoder/
│           │                   │   │   ├── BitmapEncoder.java
│           │                   │   │   ├── CamelEncoder.java
│           │                   │   │   ├── DeltaBinaryEncoder.java
│           │                   │   │   ├── DictionaryEncoder.java
│           │                   │   │   ├── DoublePrecisionChimpEncoder.java
│           │                   │   │   ├── DoublePrecisionEncoderV1.java
│           │                   │   │   ├── DoublePrecisionEncoderV2.java
│           │                   │   │   ├── DoubleRLBE.java
│           │                   │   │   ├── DoubleSprintzEncoder.java
│           │                   │   │   ├── Encoder.java
│           │                   │   │   ├── FloatEncoder.java
│           │                   │   │   ├── FloatRLBE.java
│           │                   │   │   ├── FloatSprintzEncoder.java
│           │                   │   │   ├── GorillaEncoderV1.java
│           │                   │   │   ├── GorillaEncoderV2.java
│           │                   │   │   ├── IntChimpEncoder.java
│           │                   │   │   ├── IntGorillaEncoder.java
│           │                   │   │   ├── IntRLBE.java
│           │                   │   │   ├── IntRleEncoder.java
│           │                   │   │   ├── IntSprintzEncoder.java
│           │                   │   │   ├── IntZigzagEncoder.java
│           │                   │   │   ├── LongChimpEncoder.java
│           │                   │   │   ├── LongGorillaEncoder.java
│           │                   │   │   ├── LongRLBE.java
│           │                   │   │   ├── LongRleEncoder.java
│           │                   │   │   ├── LongSprintzEncoder.java
│           │                   │   │   ├── LongZigzagEncoder.java
│           │                   │   │   ├── PlainEncoder.java
│           │                   │   │   ├── RLBE.java
│           │                   │   │   ├── RegularDataEncoder.java
│           │                   │   │   ├── RleEncoder.java
│           │                   │   │   ├── SDTEncoder.java
│           │                   │   │   ├── SinglePrecisionChimpEncoder.java
│           │                   │   │   ├── SinglePrecisionEncoderV1.java
│           │                   │   │   ├── SinglePrecisionEncoderV2.java
│           │                   │   │   ├── SprintzEncoder.java
│           │                   │   │   └── TSEncodingBuilder.java
│           │                   │   └── fire/
│           │                   │       ├── Fire.java
│           │                   │       ├── IntFire.java
│           │                   │       └── LongFire.java
│           │                   ├── encrypt/
│           │                   │   ├── EncryptParameter.java
│           │                   │   ├── EncryptUtils.java
│           │                   │   ├── IDecryptor.java
│           │                   │   ├── IEncrypt.java
│           │                   │   ├── IEncryptor.java
│           │                   │   ├── NoDecryptor.java
│           │                   │   ├── NoEncryptor.java
│           │                   │   └── UNENCRYPTED.java
│           │                   ├── exception/
│           │                   │   ├── IllegalDeviceIDException.java
│           │                   │   ├── NotCompatibleTsFileException.java
│           │                   │   ├── NotImplementedException.java
│           │                   │   ├── NullFieldException.java
│           │                   │   ├── PathParseException.java
│           │                   │   ├── StopReadTsFileByInterruptException.java
│           │                   │   ├── TsFileRuntimeException.java
│           │                   │   ├── TsFileSequenceReaderTimeseriesMetadataIteratorException.java
│           │                   │   ├── TsFileStatisticsMistakesException.java
│           │                   │   ├── cache/
│           │                   │   │   └── CacheException.java
│           │                   │   ├── compress/
│           │                   │   │   ├── CompressionTypeNotSupportedException.java
│           │                   │   │   └── GZIPCompressOverflowException.java
│           │                   │   ├── encoding/
│           │                   │   │   ├── TsFileDecodingException.java
│           │                   │   │   └── TsFileEncodingException.java
│           │                   │   ├── encrypt/
│           │                   │   │   ├── EncryptException.java
│           │                   │   │   └── EncryptKeyLengthNotMatchException.java
│           │                   │   ├── filter/
│           │                   │   │   ├── QueryFilterOptimizationException.java
│           │                   │   │   ├── StatisticsClassException.java
│           │                   │   │   └── UnSupportFilterDataTypeException.java
│           │                   │   ├── read/
│           │                   │   │   ├── FileVersionTooOldException.java
│           │                   │   │   ├── NoColumnException.java
│           │                   │   │   ├── ReadProcessException.java
│           │                   │   │   └── UnsupportedOrderingException.java
│           │                   │   └── write/
│           │                   │       ├── ConflictDataTypeException.java
│           │                   │       ├── NoDeviceException.java
│           │                   │       ├── NoMeasurementException.java
│           │                   │       ├── NoTableException.java
│           │                   │       ├── PageException.java
│           │                   │       ├── TsFileNotCompleteException.java
│           │                   │       ├── UnknownColumnTypeException.java
│           │                   │       └── WriteProcessException.java
│           │                   ├── external/
│           │                   │   └── commons/
│           │                   │       ├── codec/
│           │                   │       │   ├── binary/
│           │                   │       │   │   ├── Hex.java
│           │                   │       │   │   ├── MessageDigestAlgorithms.java
│           │                   │       │   │   └── StringUtils.java
│           │                   │       │   └── digest/
│           │                   │       │       └── DigestUtils.java
│           │                   │       ├── collections4/
│           │                   │       │   ├── BoundedMap.java
│           │                   │       │   ├── CollectionUtils.java
│           │                   │       │   ├── Get.java
│           │                   │       │   ├── IterableGet.java
│           │                   │       │   ├── IterableMap.java
│           │                   │       │   ├── KeyValue.java
│           │                   │       │   ├── MapIterator.java
│           │                   │       │   ├── MapUtils.java
│           │                   │       │   ├── OrderedIterator.java
│           │                   │       │   ├── OrderedMap.java
│           │                   │       │   ├── OrderedMapIterator.java
│           │                   │       │   ├── Put.java
│           │                   │       │   ├── ResettableIterator.java
│           │                   │       │   ├── comparators/
│           │                   │       │   │   └── ComparatorChain.java
│           │                   │       │   ├── iterators/
│           │                   │       │   │   ├── AbstractEmptyIterator.java
│           │                   │       │   │   ├── AbstractEmptyMapIterator.java
│           │                   │       │   │   ├── EmptyIterator.java
│           │                   │       │   │   ├── EmptyMapIterator.java
│           │                   │       │   │   ├── EmptyOrderedIterator.java
│           │                   │       │   │   └── EmptyOrderedMapIterator.java
│           │                   │       │   └── map/
│           │                   │       │       ├── AbstractHashedMap.java
│           │                   │       │       ├── AbstractLinkedMap.java
│           │                   │       │       └── LRUMap.java
│           │                   │       ├── io/
│           │                   │       │   ├── Charsets.java
│           │                   │       │   ├── FileExistsException.java
│           │                   │       │   ├── FileUtils.java
│           │                   │       │   ├── FilenameUtils.java
│           │                   │       │   ├── IOCase.java
│           │                   │       │   ├── IOExceptionList.java
│           │                   │       │   ├── IOIndexedException.java
│           │                   │       │   ├── IOUtils.java
│           │                   │       │   ├── RandomAccessFileMode.java
│           │                   │       │   ├── RandomAccessFiles.java
│           │                   │       │   ├── build/
│           │                   │       │   │   ├── AbstractOrigin.java
│           │                   │       │   │   ├── AbstractOriginSupplier.java
│           │                   │       │   │   ├── AbstractStreamBuilder.java
│           │                   │       │   │   └── AbstractSupplier.java
│           │                   │       │   ├── charset/
│           │                   │       │   │   ├── CharsetDecoders.java
│           │                   │       │   │   └── CharsetEncoders.java
│           │                   │       │   ├── file/
│           │                   │       │   │   ├── Counters.java
│           │                   │       │   │   ├── CountingPathVisitor.java
│           │                   │       │   │   ├── DeleteOption.java
│           │                   │       │   │   ├── DeletingPathVisitor.java
│           │                   │       │   │   ├── PathFilter.java
│           │                   │       │   │   ├── PathUtils.java
│           │                   │       │   │   ├── PathVisitor.java
│           │                   │       │   │   ├── SimplePathVisitor.java
│           │                   │       │   │   └── StandardDeleteOption.java
│           │                   │       │   ├── filefilter/
│           │                   │       │   │   ├── AbstractFileFilter.java
│           │                   │       │   │   ├── AndFileFilter.java
│           │                   │       │   │   ├── ConditionalFileFilter.java
│           │                   │       │   │   ├── FalseFileFilter.java
│           │                   │       │   │   ├── FileFileFilter.java
│           │                   │       │   │   ├── IOFileFilter.java
│           │                   │       │   │   ├── NotFileFilter.java
│           │                   │       │   │   ├── OrFileFilter.java
│           │                   │       │   │   ├── SuffixFileFilter.java
│           │                   │       │   │   ├── SymbolicLinkFileFilter.java
│           │                   │       │   │   └── TrueFileFilter.java
│           │                   │       │   ├── function/
│           │                   │       │   │   ├── Constants.java
│           │                   │       │   │   ├── Erase.java
│           │                   │       │   │   ├── IOBaseStream.java
│           │                   │       │   │   ├── IOBaseStreamAdapter.java
│           │                   │       │   │   ├── IOBiConsumer.java
│           │                   │       │   │   ├── IOBiFunction.java
│           │                   │       │   │   ├── IOBinaryOperator.java
│           │                   │       │   │   ├── IOComparator.java
│           │                   │       │   │   ├── IOConsumer.java
│           │                   │       │   │   ├── IOFunction.java
│           │                   │       │   │   ├── IOIntSupplier.java
│           │                   │       │   │   ├── IOIterator.java
│           │                   │       │   │   ├── IOIteratorAdapter.java
│           │                   │       │   │   ├── IOPredicate.java
│           │                   │       │   │   ├── IOQuadFunction.java
│           │                   │       │   │   ├── IORunnable.java
│           │                   │       │   │   ├── IOSpliterator.java
│           │                   │       │   │   ├── IOSpliteratorAdapter.java
│           │                   │       │   │   ├── IOStream.java
│           │                   │       │   │   ├── IOStreamAdapter.java
│           │                   │       │   │   ├── IOStreams.java
│           │                   │       │   │   ├── IOSupplier.java
│           │                   │       │   │   ├── IOTriConsumer.java
│           │                   │       │   │   ├── IOTriFunction.java
│           │                   │       │   │   ├── IOUnaryOperator.java
│           │                   │       │   │   ├── Uncheck.java
│           │                   │       │   │   └── UncheckedIOIterator.java
│           │                   │       │   ├── input/
│           │                   │       │   │   ├── ClosedInputStream.java
│           │                   │       │   │   ├── ReaderInputStream.java
│           │                   │       │   │   └── UnsynchronizedByteArrayInputStream.java
│           │                   │       │   └── output/
│           │                   │       │       ├── AbstractByteArrayOutputStream.java
│           │                   │       │       ├── ByteArrayOutputStream.java
│           │                   │       │       ├── NullOutputStream.java
│           │                   │       │       ├── StringBuilderWriter.java
│           │                   │       │       ├── ThresholdingOutputStream.java
│           │                   │       │       ├── UnsynchronizedByteArrayOutputStream.java
│           │                   │       │       └── WriterOutputStream.java
│           │                   │       └── lang3/
│           │                   │           ├── ArrayFill.java
│           │                   │           ├── ArrayUtils.java
│           │                   │           ├── CharSequenceUtils.java
│           │                   │           ├── ClassUtils.java
│           │                   │           ├── NotImplementedException.java
│           │                   │           ├── ObjectUtils.java
│           │                   │           ├── StringUtils.java
│           │                   │           ├── Strings.java
│           │                   │           ├── SystemProperties.java
│           │                   │           ├── SystemUtils.java
│           │                   │           ├── Validate.java
│           │                   │           ├── builder/
│           │                   │           │   └── HashCodeBuilder.java
│           │                   │           ├── exception/
│           │                   │           │   └── ExceptionUtils.java
│           │                   │           ├── function/
│           │                   │           │   ├── FailableBiConsumer.java
│           │                   │           │   ├── FailableBiFunction.java
│           │                   │           │   ├── FailableFunction.java
│           │                   │           │   ├── Suppliers.java
│           │                   │           │   └── TriFunction.java
│           │                   │           ├── math/
│           │                   │           │   └── NumberUtils.java
│           │                   │           ├── stream/
│           │                   │           │   ├── LangCollectors.java
│           │                   │           │   └── Streams.java
│           │                   │           └── tuple/
│           │                   │               ├── ImmutablePair.java
│           │                   │               ├── ImmutableTriple.java
│           │                   │               ├── Pair.java
│           │                   │               └── Triple.java
│           │                   ├── file/
│           │                   │   ├── IMetadataIndexEntry.java
│           │                   │   ├── MetaMarker.java
│           │                   │   ├── header/
│           │                   │   │   ├── ChunkGroupHeader.java
│           │                   │   │   ├── ChunkHeader.java
│           │                   │   │   └── PageHeader.java
│           │                   │   └── metadata/
│           │                   │       ├── AbstractAlignedChunkMetadata.java
│           │                   │       ├── AbstractAlignedTimeSeriesMetadata.java
│           │                   │       ├── AlignedChunkMetadata.java
│           │                   │       ├── AlignedTimeSeriesMetadata.java
│           │                   │       ├── ChunkGroupMetadata.java
│           │                   │       ├── ChunkMetadata.java
│           │                   │       ├── ColumnSchema.java
│           │                   │       ├── ColumnSchemaBuilder.java
│           │                   │       ├── DeviceMetadataIndexEntry.java
│           │                   │       ├── IChunkMetadata.java
│           │                   │       ├── IDeviceID.java
│           │                   │       ├── IMetadata.java
│           │                   │       ├── ITimeSeriesMetadata.java
│           │                   │       ├── LogicalTableSchema.java
│           │                   │       ├── MeasurementMetadataIndexEntry.java
│           │                   │       ├── MetadataIndexConstructor.java
│           │                   │       ├── MetadataIndexNode.java
│           │                   │       ├── PlainDeviceID.java
│           │                   │       ├── StringArrayDeviceID.java
│           │                   │       ├── TableDeviceChunkMetadata.java
│           │                   │       ├── TableDeviceTimeSeriesMetadata.java
│           │                   │       ├── TableSchema.java
│           │                   │       ├── TimeseriesMetadata.java
│           │                   │       ├── TsFileMetadata.java
│           │                   │       ├── enums/
│           │                   │       │   ├── CompressionType.java
│           │                   │       │   ├── EncryptionType.java
│           │                   │       │   ├── MetadataIndexNodeType.java
│           │                   │       │   └── TSEncoding.java
│           │                   │       ├── idcolumn/
│           │                   │       │   ├── FourOrHigherLevelDBExtractor.java
│           │                   │       │   ├── ThreeLevelDBExtractor.java
│           │                   │       │   └── TwoLevelDBExtractor.java
│           │                   │       └── statistics/
│           │                   │           ├── BinaryStatistics.java
│           │                   │           ├── BlobStatistics.java
│           │                   │           ├── BooleanStatistics.java
│           │                   │           ├── DateStatistics.java
│           │                   │           ├── DoubleStatistics.java
│           │                   │           ├── FloatStatistics.java
│           │                   │           ├── IntegerStatistics.java
│           │                   │           ├── LongStatistics.java
│           │                   │           ├── ObjectStatistics.java
│           │                   │           ├── Statistics.java
│           │                   │           ├── StringStatistics.java
│           │                   │           ├── TimeStatistics.java
│           │                   │           └── TimestampStatistics.java
│           │                   ├── fileSystem/
│           │                   │   ├── FSFactoryProducer.java
│           │                   │   ├── FSPath.java
│           │                   │   ├── FSType.java
│           │                   │   ├── fileInputFactory/
│           │                   │   │   ├── FileInputFactory.java
│           │                   │   │   ├── HDFSInputFactory.java
│           │                   │   │   ├── HybridFileInputFactory.java
│           │                   │   │   ├── LocalFSInputFactory.java
│           │                   │   │   └── OSFileInputFactory.java
│           │                   │   ├── fileOutputFactory/
│           │                   │   │   ├── FileOutputFactory.java
│           │                   │   │   ├── HDFSOutputFactory.java
│           │                   │   │   ├── HybridFileOutputFactory.java
│           │                   │   │   ├── LocalFSOutputFactory.java
│           │                   │   │   └── OSFileOutputFactory.java
│           │                   │   └── fsFactory/
│           │                   │       ├── FSFactory.java
│           │                   │       ├── HDFSFactory.java
│           │                   │       ├── HybridFSFactory.java
│           │                   │       ├── LocalFSFactory.java
│           │                   │       └── OSFSFactory.java
│           │                   ├── read/
│           │                   │   ├── LazyTsFileDeviceIterator.java
│           │                   │   ├── TimeValuePair.java
│           │                   │   ├── TsFileAlignedSeriesReaderIterator.java
│           │                   │   ├── TsFileCheckStatus.java
│           │                   │   ├── TsFileDeviceIterator.java
│           │                   │   ├── TsFileReader.java
│           │                   │   ├── TsFileRestorableReader.java
│           │                   │   ├── TsFileSequenceReader.java
│           │                   │   ├── TsFileSequenceReaderTimeseriesMetadataIterator.java
│           │                   │   ├── UnClosedTsFileReader.java
│           │                   │   ├── common/
│           │                   │   │   ├── BatchData.java
│           │                   │   │   ├── BatchDataFactory.java
│           │                   │   │   ├── Chunk.java
│           │                   │   │   ├── DescReadBatchData.java
│           │                   │   │   ├── DescReadWriteBatchData.java
│           │                   │   │   ├── Field.java
│           │                   │   │   ├── FullPath.java
│           │                   │   │   ├── IBatchDataIterator.java
│           │                   │   │   ├── Path.java
│           │                   │   │   ├── RowRecord.java
│           │                   │   │   ├── SignalBatchData.java
│           │                   │   │   ├── TimeRange.java
│           │                   │   │   ├── TimeSeries.java
│           │                   │   │   ├── block/
│           │                   │   │   │   ├── TsBlock.java
│           │                   │   │   │   ├── TsBlockBuilder.java
│           │                   │   │   │   ├── TsBlockUtil.java
│           │                   │   │   │   └── column/
│           │                   │   │   │       ├── BinaryArrayColumnEncoder.java
│           │                   │   │   │       ├── BinaryColumn.java
│           │                   │   │   │       ├── BinaryColumnBuilder.java
│           │                   │   │   │       ├── BooleanColumn.java
│           │                   │   │   │       ├── BooleanColumnBuilder.java
│           │                   │   │   │       ├── ByteArrayColumnEncoder.java
│           │                   │   │   │       ├── ColumnEncoder.java
│           │                   │   │   │       ├── ColumnEncoderFactory.java
│           │                   │   │   │       ├── ColumnFactory.java
│           │                   │   │   │       ├── ColumnUtil.java
│           │                   │   │   │       ├── DictionaryColumn.java
│           │                   │   │   │       ├── DictionaryColumnEncoder.java
│           │                   │   │   │       ├── DictionaryId.java
│           │                   │   │   │       ├── DoubleColumn.java
│           │                   │   │   │       ├── DoubleColumnBuilder.java
│           │                   │   │   │       ├── FloatColumn.java
│           │                   │   │   │       ├── FloatColumnBuilder.java
│           │                   │   │   │       ├── Int32ArrayColumnEncoder.java
│           │                   │   │   │       ├── Int64ArrayColumnEncoder.java
│           │                   │   │   │       ├── IntColumn.java
│           │                   │   │   │       ├── IntColumnBuilder.java
│           │                   │   │   │       ├── LongColumn.java
│           │                   │   │   │       ├── LongColumnBuilder.java
│           │                   │   │   │       ├── NullColumn.java
│           │                   │   │   │       ├── RunLengthColumnEncoder.java
│           │                   │   │   │       ├── RunLengthEncodedColumn.java
│           │                   │   │   │       ├── TimeColumn.java
│           │                   │   │   │       ├── TimeColumnBuilder.java
│           │                   │   │   │       └── TsBlockSerde.java
│           │                   │   │   ├── parser/
│           │                   │   │   │   ├── PathNodesGenerator.java
│           │                   │   │   │   ├── PathParseError.java
│           │                   │   │   │   └── PathVisitor.java
│           │                   │   │   └── type/
│           │                   │   │       ├── AbstractIntType.java
│           │                   │   │       ├── AbstractLongType.java
│           │                   │   │       ├── AbstractType.java
│           │                   │   │       ├── AbstractVarcharType.java
│           │                   │   │       ├── BinaryType.java
│           │                   │   │       ├── BlobType.java
│           │                   │   │       ├── BooleanType.java
│           │                   │   │       ├── DateType.java
│           │                   │   │       ├── DoubleType.java
│           │                   │   │       ├── FloatType.java
│           │                   │   │       ├── IntType.java
│           │                   │   │       ├── LongType.java
│           │                   │   │       ├── ObjectType.java
│           │                   │   │       ├── RowType.java
│           │                   │   │       ├── StringType.java
│           │                   │   │       ├── TimestampType.java
│           │                   │   │       ├── Type.java
│           │                   │   │       ├── TypeEnum.java
│           │                   │   │       ├── TypeFactory.java
│           │                   │   │       └── UnknownType.java
│           │                   │   ├── controller/
│           │                   │   │   ├── CachedChunkLoaderImpl.java
│           │                   │   │   ├── DeviceMetaIterator.java
│           │                   │   │   ├── IChunkLoader.java
│           │                   │   │   ├── IChunkMetadataLoader.java
│           │                   │   │   ├── IMetadataQuerier.java
│           │                   │   │   └── MetadataQuerierByFileImpl.java
│           │                   │   ├── expression/
│           │                   │   │   ├── ExpressionTree.java
│           │                   │   │   ├── ExpressionType.java
│           │                   │   │   ├── IBinaryExpression.java
│           │                   │   │   ├── IExpression.java
│           │                   │   │   ├── IUnaryExpression.java
│           │                   │   │   ├── QueryExpression.java
│           │                   │   │   ├── impl/
│           │                   │   │   │   ├── BinaryExpression.java
│           │                   │   │   │   ├── GlobalTimeExpression.java
│           │                   │   │   │   └── SingleSeriesExpression.java
│           │                   │   │   └── util/
│           │                   │   │       └── ExpressionOptimizer.java
│           │                   │   ├── filter/
│           │                   │   │   ├── PredicateRemoveNotRewriter.java
│           │                   │   │   ├── basic/
│           │                   │   │   │   ├── BinaryLogicalFilter.java
│           │                   │   │   │   ├── CompareNullFilter.java
│           │                   │   │   │   ├── Filter.java
│           │                   │   │   │   ├── OperatorType.java
│           │                   │   │   │   ├── TimeFilter.java
│           │                   │   │   │   └── ValueFilter.java
│           │                   │   │   ├── factory/
│           │                   │   │   │   ├── FilterFactory.java
│           │                   │   │   │   ├── TagFilterBuilder.java
│           │                   │   │   │   ├── TimeFilterApi.java
│           │                   │   │   │   └── ValueFilterApi.java
│           │                   │   │   └── operator/
│           │                   │   │       ├── And.java
│           │                   │   │       ├── ExtractTimeFilterOperators.java
│           │                   │   │       ├── ExtractValueFilterOperators.java
│           │                   │   │       ├── FalseLiteralFilter.java
│           │                   │   │       ├── GroupByFilter.java
│           │                   │   │       ├── GroupByMonthFilter.java
│           │                   │   │       ├── Not.java
│           │                   │   │       ├── Or.java
│           │                   │   │       ├── TimeFilterOperators.java
│           │                   │   │       ├── ValueIsNotNullOperator.java
│           │                   │   │       └── ValueIsNullOperator.java
│           │                   │   ├── query/
│           │                   │   │   ├── dataset/
│           │                   │   │   │   ├── AbstractResultSet.java
│           │                   │   │   │   ├── DataSetWithTimeGenerator.java
│           │                   │   │   │   ├── DataSetWithoutTimeGenerator.java
│           │                   │   │   │   ├── QueryDataSet.java
│           │                   │   │   │   ├── ResultSet.java
│           │                   │   │   │   ├── ResultSetMetadata.java
│           │                   │   │   │   ├── ResultSetMetadataImpl.java
│           │                   │   │   │   ├── TableResultSet.java
│           │                   │   │   │   └── TreeResultSet.java
│           │                   │   │   ├── executor/
│           │                   │   │   │   ├── ExecutorWithTimeGenerator.java
│           │                   │   │   │   ├── QueryExecutor.java
│           │                   │   │   │   ├── TableQueryExecutor.java
│           │                   │   │   │   ├── TsFileExecutor.java
│           │                   │   │   │   └── task/
│           │                   │   │   │       ├── DeviceQueryTask.java
│           │                   │   │   │       └── DeviceTaskIterator.java
│           │                   │   │   └── timegenerator/
│           │                   │   │       ├── TimeGenerator.java
│           │                   │   │       ├── TsFileTimeGenerator.java
│           │                   │   │       └── node/
│           │                   │   │           ├── AndNode.java
│           │                   │   │           ├── LeafNode.java
│           │                   │   │           ├── Node.java
│           │                   │   │           ├── NodeType.java
│           │                   │   │           └── OrNode.java
│           │                   │   ├── reader/
│           │                   │   │   ├── IBatchReader.java
│           │                   │   │   ├── IChunkReader.java
│           │                   │   │   ├── IPageReader.java
│           │                   │   │   ├── IPointReader.java
│           │                   │   │   ├── LocalTsFileInput.java
│           │                   │   │   ├── TsFileInput.java
│           │                   │   │   ├── TsFileLastReader.java
│           │                   │   │   ├── block/
│           │                   │   │   │   ├── DeviceOrderedTsBlockReader.java
│           │                   │   │   │   ├── SingleDeviceTsBlockReader.java
│           │                   │   │   │   └── TsBlockReader.java
│           │                   │   │   ├── chunk/
│           │                   │   │   │   ├── AbstractAlignedChunkReader.java
│           │                   │   │   │   ├── AbstractChunkReader.java
│           │                   │   │   │   ├── AlignedChunkReader.java
│           │                   │   │   │   ├── AlignedChunkReaderWithoutStatistics.java
│           │                   │   │   │   ├── ChunkReader.java
│           │                   │   │   │   ├── ChunkReaderWithoutStatistics.java
│           │                   │   │   │   └── TableChunkReader.java
│           │                   │   │   ├── page/
│           │                   │   │   │   ├── AbstractAlignedPageReader.java
│           │                   │   │   │   ├── AlignedPageReader.java
│           │                   │   │   │   ├── LazyLoadAlignedPagePointReader.java
│           │                   │   │   │   ├── LazyLoadPageData.java
│           │                   │   │   │   ├── PageReader.java
│           │                   │   │   │   ├── TablePageReader.java
│           │                   │   │   │   ├── TimePageReader.java
│           │                   │   │   │   └── ValuePageReader.java
│           │                   │   │   └── series/
│           │                   │   │       ├── AbstractFileSeriesReader.java
│           │                   │   │       ├── EmptyFileSeriesReader.java
│           │                   │   │       ├── FileSeriesReader.java
│           │                   │   │       ├── FileSeriesReaderByTimestamp.java
│           │                   │   │       └── PaginationController.java
│           │                   │   └── v4/
│           │                   │       ├── DeviceTableModelReader.java
│           │                   │       ├── ITsFileReader.java
│           │                   │       ├── ITsFileTreeReader.java
│           │                   │       ├── TsFileReaderBuilder.java
│           │                   │       ├── TsFileTreeReader.java
│           │                   │       └── TsFileTreeReaderBuilder.java
│           │                   ├── utils/
│           │                   │   ├── BloomFilter.java
│           │                   │   ├── BytesUtils.java
│           │                   │   ├── DateUtils.java
│           │                   │   ├── FSUtils.java
│           │                   │   ├── FilePathUtils.java
│           │                   │   ├── FilterDeserialize.java
│           │                   │   ├── Loader.java
│           │                   │   ├── MeasurementGroup.java
│           │                   │   ├── Murmur128Hash.java
│           │                   │   ├── NoSyncBufferedInputStream.java
│           │                   │   ├── NoSyncBufferedOutputStream.java
│           │                   │   ├── Pair.java
│           │                   │   ├── Preconditions.java
│           │                   │   ├── PublicBAOS.java
│           │                   │   ├── ReadWriteForEncodingUtils.java
│           │                   │   ├── ReadWriteIOUtils.java
│           │                   │   ├── StringContainer.java
│           │                   │   ├── TimeDuration.java
│           │                   │   ├── TsFileGeneratorUtils.java
│           │                   │   ├── TsFileSketchTool.java
│           │                   │   ├── TsFileUtils.java
│           │                   │   └── WriteUtils.java
│           │                   └── write/
│           │                       ├── TsFileWriter.java
│           │                       ├── chunk/
│           │                       │   ├── AlignedChunkGroupWriterImpl.java
│           │                       │   ├── AlignedChunkWriterImpl.java
│           │                       │   ├── ChunkWriterImpl.java
│           │                       │   ├── IChunkGroupWriter.java
│           │                       │   ├── IChunkWriter.java
│           │                       │   ├── NonAlignedChunkGroupWriterImpl.java
│           │                       │   ├── TableChunkGroupWriterImpl.java
│           │                       │   ├── TimeChunkWriter.java
│           │                       │   └── ValueChunkWriter.java
│           │                       ├── page/
│           │                       │   ├── PageWriter.java
│           │                       │   ├── TimePageWriter.java
│           │                       │   └── ValuePageWriter.java
│           │                       ├── record/
│           │                       │   ├── TSRecord.java
│           │                       │   ├── Tablet.java
│           │                       │   └── datapoint/
│           │                       │       ├── BooleanDataPoint.java
│           │                       │       ├── DataPoint.java
│           │                       │       ├── DateDataPoint.java
│           │                       │       ├── DoubleDataPoint.java
│           │                       │       ├── FloatDataPoint.java
│           │                       │       ├── IntDataPoint.java
│           │                       │       ├── LongDataPoint.java
│           │                       │       └── StringDataPoint.java
│           │                       ├── schema/
│           │                       │   ├── IMeasurementSchema.java
│           │                       │   ├── MeasurementSchema.java
│           │                       │   ├── MeasurementSchemaBuilder.java
│           │                       │   ├── MeasurementSchemaType.java
│           │                       │   ├── Schema.java
│           │                       │   ├── TimeseriesSchema.java
│           │                       │   └── VectorMeasurementSchema.java
│           │                       ├── v4/
│           │                       │   ├── AbstractTableModelTsFileWriter.java
│           │                       │   ├── DeviceTableModelWriter.java
│           │                       │   ├── ITsFileWriter.java
│           │                       │   ├── TableTsBlock2TsFileWriter.java
│           │                       │   ├── TsFileTreeWriter.java
│           │                       │   ├── TsFileTreeWriterBuilder.java
│           │                       │   └── TsFileWriterBuilder.java
│           │                       └── writer/
│           │                           ├── FlushChunkMetadataListener.java
│           │                           ├── ForceAppendTsFileWriter.java
│           │                           ├── IDataWriter.java
│           │                           ├── LocalTsFileOutput.java
│           │                           ├── RestorableTsFileIOWriter.java
│           │                           ├── TsFileIOWriter.java
│           │                           ├── TsFileIOWriterEndFileTest.java
│           │                           ├── TsFileOutput.java
│           │                           └── tsmiterator/
│           │                               ├── DiskTSMIterator.java
│           │                               └── TSMIterator.java
│           └── test/
│               ├── java/
│               │   └── org/
│               │       └── apache/
│               │           └── tsfile/
│               │               ├── common/
│               │               │   ├── LRUCacheTest.java
│               │               │   ├── bitStream/
│               │               │   │   └── TestBitStream.java
│               │               │   ├── block/
│               │               │   │   ├── BinaryArrayColumnEncoderTest.java
│               │               │   │   ├── ByteArrayColumnEncoderTest.java
│               │               │   │   ├── ColumnEncoderTest.java
│               │               │   │   ├── DictionaryColumnEncodingTest.java
│               │               │   │   ├── Int32ArrayColumnEncoderTest.java
│               │               │   │   ├── Int64ArrayColumnEncoderTest.java
│               │               │   │   ├── NullColumnUnitTest.java
│               │               │   │   ├── RunLengthColumnEncoderTest.java
│               │               │   │   ├── TsBlockSerdeTest.java
│               │               │   │   └── TsBlockTest.java
│               │               │   └── conf/
│               │               │       └── TSFileDescriptorTest.java
│               │               ├── compatibility/
│               │               │   └── CompatibilityTest.java
│               │               ├── compress/
│               │               │   ├── CompressTest.java
│               │               │   ├── GZIPTest.java
│               │               │   ├── LZ4Test.java
│               │               │   ├── LZMA2Test.java
│               │               │   ├── SnappyTest.java
│               │               │   └── ZstdTest.java
│               │               ├── constant/
│               │               │   └── TestConstant.java
│               │               ├── encoding/
│               │               │   ├── SDTEncoderTest.java
│               │               │   ├── bitpacking/
│               │               │   │   ├── IntPackerTest.java
│               │               │   │   └── LongPackerTest.java
│               │               │   ├── decoder/
│               │               │   │   ├── BitmapDecoderTest.java
│               │               │   │   ├── CamelDecoderTest.java
│               │               │   │   ├── ChimpDecoderTest.java
│               │               │   │   ├── DictionaryDecoderTest.java
│               │               │   │   ├── FloatDecoderTest.java
│               │               │   │   ├── GorillaDecoderV1Test.java
│               │               │   │   ├── GorillaDecoderV2Test.java
│               │               │   │   ├── IntRleDecoderTest.java
│               │               │   │   ├── IntZigzagDecoderTest.java
│               │               │   │   ├── LongRleDecoderTest.java
│               │               │   │   ├── LongZigzagDecoderTest.java
│               │               │   │   ├── RLBEDecoderTest.java
│               │               │   │   ├── SprintzDecoderTest.java
│               │               │   │   ├── delta/
│               │               │   │   │   ├── DeltaBinaryEncoderIntegerTest.java
│               │               │   │   │   └── DeltaBinaryEncoderLongTest.java
│               │               │   │   └── regular/
│               │               │   │       ├── RegularDataEncoderIntegerTest.java
│               │               │   │       └── RegularDataEncoderLongTest.java
│               │               │   └── encoder/
│               │               │       └── TSEncodingBuilderTest.java
│               │               ├── encrypt/
│               │               │   └── EncryptTest.java
│               │               ├── exception/
│               │               │   └── TsFileExceptionTest.java
│               │               ├── file/
│               │               │   ├── header/
│               │               │   │   └── PageHeaderTest.java
│               │               │   └── metadata/
│               │               │       ├── ChunkMetadataTest.java
│               │               │       ├── IDeviceIDTest.java
│               │               │       ├── MetadataIndexNodeTest.java
│               │               │       ├── TimeseriesMetadataTest.java
│               │               │       ├── TreeDeviceIdColumnValueExtractorTest.java
│               │               │       ├── TsFileMetadataTest.java
│               │               │       ├── statistics/
│               │               │       │   ├── BooleanStatisticsTest.java
│               │               │       │   ├── DoubleStatisticsTest.java
│               │               │       │   ├── FloatStatisticsTest.java
│               │               │       │   ├── IntegerStatisticsTest.java
│               │               │       │   ├── LongStatisticsTest.java
│               │               │       │   ├── StatisticsTest.java
│               │               │       │   └── StringStatisticsTest.java
│               │               │       └── utils/
│               │               │           ├── TestHelper.java
│               │               │           └── Utils.java
│               │               ├── read/
│               │               │   ├── ExpressionTest.java
│               │               │   ├── GetAllDevicesTest.java
│               │               │   ├── MeasurementChunkMetadataListMapIteratorTest.java
│               │               │   ├── ReadInPartitionTest.java
│               │               │   ├── ReadTest.java
│               │               │   ├── TimePlainEncodeReadTest.java
│               │               │   ├── TimeSeriesMetadataReadTest.java
│               │               │   ├── TsFileDeviceIteratorTest.java
│               │               │   ├── TsFileIOWriterFlushTempChunkMetadataTest.java
│               │               │   ├── TsFileReaderTest.java
│               │               │   ├── TsFileRestorableReaderTest.java
│               │               │   ├── TsFileSequenceReaderTest.java
│               │               │   ├── TsFileSequenceReaderTimeseriesMetadataIteratorTest.java
│               │               │   ├── TsFileTreeReaderTest.java
│               │               │   ├── TsFileV4ReadWriteInterfacesTest.java
│               │               │   ├── UnClosedTsFileReaderTest.java
│               │               │   ├── common/
│               │               │   │   ├── BatchDataTest.java
│               │               │   │   ├── ColumnTest.java
│               │               │   │   ├── FieldTest.java
│               │               │   │   ├── PathTest.java
│               │               │   │   └── TimeRangeTest.java
│               │               │   ├── controller/
│               │               │   │   ├── ChunkLoaderTest.java
│               │               │   │   └── IMetadataQuerierByFileImplTest.java
│               │               │   ├── filter/
│               │               │   │   ├── BinaryOperatorsTest.java
│               │               │   │   ├── BooleanOperatorsTest.java
│               │               │   │   ├── ExtractTimeFilterTest.java
│               │               │   │   ├── ExtractValueFilterTest.java
│               │               │   │   ├── FilterSerializeTest.java
│               │               │   │   ├── FilterTestUtil.java
│               │               │   │   ├── GroupByFilterTest.java
│               │               │   │   ├── GroupByMonthFilterTest.java
│               │               │   │   ├── IExpressionOptimizerTest.java
│               │               │   │   ├── MinTimeMaxTimeFilterTest.java
│               │               │   │   ├── NullOperatorsTest.java
│               │               │   │   ├── NumericalOperatorsTest.java
│               │               │   │   ├── OperatorTest.java
│               │               │   │   ├── PredicateRemoveNotRewriterTest.java
│               │               │   │   ├── StatisticsFilterTest.java
│               │               │   │   └── TsBlockFilterTest.java
│               │               │   ├── query/
│               │               │   │   ├── ResultSetTest.java
│               │               │   │   ├── executor/
│               │               │   │   │   └── QueryExecutorTest.java
│               │               │   │   └── timegenerator/
│               │               │   │       ├── NodeTest.java
│               │               │   │       ├── ReadWriteTest.java
│               │               │   │       ├── ReaderByTimestampTest.java
│               │               │   │       ├── TimeGeneratorReadEmptyTest.java
│               │               │   │       ├── TimeGeneratorReadWriteTest.java
│               │               │   │       ├── TimeGeneratorTest.java
│               │               │   │       └── TsFileGeneratorForSeriesReaderByTimestamp.java
│               │               │   └── reader/
│               │               │       ├── AlignedChunkReaderWithoutStatisticsTest.java
│               │               │       ├── AlignedPageReaderPushDownTest.java
│               │               │       ├── ChunkReaderTest.java
│               │               │       ├── ChunkReaderWithoutStatisticsTest.java
│               │               │       ├── FakedBatchReader.java
│               │               │       ├── FakedMultiBatchReader.java
│               │               │       ├── LazyLoadAlignedPagePointReaderTest.java
│               │               │       ├── PageReaderPushDownTest.java
│               │               │       ├── PageReaderTest.java
│               │               │       ├── ReaderTest.java
│               │               │       ├── ReplaceDecoderTest.java
│               │               │       ├── TsFileLastReaderTest.java
│               │               │       ├── TsFileReaderEmptyChunkTest.java
│               │               │       └── chunk/
│               │               │           └── TableChunkReaderTest.java
│               │               ├── tableview/
│               │               │   ├── PerformanceTest.java
│               │               │   ├── TableSchemaTest.java
│               │               │   └── TableViewTest.java
│               │               ├── utils/
│               │               │   ├── BitMapTest.java
│               │               │   ├── BloomFilterTest.java
│               │               │   ├── BytesUtilsTest.java
│               │               │   ├── DateUtilsTest.java
│               │               │   ├── FileGenerator.java
│               │               │   ├── FilePathUtilsTest.java
│               │               │   ├── FileTestUtils.java
│               │               │   ├── FileTestUtilsTest.java
│               │               │   ├── PairTest.java
│               │               │   ├── ReadWriteForEncodingUtilsTest.java
│               │               │   ├── ReadWriteIOUtilsTest.java
│               │               │   ├── ReadWriteStreamUtilsTest.java
│               │               │   ├── ReadWriteToBytesUtilsTest.java
│               │               │   ├── RecordUtils.java
│               │               │   ├── RecordUtilsTest.java
│               │               │   ├── StringContainerTest.java
│               │               │   ├── TimeDurationTest.java
│               │               │   ├── TsFileGeneratorForTest.java
│               │               │   ├── TsFileUtilsTest.java
│               │               │   ├── TsPrimitiveTypeTest.java
│               │               │   └── TypeCastTest.java
│               │               └── write/
│               │                   ├── ChunkRewriteTest.java
│               │                   ├── DefaultSchemaTemplateTest.java
│               │                   ├── MetadataIndexConstructorTest.java
│               │                   ├── PerfTest.java
│               │                   ├── ReadPageInMemTest.java
│               │                   ├── SameMeasurementsWithDifferentDataTypesTest.java
│               │                   ├── TsFileIOWriterTest.java
│               │                   ├── TsFileIntegrityCheckingTool.java
│               │                   ├── TsFileReadWriteTest.java
│               │                   ├── TsFileWriteApiTest.java
│               │                   ├── TsFileWriterTest.java
│               │                   ├── WriteTest.java
│               │                   ├── record/
│               │                   │   └── TabletTest.java
│               │                   ├── schema/
│               │                   │   └── converter/
│               │                   │       └── SchemaBuilderTest.java
│               │                   └── writer/
│               │                       ├── AlignedChunkWriterImplTest.java
│               │                       ├── ForceAppendTsFileWriterTest.java
│               │                       ├── MeasurementSchemaSerializeTest.java
│               │                       ├── PageWriterTest.java
│               │                       ├── RestorableTsFileIOWriterTest.java
│               │                       ├── TableTsBlock2TsFileWriterTest.java
│               │                       ├── TestTsFileOutput.java
│               │                       ├── TimeChunkWriterTest.java
│               │                       ├── TimePageWriterTest.java
│               │                       ├── TsFileIOWriterMemoryControlTest.java
│               │                       ├── ValueChunkWriterTest.java
│               │                       ├── ValuePageWriterTest.java
│               │                       └── VectorMeasurementSchemaStub.java
│               └── resources/
│                   ├── logback.xml
│                   └── v3TsFile
├── jenkins.pom
├── mvnw
├── mvnw.cmd
├── pom.xml
└── python/
    ├── CLAUDE.md
    ├── README-zh.md
    ├── README.md
    ├── VersionUpdater.groovy
    ├── examples/
    │   └── example.py
    ├── pom.xml
    ├── pyproject.toml
    ├── requirements.txt
    ├── setup.py
    ├── tests/
    │   ├── __init__.py
    │   ├── bench_batch_arrow_vs_dataframe.py
    │   ├── bench_write_arrow_vs_dataframe.py
    │   ├── resources/
    │   │   ├── README.md
    │   │   ├── simple_table_t1.tsfile
    │   │   ├── simple_table_t2.tsfile
    │   │   ├── simple_tree.tsfile
    │   │   └── table_with_time_column.tsfile
    │   ├── test_basic.py
    │   ├── test_batch_arrow.py
    │   ├── test_dataframe.py
    │   ├── test_load_tsfile_from_iotdb.py
    │   ├── test_query_by_row.py
    │   ├── test_reader_metadata.py
    │   ├── test_tag_filter.py
    │   ├── test_tag_filter_query.py
    │   ├── test_to_tsfile.py
    │   ├── test_tsfile_dataset.py
    │   ├── test_write.py
    │   ├── test_write_and_read.py
    │   └── test_write_arrow.py
    └── tsfile/
        ├── __init__.pxd
        ├── __init__.py
        ├── constants.py
        ├── dataset/
        │   ├── __init__.py
        │   ├── dataframe.py
        │   ├── formatting.py
        │   ├── merge.py
        │   ├── metadata.py
        │   ├── reader.py
        │   └── timeseries.py
        ├── date_utils.py
        ├── exceptions.py
        ├── field.py
        ├── row_record.py
        ├── schema.py
        ├── tablet.py
        ├── tag_filter.py
        ├── tsfile_cpp.pxd
        ├── tsfile_py_cpp.pxd
        ├── tsfile_py_cpp.pyx
        ├── tsfile_reader.pyx
        ├── tsfile_table_writer.py
        ├── tsfile_writer.pyx
        └── utils.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .asf.yaml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

github:
  description: "Apache TsFile"
  homepage: https://tsfile.apache.org/
  labels:
    - timeseries
    - file
    - iot
    - big-data
    - java
    - cpp
    - python
    - tsfile
  features:
    wiki: true
    issues: true
  enabled_merge_buttons:
    # enable squash button:
    squash:  true
    # enable merge button:
    merge:   false
    # disable rebase button:
    rebase:  true
  protected_branches:
    develop: {}
    dev/1.1: {}

notifications:
  commits: commits@tsfile.apache.org
  issues: dev@tsfile.apache.org
  pullrequests_status: notifications@tsfile.apache.org
  pullrequests_comment: notifications@tsfile.apache.org
  pullrequests_bot_dependabot: notifications@tsfile.apache.org

staging:
  profile: ~
  whoami:  asf-staging

publish:
  whoami:  asf-site


================================================
FILE: .clang-format
================================================
---
Language:        Cpp
# BasedOnStyle:  Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
AlignEscapedNewlines: Left
AlignOperands:   Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
  - __capability
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
  AfterCaseLabel:  false
  AfterClass:      false
  AfterControlStatement: Never
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: true
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     80
CommentPragmas:  '^ IWYU pragma:'
QualifierAlignment: Leave
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: true
DisableFormat:   false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
PackConstructorInitializers: NextLine
BasedOnStyle:    ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
AllowAllConstructorInitializersOnNextLine: true
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
IncludeBlocks:   Regroup
IncludeCategories:
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*\.h>'
    Priority:        1
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '.*'
    Priority:        3
    SortPriority:    0
    CaseSensitive:   false
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentRequires:  false
IndentWidth:     4
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PenaltyIndentedWhitespace: 0
PointerAlignment: Left
PPIndentWidth:   -1
RawStringFormats:
  - Language:        Cpp
    Delimiters:
      - cc
      - CC
      - cpp
      - Cpp
      - CPP
      - 'c++'
      - 'C++'
    CanonicalDelimiter: ''
    BasedOnStyle:    google
  - Language:        TextProto
    Delimiters:
      - pb
      - PB
      - proto
      - PROTO
    EnclosingFunctions:
      - EqualsProto
      - EquivToProto
      - PARSE_PARTIAL_TEXT_PROTO
      - PARSE_TEST_PROTO
      - PARSE_TEXT_PROTO
      - ParseTextOrDie
      - ParseTextProtoOrDie
      - ParseTestProto
      - ParsePartialTestProto
    CanonicalDelimiter: pb
    BasedOnStyle:    google
ReferenceAlignment: Pointer
ReflowComments:  true
RemoveBracesLLVM: false
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes:    CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterForeachMacros: true
  AfterFunctionDefinitionName: false
  AfterFunctionDeclarationName: false
  AfterIfMacros:   true
  AfterOverloadedOperator: false
  BeforeNonEmptyParentheses: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
  Minimum:         1
  Maximum:         -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both
Standard:        Auto
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        8
UseCRLF:         false
UseTab:          Never
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
  - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME
...



================================================
FILE: .gitattributes
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

* text=auto eol=lf


================================================
FILE: .github/dependabot.yml
================================================
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#    https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------

version: 2
updates:
- package-ecosystem: maven
  directory: /
  schedule:
    interval: monthly
- package-ecosystem: github-actions
  directory: /
  schedule:
    interval: monthly


================================================
FILE: .github/workflows/code-coverage.yml
================================================
name: Code Coverage
on:
  push:
    branches:
      - develop
      - rc/*
    paths-ignore:
      - 'docs/**'
  pull_request:
    branches:
      - develop
      - rc/*
    paths-ignore:
      - 'docs/**'

jobs:
  codecov:
    runs-on: ubuntu-22.04
    if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'apache/tsfile' || github.event_name == 'push'

    steps:
      - uses: actions/checkout@v6
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Generate code coverage reports
        run: |
          sudo apt-get install lcov
          ./mvnw -B -P with-java,with-cpp,with-code-coverage clean verify -Dspotless.skip=true
          lcov --capture --directory cpp/target/build/test --output-file cpp/target/build/test/coverage.info
          lcov --remove cpp/target/build/test/coverage.info '*/tsfile/cpp/test/*' --output-file cpp/target/build/test/coverage_filtered.info
          genhtml cpp/target/build/test/coverage_filtered.info --output-directory cpp/target/build/test/coverage_report
          rm -rf cpp/target/build/test/CMakeFiles/TsFile_Test.dir
          rm -rf cpp/target/build/test/coverage.info
      - name: Upload coverage reports to codecov
        uses: codecov/codecov-action@v6
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: java/tsfile/target/jacoco-merged-reports/jacoco.xml,cpp/target/build/test/coverage_report/index.html


================================================
FILE: .github/workflows/codeql.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
  push:
    branches:
      - develop
      - rc/*
  pull_request:
    branches:
      - develop
      - rc/*
    paths-ignore:
      - 'docs/**'

jobs:
  analyze:
    name: Analyze (${{ matrix.language }})
    # Runner size impacts CodeQL analysis time. To learn more, please see:
    #   - https://gh.io/recommended-hardware-resources-for-running-codeql
    #   - https://gh.io/supported-runners-and-hardware-resources
    #   - https://gh.io/using-larger-runners (GitHub.com only)
    # Consider using larger runners or machines with greater resources for possible analysis time improvements.
    runs-on: ${{ (matrix.language == 'c-cpp' && 'ubuntu-22.04') || 'ubuntu-latest' }}
    timeout-minutes: ${{ 360 }}
    permissions:
      # required for all workflows
      security-events: write

      # required to fetch internal or private CodeQL packs
      packages: read

      # only required for workflows in private repositories
      actions: read
      contents: read

    strategy:
      fail-fast: false
      matrix:
        include:
        - language: c-cpp
          build-mode: autobuild
        - language: java-kotlin
          build-mode: none # This mode only analyzes Java. Set this to 'autobuild' or 'manual' to analyze Kotlin too.
        - language: python
          build-mode: none
        # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
        # Use `c-cpp` to analyze code written in C, C++ or both
        # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
        # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
        # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
        # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
        # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
        # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
    steps:
    - name: Checkout repository
      uses: actions/checkout@v6

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v4
      with:
        languages: ${{ matrix.language }}
        build-mode: ${{ matrix.build-mode }}
    - name: Manual build
      if: matrix.build-mode == 'manual'
      run: |
        .\mvnw.cmd clean package -P with-cpp

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v4
      with:
        category: "/language:${{matrix.language}}"


================================================
FILE: .github/workflows/site-build.yaml
================================================
name: Site Build

on:
  push:
    branches:
      - develop
    paths:
      - 'docs/**'
  pull_request:
    branches:
      - develop
    paths:
      - 'docs/**'
  # allow manually run the action:
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test:
    runs-on: ubuntu-latest
    if: github.event_name == 'pull_request'

    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v6
        with:
          package_json_file: 'docs/package.json'
          run_install: true
          version: 8

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: 20
          cache: pnpm
          cache-dependency-path: docs/pnpm-lock.yaml


      - name: Install deps
        run: |-
          cd docs 
          pnpm install --frozen-lockfile

      - name: Test build Docs
        env:
          NODE_OPTIONS: --max_old_space_size=8192
        run: |-
          cd docs
          pnpm run docs:build
          > src/.vuepress/dist/.nojekyll

  deploy:
    runs-on: ubuntu-latest
    if: github.event_name == 'workflow_dispatch' && github.ref_name == 'develop' || github.event_name == 'push'

    steps:
      - uses: actions/checkout@v6

      - name: Install pnpm
        uses: pnpm/action-setup@v6
        with:
          package_json_file: 'docs/package.json'
          run_install: true
          version: 8

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: 20
          cache: pnpm
          cache-dependency-path: docs/pnpm-lock.yaml

      - name: Install deps
        run: |-
          cd docs 
          pnpm install --frozen-lockfile

      - name: Build Docs
        env:
          NODE_OPTIONS: --max_old_space_size=8192
        run: |-
          cd docs
          pnpm run docs:build
          > src/.vuepress/dist/.nojekyll

      - name: Deploy website
        env:
          TSFILE_WEBSITE_BUILD: ${{ secrets.TSFILE_WEBSITE_BUILD }}
        run: |
          cd docs
          git config --global url."https://asf-ci-deploy:$TSFILE_WEBSITE_BUILD@github.com/apache/".insteadOf "https://github.com/apache/"
          git config --global user.name github-actions
          git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com
          npm run deploy


================================================
FILE: .github/workflows/unit-test-cpp.yml
================================================
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Unit-Test-Cpp

on:
  push:
    branches:
      - develop
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'java/**'
  pull_request:
    branches:
      - develop
      - dev/*
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'java/**'
  # Enable manually starting builds, and allow forcing updating of SNAPSHOT dependencies.
  workflow_dispatch:
    inputs:
      forceUpdates:
        description: "Forces a snapshot update"
        required: false
        default: 'false'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  unit-test:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        include:
          # Linux all
          - os: ubuntu-latest
            build_type: Debug
            enable_asan: Asan
          - os: ubuntu-latest
            build_type: Debug
            enable_asan: NoAsan
          - os: ubuntu-latest
            build_type: Release
            enable_asan: Asan
          - os: ubuntu-latest
            build_type: Release
            enable_asan: NoAsan

          # macOS exclude Release+ASan
          - os: macos-latest
            build_type: Debug
            enable_asan: Asan
          - os: macos-latest
            build_type: Debug
            enable_asan: NoAsan
          - os: macos-latest
            build_type: Release
            enable_asan: NoAsan

          # Windows just Release
          - os: windows-latest
            build_type: Release
            enable_asan: NoAsan
    runs-on: ${{ matrix.os }}

    steps:

      - name: Checkout repository
        uses: actions/checkout@v6

      # Setup caching of the artifacts in the .m2 directory, so they don't have to
      # all be downloaded again for every build.
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-

      # On Windows systems the 'mvnw' script needs an additional ".cmd" appended.
      - name: Calculate platform suffix
        id: platform_suffix
        uses: actions/github-script@v9.0.0
        env:
          OS: ${{ matrix.os }}
        with:
          script: |
            const { OS } = process.env
            if (OS.includes("windows")) {
              core.setOutput('platform_suffix', `.cmd`)
            } else {
              core.setOutput('platform_suffix', ``)
            }

      # Install dependencies
      - name: Install dependencies
        shell: bash
        run: |
          if [[ "$RUNNER_OS" == "Linux" ]]; then
            if command -v apt-get >/dev/null 2>&1; then
              sudo apt-get update
              sudo apt-get install -y uuid-dev
            elif command -v yum >/dev/null 2>&1; then
              sudo yum install -y libuuid-devel
            fi
            sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-17 100
            sudo update-alternatives --set clang-format /usr/bin/clang-format-17
            sudo apt-get update
            sudo apt-get install -y uuid-dev
          elif [[ "$RUNNER_OS" == "Windows" ]]; then
            choco install llvm --version 17.0.6 --force
          else
            brew install llvm@17
            ln -sf $(brew --prefix llvm@17)/bin/clang-format /opt/homebrew/bin/clang-format
          fi

      # Run the actual maven build including all tests.
      # On Windows, prepend MinGW bin to PATH so test exe can find runtime DLLs
      # (e.g. libstdc++-6.dll) when gtest_discover_tests runs it; avoids 0xc0000139.
      - name: Build and test with Maven
        shell: bash
        run: |
          if [ "${{ matrix.enable_asan }}" = "Asan" ]; then
            ASAN_VALUE="ON"
          else
            ASAN_VALUE="OFF"
          fi
          if [[ "$RUNNER_OS" == "Windows" ]]; then
            export PATH="/c/mingw64/bin:$PATH"
          fi
          ./mvnw${{ steps.platform_suffix.outputs.platform_suffix }} -P with-cpp \
           -Denable.asan=$ASAN_VALUE -Dbuild.type=${{ matrix.build_type }} clean verify



================================================
FILE: .github/workflows/unit-test-java.yml
================================================
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Unit-Test-Java

on:
  push:
    branches:
      - develop
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'cpp/**'
      - 'python/**'
  pull_request:
    branches:
      - develop
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'cpp/**'
      - 'python/**'
  # Enable manually starting builds, and allow forcing updating of SNAPSHOT dependencies.
  workflow_dispatch:
    inputs:
      forceUpdates:
        description: "Forces a snapshot update"
        required: false
        default: 'false'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  unit-test:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        java: [ 8, 17, 25 ]
        os: [ ubuntu-latest, macos-latest, windows-latest ]
    runs-on: ${{ matrix.os }}

    steps:

      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v5
        with:
          distribution: corretto
          java-version: ${{ matrix.java }}

      # Setup caching of the artifacts in the .m2 directory, so they don't have to
      # all be downloaded again for every build.
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-

      # On Windows systems the 'mvnw' script needs an additional ".cmd" appended.
      - name: Calculate platform suffix
        id: platform_suffix
        uses: actions/github-script@v9.0.0
        env:
          OS: ${{ matrix.os }}
        with:
          script: |
            const { OS } = process.env
            if (OS.includes("windows")) {
              core.setOutput('platform_suffix', `.cmd`)
            } else {
              core.setOutput('platform_suffix', ``)
            }

      # Run the actual maven build including all tests.
      - name: Build and test with Maven
        shell: bash
        run: |
          ./mvnw${{ steps.platform_suffix.outputs.platform_suffix }} -P with-java clean verify


================================================
FILE: .github/workflows/unit-test-python.yml
================================================
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Unit-Test-Py

on:
  push:
    branches:
      - develop
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'java/**'
  pull_request:
    branches:
      - develop
      - dev/*
      - iotdb
      - rc/*
    paths-ignore:
      - 'docs/**'
      - 'java/**'
  # Enable manually starting builds, and allow forcing updating of SNAPSHOT dependencies.
  workflow_dispatch:
    inputs:
      forceUpdates:
        description: "Forces a snapshot update"
        required: false
        default: 'false'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  unit-test:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        os: [ ubuntu-latest, macos-latest, windows-latest ]
        python-version: ["3.9", "3.11", "3.14"]
    runs-on: ${{ matrix.os }}

    steps:

      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}

      # Setup caching of the artifacts in the .m2 directory, so they don't have to
      # all be downloaded again for every build.
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-

      # On Windows systems the 'mvnw' script needs an additional ".cmd" appended.
      - name: Calculate platform suffix
        id: platform_suffix
        uses: actions/github-script@v9.0.0
        env:
          OS: ${{ matrix.os }}
        with:
          script: |
            const { OS } = process.env
            if (OS.includes("windows")) {
              core.setOutput('platform_suffix', `.cmd`)
            } else {
              core.setOutput('platform_suffix', ``)
            }

      # Install dependencies
      - name: Install dependencies
        shell: bash
        run: |
          if [[ "$RUNNER_OS" == "Linux" ]]; then
            sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-17 100
            sudo update-alternatives --set clang-format /usr/bin/clang-format-17
            sudo apt-get update
            sudo apt-get install -y uuid-dev
          elif [[ "$RUNNER_OS" == "Windows" ]]; then
            choco install llvm --version 17.0.6 --force
          else
            brew install llvm@17
            ln -sf $(brew --prefix llvm@17)/bin/clang-format /opt/homebrew/bin/clang-format
          fi


      # Run the actual maven build including all tests.
      - name: Build and test with Maven
        shell: bash
        run: |
          # On Windows, prepend MinGW bin so CTest/test exe uses the correct
          # runtime DLLs instead of Git-for-Windows mingw runtime from PATH.
          if [[ "$RUNNER_OS" == "Windows" ]]; then
            export PATH="/c/mingw64/bin:$PATH"
          fi
          BLACK_VER_PROP=""
          if [[ "${{ matrix.python-version }}" == "3.9" ]]; then
            BLACK_VER_PROP="-Dblack.version=25.11.0"
          fi
          ./mvnw${{ steps.platform_suffix.outputs.platform_suffix }} -P with-python -Denable.asan=OFF -Dbuild.type=Release clean verify ${BLACK_VER_PROP}

      - name: Upload whl Artifact
        uses: actions/upload-artifact@v7
        with:
          name: tsfile-${{ runner.os }}-py${{ matrix.python-version }}-whl
          path: python/dist/tsfile-*.whl
          retention-days: 1


================================================
FILE: .github/workflows/wheels.yml
================================================
name: Build TsFile wheels(multi-platform)

on:
  push:
    branches:
      - "rc/**"
  workflow_dispatch:

jobs:
  build:
    name: Build wheels on ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: linux-x86_64
            os: ubuntu-22.04
            platform: linux
            cibw_archs_linux: "x86_64"

          - name: linux-aarch64
            os: ubuntu-22.04-arm
            platform: linux
            cibw_archs_linux: "aarch64"

          - name: macos-x86_64
            os: macos-15-intel
            platform: macos
            cibw_archs_macos: "x86_64"

          - name: macos-arm64
            os: macos-latest 
            platform: macos
            cibw_archs_macos: "arm64"
#          Windows is handled by the build-windows job below
    
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          submodules: false
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: "3.11"
      
      - name: Set up Java 17
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: "17"

      - name: Install system deps (macOS)
        if: matrix.platform == 'macos'
        run: |
          set -eux
          brew update
          brew install pkg-config || true

      - name: Install build tools
        run: |
          python -m pip install -U pip wheel
          python -m pip install cibuildwheel==3.4.1

      - name: Pre-download virtualenv for cibuildwheel
        run: |
          if [ "$(uname)" = "Darwin" ]; then
            CACHE_DIR="$HOME/Library/Caches/cibuildwheel"
          else
            CACHE_DIR="$HOME/.cache/cibuildwheel"
          fi
          mkdir -p "$CACHE_DIR"
          TARGET="$CACHE_DIR/virtualenv-20.26.6.pyz"
          if [ ! -f "$TARGET" ]; then
            curl -sSL --retry 5 --retry-delay 15 --retry-all-errors \
              -o "$TARGET" \
              "https://github.com/pypa/get-virtualenv/raw/20.26.6/public/virtualenv.pyz"
          fi
          ls -la "$TARGET"

      
      - name: Build C++ core via Maven (macOS)
        if: matrix.platform == 'macos'
        shell: bash
        env:
          MACOSX_DEPLOYMENT_TARGET: "12.0"
          CFLAGS: "-mmacosx-version-min=12.0"
          CXXFLAGS: "-mmacosx-version-min=12.0"
          LDFLAGS: "-mmacosx-version-min=12.0"
        run: |
          set -euxo pipefail
          chmod +x mvnw || true
          ./mvnw -Pwith-cpp clean package \
            -DskipTests -Dspotless.check.skip=true -Dspotless.apply.skip=true \
            -Dbuild.test=OFF \
            -Dcmake.args="-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0"
          otool -l cpp/target/build/lib/libtsfile*.dylib | grep -A2 LC_VERSION_MIN_MACOSX || true
            
      - name: Build wheels via cibuildwheel
        if: matrix.platform != 'macos'
        env: 
          CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux }}
#          CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_archs_windows }}

          CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*"
          CIBW_SKIP: "pp* *-musllinux*"

          CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28"
          CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux_2_28"

          MACOSX_DEPLOYMENT_TARGET: "12.0"

          CIBW_BEFORE_ALL_LINUX: |
            set -euxo pipefail
            if command -v yum >/dev/null 2>&1; then
              yum install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
            else
              echo "Not a yum-based image?" ; exit 1
            fi
            ARCH="$(uname -m)"
            mkdir -p /opt/java
            if [ "$ARCH" = "x86_64" ]; then
              JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz"
            else
              # aarch64
              JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-aarch64_bin.tar.gz"
            fi
            curl -L -o /tmp/jdk17.tar.gz "$JDK_URL"
            tar -xzf /tmp/jdk17.tar.gz -C /opt/java
            export JAVA_HOME=$(echo /opt/java/jdk-17.0.12*)
            export PATH="$JAVA_HOME/bin:$PATH"
            java -version

            chmod +x mvnw || true
            ./mvnw -Pwith-cpp clean package \
              -DskipTests -Dbuild.test=OFF \
              -Dspotless.check.skip=true -Dspotless.apply.skip=true
            test -d cpp/target/build/lib && test -d cpp/target/build/include
                
          CIBW_TEST_COMMAND: >
            python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')"
          CIBW_BUILD_VERBOSITY: "1"
        run: cibuildwheel --output-dir wheelhouse python
      
      - name: Build wheels via cibuildwheel (macOS)
        if: matrix.platform == 'macos'
        env:
          CIBW_ARCHS_MACOS: ${{ matrix.cibw_archs_macos }}
          CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*"
#          CIBW_BUILD: "cp313-*"
          CIBW_SKIP: "pp*"
          CIBW_ENVIRONMENT_MACOS: "MACOSX_DEPLOYMENT_TARGET=12.0"
          MACOSX_DEPLOYMENT_TARGET: "12.0"
          CIBW_TEST_COMMAND: >
            python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')"
          CIBW_BUILD_VERBOSITY: "1"
        run: cibuildwheel --output-dir wheelhouse python

      - name: Upload wheels as artifact
        uses: actions/upload-artifact@v7
        with:
          name: tsfile-wheels-${{ matrix.name }}
          path: wheelhouse/*.whl

  # ── Windows: build C++ once, then build wheels for each Python version ──
  build-windows-cpp:
    name: Build C++ core (Windows)
    runs-on: windows-2022
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          submodules: false
          fetch-depth: 0

      - name: Set up Java 17
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: "17"

      - name: Set up MSYS2 / MinGW
        uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          update: true
          install: >-
            mingw-w64-x86_64-gcc
            mingw-w64-x86_64-cmake
            mingw-w64-x86_64-make
            make

      - name: Build C++ core via Maven
        shell: msys2 {0}
        run: |
          set -euxo pipefail
          export JAVA_HOME="$(cygpath "$JAVA_HOME")"
          export PATH="$JAVA_HOME/bin:$PATH"
          java -version
          chmod +x mvnw || true
          ./mvnw -Pwith-cpp clean package \
            -DskipTests -Dbuild.test=OFF \
            -Dspotless.check.skip=true -Dspotless.apply.skip=true
          test -d cpp/target/build/lib
          test -d cpp/target/build/include

      - name: Upload C++ build output
        uses: actions/upload-artifact@v7
        with:
          name: tsfile-cpp-windows
          path: |
            cpp/target/build/lib/
            cpp/target/build/include/

  build-windows-wheels:
    name: Build wheel (Windows, Python ${{ matrix.python-version }})
    needs: build-windows-cpp
    runs-on: windows-2022
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          submodules: false
          fetch-depth: 0

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python-version }}

      - name: Set up Java 17
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: "17"

      - name: Set up MSYS2 / MinGW
        uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          update: false
          install: >-
            mingw-w64-x86_64-gcc
            mingw-w64-x86_64-make
            make

      - name: Download C++ build output
        uses: actions/download-artifact@v8
        with:
          name: tsfile-cpp-windows
          path: cpp/target/build/

      - name: Build wheel
        shell: msys2 {0}
        run: |
          set -euxo pipefail
          export JAVA_HOME="$(cygpath "$JAVA_HOME")"
          export PYTHON_HOME="$(cygpath "$pythonLocation")"
          export PATH="$PYTHON_HOME:$PYTHON_HOME/Scripts:$JAVA_HOME/bin:$PATH"

          # Build wheel via Maven (no clean — keep C++ artifacts from previous job)
          chmod +x mvnw || true
          cd python
          BLACK_VER_PROP=""
          case "${{ matrix.python-version }}" in
            3.9) BLACK_VER_PROP="-Dblack.version=25.11.0" ;;
          esac
          ../mvnw package -DskipTests \
            -Dspotless.check.skip=true -Dspotless.apply.skip=true \
            ${BLACK_VER_PROP}
          ls -la dist/

      - name: Verify wheel
        shell: bash
        run: |
          python -m pip install python/dist/*.whl
          python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok')"

      - name: Upload wheel
        uses: actions/upload-artifact@v7
        with:
          name: tsfile-wheels-windows-py${{ matrix.python-version }}
          path: python/dist/*.whl



================================================
FILE: .gitignore
================================================
/.mvn/.gradle-enterprise/
/.mvn/.develocity/
/.mvn/wrapper/maven-wrapper.jar
**/target/**
/java/tsfile/test.tsfile


# intellij IDE files
**/*.iml
**/.idea/
**/*.log
**/*.ipr
**/*.iws

.DS_Store

docs/node_modules/
docs/src/.vuepress/.cache/
docs/src/.vuepress/.temp/
docs/src/.vuepress/dist/
docs/pnpm-lock.yaml

# python files
python/build
python/dist
python/__pycache__
python/tsfile.egg-info
python/tsfile/__pycache__
python/tsfile/dataset/__pycache__
python/tsfile/*so*
python/tsfile/*dll*
python/tsfile/*dylib*
python/tsfile/*.h
python/tsfile/*.cpp
python/data
python/venv/*
python/tests/__pycache__/*
python/tests/*.tsfile
python/tsfile/include

cpp/cmake-build-debug-mingw/
cpp/third_party/googletest-release-1.12.1.zip
cpp/third_party/zlib-1.3.1
.vscode/

build/*
cpp/third_party/zlib-1.3.1/treebuild.xml
cpp/third_party/zlib-1.3.1/zlib-1.3.1/treebuild.xml

# Claude Code
.claude/settings.local.json
.claude/todos/
.claude/worktrees/
.claude/scheduled_tasks.json


================================================
FILE: .mvn/develocity.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<develocity xmlns="https://www.gradle.com/develocity-maven" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.gradle.com/develocity-maven https://www.gradle.com/schema/develocity-maven.xsd">
    <projectId>tsfile</projectId>
    <server>
        <url>https://develocity.apache.org</url>
        <allowUntrusted>false</allowUntrusted>
    </server>
    <buildScan>
        <capture>
            <fileFingerprints>true</fileFingerprints>
            <buildLogging>true</buildLogging>
            <testLogging>true</testLogging>
        </capture>
        <backgroundBuildScanUpload>#{isFalse(env['GITHUB_ACTIONS'])}</backgroundBuildScanUpload>
        <publishing>
            <onlyIf><![CDATA[authenticated]]></onlyIf>
        </publishing>
        <obfuscation>
            <ipAddresses>#{{'0.0.0.0'}}</ipAddresses>
        </obfuscation>
    </buildScan>
    <buildCache>
        <local>
            <enabled>#{isFalse(env['GITHUB_ACTIONS'])}</enabled>
        </local>
        <remote>
            <enabled>false</enabled>
        </remote>
    </buildCache>
</develocity>


================================================
FILE: .mvn/extensions.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
    <extension>
        <groupId>com.gradle</groupId>
        <artifactId>develocity-maven-extension</artifactId>
        <version>1.23.1</version>
    </extension>
    <extension>
        <groupId>com.gradle</groupId>
        <artifactId>common-custom-user-data-maven-extension</artifactId>
        <version>2.0.1</version>
    </extension>
</extensions>


================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar

================================================
FILE: CLAUDE.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

Apache TsFile is a columnar storage file format designed for time series data. The project provides implementations in three languages, each in its own top-level directory. The main branch is `develop`.

TsFile uses a hierarchical storage model: **Page → Chunk → ChunkGroup → File**. Data is organized by device, with each device's measurements stored as individual time series. Two write models exist: **aligned** (all measurements share timestamps) and **non-aligned** (independent timestamps per measurement).

## Repository Structure

| Directory | Language | Build System | Details |
|-----------|----------|--------------|---------|
| `java/`   | Java     | Maven        | [java/CLAUDE.md](java/CLAUDE.md) |
| `cpp/`    | C++      | CMake        | [cpp/CLAUDE.md](cpp/CLAUDE.md) |
| `python/` | Python   | setuptools + Cython | [python/CLAUDE.md](python/CLAUDE.md) |

The root `pom.xml` orchestrates all three via Maven profiles:

```bash
./mvnw clean verify -P with-java       # Java only
./mvnw clean verify -P with-cpp        # C++ only
./mvnw clean verify -P with-python     # Python (requires C++ built first)
```

## Cross-Module Dependencies

- **Python depends on C++**: The Python module uses Cython to bind to the C++ shared library (`libtsfile`). C++ must be built before Python (`-P with-python` implies C++ build).
- **Java is independent**: The Java implementation shares no build-time dependency with C++ or Python.
- All three implementations read/write the same TsFile binary format.

## Code Formatting

```bash
./mvnw spotless:apply    # Format all languages (Java: Google Java Format, C++: clang-format, Python: Black)
./mvnw spotless:check    # Check formatting without modifying
```

## Internationalization

Java logs and exception messages use a runtime `ResourceBundle` approach so the same JAR can emit English or Simplified Chinese based on a JVM startup property. See `java/CLAUDE.md` for the convention. Switch language with `-Dtsfile.locale=zh`.

## License Header

Every new file must include the Apache License 2.0 header at the top. Use the comment style appropriate for the file type (e.g., `<!-- -->` for Markdown, `/* */` for Java/C++, `#` for Python). See any existing file for the exact wording.

## Git Commit

- Do NOT add `Co-Authored-By` trailer to commit messages.


================================================
FILE: Jenkinsfile
================================================
#!groovy

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

pipeline {

    agent {
        node {
            label 'ubuntu'
        }
    }

    environment {
        // Testfails will be handled by the jenkins junit steps and mark the build as unstable.
        MVN_TEST_FAIL_IGNORE = '-Dmaven.test.failure.ignore=true'
    }

    tools {
        maven 'maven_3_latest'
        jdk 'jdk_11_latest'
    }

    options {
        timeout(time: 1, unit: 'HOURS')
        // When we have test-fails e.g. we don't need to run the remaining steps
        skipStagesAfterUnstable()
    }

    stages {
        stage('Initialization') {
            steps {
                echo 'Building Branch: ' + env.BRANCH_NAME
                echo 'Using PATH = ' + env.PATH
            }
        }

        stage('Checkout') {
            steps {
                echo 'Checking out branch ' + env.BRANCH_NAME
                checkout scm
            }
        }

        stage('Build and UT') {
            when {
                expression {
                    env.BRANCH_NAME ==~ "(develop)|(rel/.*) |(jenkins-.*)"
                }
            }
            steps {
                echo 'Building and Unit Test...'
                sh "mvn ${MVN_TEST_FAIL_IGNORE} -P with-java clean install"
            }
            post {
                always {
                    junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
                    junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
                }
            }
        }

        stage('Deploy Prepare') {
            when {
                expression {
                    env.BRANCH_NAME ==~ "(develop)"
                }
            }
            steps {
                echo 'Deploy Prepare'
                // We'll deploy to a relative directory so we can
                // deploy new versions only if the entire build succeeds
                sh "mvn -T 1C -DaltDeploymentRepository=snapshot-repo::default::file:./local-snapshots-dir clean deploy -DskipTests"
            }
        }

        stage('Deploy') {
            when {
                expression {
                    env.BRANCH_NAME ==~ "(develop)"
                }
            }
            steps {
                echo 'Deploying'
                // Deploy the artifacts using the wagon-maven-plugin.
                sh 'mvn -f jenkins.pom -X -P deploy-snapshots wagon:upload -P get-jar-with-dependencies'
            }
        }

        stage('Cleanup') {
            steps {
                echo 'Cleaning up the workspace'
                deleteDir()
            }
        }
    }

    // Send out notifications on unsuccessful builds.
    post {
        // If this build failed, send an email to the list.
        failure {
            script {
                if(env.BRANCH_NAME == "develop") {
                    emailext(
                        subject: "[BUILD-FAILURE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
                        body: """
BUILD-FAILURE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]':

Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
""",
                        to: "dev@tsfile.apache.org"
                    )
                }
            }
        }

        // If this build didn't fail, but there were failing tests, send an email to the list.
        unstable {
            script {
                if(env.BRANCH_NAME == "develop") {
                    emailext(
                        subject: "[BUILD-UNSTABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
                        body: """
BUILD-UNSTABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]':

Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
""",
                        to: "dev@tsfile.apache.org"
                    )
                }
            }
        }

        // Send an email, if the last build was not successful and this one is.
        success {
            script {
                if ((env.BRANCH_NAME == "develop") && (currentBuild.previousBuild != null) && (currentBuild.previousBuild.result != 'SUCCESS')) {
                    emailext (
                        subject: "[BUILD-STABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
                        body: """
BUILD-STABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]':

Is back to normal.
""",
                        to: "dev@tsfile.apache.org"
                    )
                }
            }
        }
    }

}


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

--------------------------------------------------------------------------------
                           APACHE TSFILE SUBCOMPONENTS
--------------------------------------------------------------------------------

The following class is modified from Apache commons-collections

./java/tsfile/src/main/java/org/apache/tsfile/utils/Murmur128Hash.java
Relevant pr is: https://github.com/apache/commons-collections/pull/83/

--------------------------------------------------------------------------------

The following files include code modified from Michael Burman's gorilla-tsc project.

./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/GorillaEncoderV2.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/IntGorillaEncoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/LongGorillaEncoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/SinglePrecisionEncoderV2.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/DoublePrecisionEncoderV2.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/GorillaDecoderV2.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/IntGorillaDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/LongGorillaDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/SinglePrecisionDecoderV2.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/DoublePrecisionDecoderV2.java

Copyright: 2016-2018 Michael Burman and/or other contributors
Project page: https://github.com/burmanm/gorilla-tsc
License: https://github.com/burmanm/gorilla-tsc/blob/master/LICENSE

--------------------------------------------------------------------------------

The following files include code modified from Panagiotis Liakos, Katia Papakonstantinopoulou and Yannis Kotidis chimp project.

./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/DoublePrecisionChimpDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/IntChimpDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/LongChimpDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/decoder/SinglePrecisionChimpDecoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/DoublePrecisionChimpEncoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/IntChimpEncoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/LongChimpEncoder.java
./java/tsfile/src/main/java/org/apache/tsfile/encoding/encoder/SinglePrecisionChimpEncoder.java

Copyright: 2022- Panagiotis Liakos, Katia Papakonstantinopoulou and Yannis Kotidis
Project page: https://github.com/panagiotisl/chimp
License: https://github.com/panagiotisl/chimp/blob/main/LICENCE.md

--------------------------------------------------------------------------------

The following files include code modified from Trino project.

./java/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/*

Trino is open source software licensed under the Apache License 2.0 and supported by the Trino Software Foundation.
Project page: https://github.com/trinodb/trino
License: https://github.com/trinodb/trino/blob/master/LICENSE

--------------------------------------------------------------------------------

The following files include code is copied from lz4 project.

./cpp/src/compress/lz4.c
./cpp/src/compress/lz4.h

Copyright: (C) 2011-2020, Yann Collet.
Project page: http://www.lz4.org
License: https://github.com/lz4/lz4/blob/dev/LICENSE

--------------------------------------------------------------------------------

The following files include code modified from Snappy project.

./cpp/third_party/google_snappy/snappy.h
./cpp/third_party/google_snappy/snappy.cc
./cpp/third_party/google_snappy/snappy-internal.h
./cpp/third_party/google_snappy/snappy-sinksource.cc
./cpp/third_party/google_snappy/snappy-sinksource.h
./cpp/third_party/google_snappy/snappy-stubs-internal.cc
./cpp/third_party/google_snappy/snappy-stubs-internal.h
./cpp/third_party/google_snappy/snappy-stubs-public.h.in
./cpp/third_party/google_snappy/CMakeLists.txt

Copyright: 2011, Google Inc.
Project page: https://github.com/google/snappy
License: https://github.com/google/snappy/blob/main/COPYING

--------------------------------------------------------------------------------

The following files include code is copied from lzokay project.

./cpp/third_party/lzokay/lzokay.cpp
./cpp/third_party/lzokay/lzokay.hpp
./cpp/third_party/lzokay/LICENSE

Copyright: (c) 2018 Jack Andersen
Project page: https://github.com/AxioDL/lzokay
License: https://github.com/AxioDL/lzokay/blob/master/LICENSE

--------------------------------------------------------------------------------

The following files include code modified from Apache Commons Lang project.

./java/tsfile/src/main/java/org/apache/tsfile/external/commons/lang3/*

Apache Commons Lang is open source software licensed under the Apache License 2.0 and supported by the Apache Software Foundation.
Project page: https://github.com/apache/commons-lang
License: https://github.com/apache/commons-lang/blob/master/LICENSE.txt

--------------------------------------------------------------------------------

The following files include code modified from Apache Commons IO project.

./java/tsfile/src/main/java/org/apache/tsfile/external/commons/io/*

Apache Commons IO is open source software licensed under the Apache License 2.0 and supported by the Apache Software Foundation.
Project page: https://github.com/apache/commons-io
License: https://github.com/apache/commons-io/blob/master/LICENSE.txt

--------------------------------------------------------------------------------

The following files include code modified from Apache Commons CodeC project.

./java/tsfile/src/main/java/org/apache/tsfile/external/commons/codec/*

Apache Commons CodeC is open source software licensed under the Apache License 2.0 and supported by the Apache Software Foundation.
Project page: https://github.com/apache/commons-codec
License: https://github.com/apache/commons-codec/blob/master/LICENSE.txt

--------------------------------------------------------------------------------

The following files include code modified from Apache Commons Collections project.

./java/tsfile/src/main/java/org/apache/tsfile/external/commons/collections4/*

Apache Commons Collections is open source software licensed under the Apache License 2.0 and supported by the Apache Software Foundation.
Project page: https://github.com/apache/commons-collections
License: https://github.com/apache/commons-collections/blob/master/LICENSE.txt

--------------------------------------------------------------------------------

The following files include code from SIMDe (SIMD Everywhere) project.

./cpp/third_party/simde-0.8.4-rc3/

Copyright: (c) 2017 Evan Nemerson <evan@nemerson.com>
Project page: https://github.com/simd-everywhere/simde
License: https://github.com/simd-everywhere/simde/blob/master/COPYING (MIT)

--------------------------------------------------------------------------------


================================================
FILE: NOTICE
================================================
Apache TsFile
Copyright 2023-2025 The Apache Software Foundation.

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

============================================================================

TsFile project uses 2 Chinese Patents:
* 201711384490X
* 201711319331.1

According to the Apache 2.0 License. The owner of the patents, Tsinghua University,
grant the users the right to the use of patent under the requirement of Apache 2.0 License.

============================================================================

Apache Commons Collections
Copyright 2001-2019 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).


================================================
FILE: README-zh.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

[English](./README.md) | [中文](./README-zh.md)
# TsFile Document
<p align="center">
  <img src="https://www.apache.org/logos/originals/tsfile.svg"
       alt="TsFile Logo"
       width="400"/>
</p>

[![codecov](https://codecov.io/github/apache/tsfile/graph/badge.svg?token=0Y8MVAB3K1)](https://codecov.io/github/apache/tsfile)
[![Maven Central](https://img.shields.io/maven-central/v/org.apache.tsfile/tsfile-parent.svg)](https://central.sonatype.com/artifact/org.apache.tsfile/tsfile-parent)
[![PyPI](https://img.shields.io/pypi/v/tsfile.svg)](https://pypi.org/project/tsfile)

## 简介

TsFile是一种为时间序列数据设计的列式存储文件格式,它支持高效压缩、高读写吞吐量,并且兼容多种框架,如Spark和Flink。TsFile很容易集成到物联网大数据处理框架中。

时序数据即时间序列数据,是指带时间标签(按照时间的顺序变化,即时间序列化)的数据,其来源多元、数据量庞大,可广泛应用于物联网、智能制造、金融分析等领域。在数据驱动的当下,时序数据的重要性不言而喻。

尽管时序数据如此普遍且重要,但长期以来,时序数据的管理都缺乏标准化的文件格式。TsFile 的出现为用户管理时序数据提供了统一的文件格式。

[点击查看更多](https://www.timecho.com/archives/tian-bu-shi-chang-kong-bai-apache-tsfile-ru-he-chong-xin-ding-yi-shi-xu-shu-ju-guan-li)


## TsFile 特性

TsFile 通过自研实现了时序数据高效率管理、高灵活传输,并支持多类软件深度集成。其特性包括:

- 时序模型:专门为物联网设计的数据模型,每个时间序列与特定设备相关联,所有设备通过分层结构相互连接;

- 跨语言独立使用:可以使用多种语言的 SDK 直接读写 TsFile,使得一些轻量级的数据读写场景成为可能。

- 高效写入和压缩:为时间序列量身定制的列式存储格式,将数据按设备进行组织,并保证每个序列的数据连续存储,最小化存储空间。相比 CSV,压缩比可提升 90% 以上。

- 高查询性能:通过设备、物理量和时间维度索引,TsFile 实现了基于特定时间范围的时序数据快速过滤和查询。相比通用文件格式,查询吞吐可提升 2-10 倍。

- 开放集成:TsFile 是时序数据库 IoTDB 的底层存储文件格式,可与 IoTDB 形成可插拔的存算分离架构。TsFile 支持与 Spark、Flink 等大数据软件建立无缝生态集成,从而确保跨不同数据处理环境的兼容性和互操作性,实现时序数据跨生态深度分析。

## TsFile 基本概念

TsFile 可管理多个设备的时序数据。每个设备可具有不同的物理量。

每个设备的每个物理量对应一条时间序列。

TsFile 数据模型(Schema)定义了所有设备物理量的集合,如下表所示(m1 ~ m5)

| Time | deviceId | m1 | m2 | m3 | m4 | m5 |
|------|----------|----|----|----|----|----|
| 1    | device1  | 1  | 2  | 3  |    |    |
| 2    | device1  | 1  | 2  | 3  |    |    |
| 3    | device2  | 1  |    | 3  | 4  | 5  |
| 4    | device2  | 1  |    | 3  | 4  | 5  |
| 5    | device3  | 1  | 2  | 3  | 4  | 5  |

其中 Time 和 deviceId 为内置字段,无需定义,可直接写入。

## TsFile 设计原理

### 文件结构

下为 Apache TsFile 的文件结构。

- Page:一段连续的时序数据,存储的基本单元,按时间升序排序,时间戳和值各有单独的列进行存储。

- Chunk:由同一序列的多个连续的 Page 组成,一个文件同一个序列可以存储多个 Chunk。

- ChunkGroup:由一个设备的一至多个 Chunk 组成,多个 Chunk 可共享一列时间存储(多值模型)。

- Index:TsFile 末尾的元数据文件包含序列内部时间维度的索引和序列间的索引信息。

![TsFile 文件结构](https://alioss.timecho.com/docs/img/tsfile.jpeg)

### 编码和压缩

TsFile 通过采用二阶差分编码、游程编码(RLE)、位压缩和 Snappy 等先进的编码和压缩技术,优化时序数据的存储和访问,并支持对时间戳列和数据值列进行单独编码,以实现更好的数据处理效能。

其独特之处在于编码算法专为时序数据特性设计,聚焦在时间属性和数据之间的相关性。

TsFile、CSV 和 Parquet 三种文件格式的比较

| 维度    | TsFile | CSV | Parquet |
|---------|--------|-----|---------|
| 数据模型 | 物联网时序  | 无   | 嵌套     |
| 写入模式 | 批, 行     | 行   | 行       |
| 压缩    | 有         | 无   | 有       |
| 读取模式 | 查询, 扫描  | 扫描 | 查询     |
| 序列索引 | 有         | 无   | 无       |
| 时间索引 | 有         | 无   | 无       |

基于对时序数据应用需求的深刻理解,TsFile 有助于实现时序数据高压缩比和实时访问速度,并为企业进一步构建高效、可扩展、灵活的数据分析平台提供底层文件技术支撑。

| 数据类型    | 推荐编码       | 推荐压缩算法 |
|---------|------------|--------|
| INT32   | TS_2DIFF   | LZ4    |
| INT64   | TS_2DIFF   | LZ4    |
| FLOAT   | GORILLA    | LZ4    |
| DOUBLE  | GORILLA    | LZ4    |
| BOOLEAN | RLE        | LZ4    |
| TEXT    | DICTIONARY | LZ4    |

更多类型的编码和压缩方式参见[文档](https://iotdb.apache.org/zh/UserGuide/latest/Basic-Concept/Encoding-and-Compression.html)

## 开发和使用 TsFile

[Java](./java/tsfile/README-zh.md)

[C++](./cpp/README-zh.md)

[Python](./python/README-zh.md)


================================================
FILE: README.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

[English](./README.md) | [中文](./README-zh.md)
# TsFile Document

<p align="center">
  <img src="https://www.apache.org/logos/originals/tsfile.svg"
       alt="TsFile Logo"
       width="400"/>
</p>

[![codecov](https://codecov.io/github/apache/tsfile/graph/badge.svg?token=0Y8MVAB3K1)](https://codecov.io/github/apache/tsfile)
[![Maven Central](https://img.shields.io/maven-central/v/org.apache.tsfile/tsfile-parent.svg)](https://central.sonatype.com/artifact/org.apache.tsfile/tsfile-parent)
[![PyPI](https://img.shields.io/pypi/v/tsfile.svg)](https://pypi.org/project/tsfile)

## Introduction

TsFile is a columnar storage file format designed for time series data, which supports efficient compression, high throughput of read and write, and compatibility with various frameworks, such as Spark and Flink. It is easy to integrate TsFile into IoT big data processing frameworks.

Time series data is becoming increasingly important in a wide range of applications, including IoT, intelligent control, finance, log analysis, and monitoring systems. 

TsFile is the first existing standard file format for time series data. Despite the widespread presence and significance of temporal data, there has been a longstanding absence of standardized file formats for its management. The advent of TsFile introduces a unified file format to facilitate users in managing temporal data.

[Click for More Information](https://www.timecho-global.com/archives/apache-tsfile-time-series-data-storage-redefined)

## TsFile Features

TsFile offers several distinctive features and benefits:

- Multi Language Independent Use: Multiple language SDK can be used to directly read and write TsFile, making it possible for some lightweight data reading and writing scenarios.

- Efficient Writing and Compression: A column storage format tailored for time series, organizing data by device and ensuring continuous storage of data for each sequence, minimizing storage space. Compared to CSV, the compression ratio can be increased by more than 90%.

- High Query Performance: By indexing devices, measurement, and time dimensions, TsFile implements fast filtering and querying of temporal data based on specific time ranges. Compared to general file formats, query throughput can be increased by 2-10 times.

- Open Integration: TsFile is the underlying storage file format of the temporal database IoTDB, which can form a pluggable storage computing separation architecture with IoTDB. TsFile supports compatibility with Spark Flink and other big data software establish seamless ecosystem integration to ensure compatibility and interoperability across different data processing environments, and achieve deep analysis of temporal data across ecosystems.

## TsFile Basic Concepts

TsFile can manage the time series data of multiple devices. Each device can have different measurement.

Each measurement of each device corresponds to a time series.

The TsFile Scheme defines a set of measurement for all devices, as shown in the table below (m1~m5)

| Time | deviceId | m1 | m2 | m3 | m4 | m5 |
|------|----------|----|----|----|----|----|
| 1    | device1  | 1  | 2  | 3  |    |    |
| 2    | device1  | 1  | 2  | 3  |    |    |
| 3    | device2  | 1  |    | 3  | 4  | 5  |
| 4    | device2  | 1  |    | 3  | 4  | 5  |
| 5    | device3  | 1  | 2  | 3  | 4  | 5  |

Among them, Time and deviceId are built-in fields that do not need to be defined and can be written directly.

## TsFile Design

### File Structure

TsFile adopts a columnar storage design, similar to other file formats, primarily to optimize time-series data's storage efficiency and query performance. This design aligns with the nature of time series data, which often involves large volumes of similar data types recorded over time. However, TsFile was developed particularly with a structure of page, chunk, chunk group, and index:

- Page: The basic unit for storing time series data, sorted by time in ascending order with separate columns for timestamps and values.

- Chunk: Comprising metadata headers and several pages, each chunk belongs to one time series, with variable sizes allowing for different compression and encoding methods.

- Chunk Group: Multiple chunks within a chunk group belong to one or multiple series of a device written in the same period, facilitating efficient query processing.

- Index: The file metadata at the end of TsFile contains a chunk-level index and file-level statistics for efficient data access.

![TsFile Architecture](https://alioss.timecho.com/docs/img/tsfile.jpeg)

## Encoding and Compression

TsFile employs advanced encoding and compression techniques to optimize storage and access for time series data. It uses methods like run-length encoding (RLE), bit-packing, and Snappy for efficient compression, allowing separate encoding of timestamp and value columns for better data processing. Its unique encoding algorithms are designed specifically for the characteristics of time series data in IoT scenarios, focusing on regular time intervals and the correlation among series. 

Its uniqueness lies in the encoding algorithm designed specifically for time series data characteristics, focusing on the correlation between time attributes and data.

The table below compares 3 file formats in different dimensions.

TsFile, CSV and Parquet in Comparison

| Dimension       | TsFile       | CSV   | Parquet |
|-----------------|--------------|-------|---------|
| Data Model      | IoT          | Plain | Nested  |
| Write Mode      | Tablet, Line | Line  | Line    |
| Compression     | Yes          | No    | Yes     |
| Read Mode       | Query, Scan  | Scan  | Query   |
| Index on Series | Yes          | No    | No      |
| Index on Time   | Yes          | No    | No      |

Its development facilitates efficient data encoding, compression, and access, reflecting a deep understanding of industry needs, pioneering a path toward efficient, scalable, and flexible data analytics platforms.

| Data Type    | Recommended Encoding       | Recommended Compression |
|---------|------------|--------|
| INT32   | TS_2DIFF   | LZ4    |
| INT64   | TS_2DIFF   | LZ4    |
| FLOAT   | GORILLA    | LZ4    |
| DOUBLE  | GORILLA    | LZ4    |
| BOOLEAN | RLE        | LZ4    |
| TEXT    | DICTIONARY | LZ4    |

more see [Docs](https://iotdb.apache.org/UserGuide/latest/Basic-Concept/Encoding-and-Compression.html)

## Build and Use TsFile

[Java](./java/tsfile/README.md)

[C++](./cpp/README.md)

[Python](./python/README.md)


================================================
FILE: RELEASE_NOTES.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
# Apache TsFile 2.3.0

## New Features

- Added C++ interfaces to obtain the start timestamp, end timestamp and record count of each series-level data in TSFile files.
- Added a C++ interface to sequentially read processed data from corrupted TSFile files.
- Added row number-based data query capability for TSFile, supporting pagination with limit and offset.
- Added the capability to read massive TSFile files in DataFrame format.
- Extended TSFile DataFrame reading to support traversal and reading of nested directories.
- Optimized the performance of the Python TSFile interface: TsFile-Cpp returns Arrow-compatible query results, enabling TsFile-Python to directly provide Arrow-backed DataFrame.

## Bugs

- Implemented synchronized sealing of time pages and value pages under the aligned model in C++ interfaces to ensure consistent behavior with the Java side.
- Fixed null value handling defects in the write and read paths of TSFile.

# Apache TsFile 2.2.1

## New Feature

- [Java] Support modifying schema during the write process.
- [Java] Support memory usage estimation for Tablet and related classes.
- [Java] Support I/O size recording during file reading.
- [Java] Support encryption configuration for read and write operations.
- [Python] Support converting DataFrame to TsFile.
- [Python] Support DATE, TIMESTAMP and other new data types.

## Improvement

- [Java] Optimize memory usage calculation for aligned data.
- [Java] Support JDK-25.
- [C++] Upgrade zlib to latest version.

## Bugfix

- [Java] Fixed incorrect query results when reading DATE type in table model.
- [Java] Fixed data corruption when rewriting chunks with time deletion.
- [Java] Fixed chunk metadata loss when deserializing from temporary files.
- [C++] Fixed inability to read files exceeding 2GB.
- [C++] Fixed aligned chunk reader producing wrong output.
- [Python] Fixed DataFrame validation and column name handling issues.

# Apache TsFile 2.2.0

## New Feature

- TsFile-Python fully supports TEXT and STRING data types.
- The Python interface supports the to_dataframe method.
- C++ TsFile supports encoding formats such as RLE.
- Both C++ TsFile and Java TsFile table models support tag filtering.
- C++ TsFile supports writing data of the TEXT type.
- Added the CAMEL encoding method.
- ...

## Improvement/Bugfix

- Fixed the issue where the CppTsFile write and query interfaces had various exceptions when handling null values.
- Fixed the issue where Cpp TsFile failed to write data when TAG and FIELD columns were all empty (only timestamps existed with no actual data).
- Fixed the issue where column names were all converted to lowercase when constructing a Tablet in Cpp TsFile, resulting in the failure to add values to Tablets constructed with uppercase column names.
- Fixed the issue where queries would throw errors when the values of TEXT-type columns in the CPP TsFile table model were partially empty.
- Fixed security vulnerabilities CVE-2025-12183, CVE-2025-66566 and CVE-2025-11226.
- ...

# Apache TsFile 2.1.1

## Improvement/Bugfix
* [JAVA] AbstractAlignedTimeSeriesMetadata.typeMatch always return true in #538
* [JAVA] Ignore the null value passed in the Tablet.addValue method in #540
* [JAVA] Implement extract time filters in #539
* [JAVA] Init all series writer for AlignedChunkGroupWriter in #545
* [JAVA] Check max tsfile version in #548
* [JAVA] Include common classes in tsfile.jar to fix #501 in #510
* [JAVA] Implement extract value filters in #554
* [JAVA] Fix wrong Private-Package declaration (related to #551) in #556
* [JAVA] Avoid repeated calculation of shallow size of map in #559
* [JAVA] Refactor UnknownType to extend AbstractType in #561
* [JAVA] Add Tablet.append in #562

# Apache TsFile 2.1.0

## New Feature
- [Java] Support setting default compression by datatype(#523).
- [Java] Support using environment variables to generate main encrypt key(#512).
- [Java] Support estimating ram usage of measurement schema(#508).
- [Java] Add TsFileLastReader to retrieve the last points in a TsFile(#498).
- [Cpp/C/Python] Support TsFile Table reader and writer.

## Improvement/Bugfix
- [Java] Fix memory calculation of BinaryColumnBuilder(#530).
- [Java] Resolved case sensitivity issue when reading column names(#518).
- [Java] Fix npe when closing the last reader that has not been used(#513).
- [Java] Fix float RLBE encoding loss of precision(#484).

# Apache TsFile 2.0.3

## Improvement/Bugfix
* move ColumnCategory to an outer class in (#461)
* restrict encrypt key length to 16 in (#467)
* Cache hash code of StringArrayDeviceID in (#453)
* Skip time column when generating TableSchema in (#414)
* Check blank column name or table name in (#471)
* Optimizations regarding chunk metadata sort & timeseries metadata serialization in (#470)
* Remove redundant conversion in TableResultSet in (#473)
* Add switch to disable native lz4 in (#480)

# Apache TsFile 2.0.2

## Improvement/Bugfix
- Correct the retained size calculation for BinaryColumn and BinaryColumnBuilder
- Don't print exception log when thread is interrupted (#386)
- Fix float encoder overflow when float value itself over int range (#412)
- Fix date string parse error (#413)
- compaction adapting new type when table alter column type (#415)
- primitive type compatible (#437)
- Fixed the empty string ser/de bug & null string[] array calculation bug
- add getter for encryptParam (#447)


# Apache TsFile 2.0.1

## Improvement/Bugfix
- Modify tablet usage (#358)
- Add column builder compatibility (#367)
- add cache table schema map option (#369)
- fix getVisibleMetadataList
- TimeColumn.reset() throws UnsupportedOperationException (#379)
- Add statistic compatibility (#382)

# Apache TsFile 2.0.0

## New Feature
- TsFile V4 for Table Model by @jt2594838 in #196
- Support dictionary encoding for STRING data type. by @jt2594838 in #238
- Modify default timestamp encoding by @shuwenwei in #309
- Tsfile java interfaces v4 by @shuwenwei in #307
- Convert column name and table name to lower case by @shuwenwei in #322
- Add type cast interfaces in TsDataType by @jt2594838 in #332

## Improvement/Bugfix
- Fix allSatisfy bug in InFilter by @JackieTien97 in #219
- Fix bug in the conversion of int types to timestamp. by @FearfulTomcat27 in #223
- Fix getValue method in Tablet doesn't support Date and Timestamp type by @HTHou in #243
- Fix error when write aligned tablet with null date by @HTHou in #250
- Fix tablet isNull method not correct by @HTHou in #255
- Fixed the issue that the time of the first data item written to TSFile by measurement cannot be a negative number by @luoluoyuyu in #297
- Fix float encoder overflow by @HTHou in #342

# Apache TsFile 1.1.3

* perf: Optimize aligned object memory size calculation
* feat: add markRange / unmarkRange / merge for high-performance bit manipulation
* Modify the TsFileSequenceReaderTimeseriesMetadataIterator next function to return a LinkedHashMap
* fix GroupByMonthFilter.getTimeRanges
* Fix bug in PaginationController
* change config not found log to debug
* Init all series writer for AlignedChunkGroupWriter
* Added memory calculation for tablet
* Dont print exception log when thread is interrupted
* Bump lz4-java version to 1.10.1

# Apache TsFile 1.1.2

## Improvement/Bugfix

* Fix the bug in parse date to int when year out of range by @HTHou in #500
* Add TsFileLastReader for retrieving last points in a TsFile by @jt2594838 in #506
* Added accountable function to measurementSchema by @Caideyipi in #509
* Correct the retained size calculation for BinaryColumn and BinaryColumnBuilder by @JackieTien97 in #514
* add switch to disable native lz4 (#480) by @jt2594838 in #515
* Correct the memroy calculation of BinaryColumnBuilder by @JackieTien97 in #530
* Fetch max tsblock line number each time from TSFileConfig by @JackieTien97 in #535
* Support set default compression by data type & Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.18.0 by @jt2594838 in #547
* Avoid calculating shallow size of map by @shuwenwei in #566
* Add methods for RamUsageEstimator by @shuwenwei in #570

# Apache TsFile 1.1.1

## Improvement/Bugfix
* Fixed the issue that the time of the first data item written to TSFile by measurement cannot be a negative number (#297)
* Add LongConsumer ioSizeRecorder in TsFileSequenceReader for IoTDB scan (#301)
* Add readItimeseriesMetadata method (#312)
* Tablet.serialize() may throw an exception due to null values in the Date column (#330)
* Add FlushChunkMetadataListener (#328)
* Add final for readData methods (#347)
* Bump logback to 1.3.15 (#362)
* Fix example compile issue (#400)
* Fixed the empty string ser/de bug & null string[] array calculation bug (#449)

# Apache TsFile 1.1.0

## New Feature
- Support new data types: STRING, BLOB, TIMESTAMP, DATE by @Cpaulyz in #76
- Add an equivalent .getLongs() method to .getTimes() in TimeColumn. by @Sh-Zh-7 in #61
- Return all columns in TsBlock class by @Sh-Zh-7 in #80

## Improvement/Bugfix

- Fix value filter allSatisfy bug by @liuminghui233 in #41
- Fix error log caused by ClosedByInterruptException by @shuwenwei in #47
- Fix the mistaken argument in LZ4 Uncompressor by @jt2594838 in #57
- Remove duplicate lookups in dictionary encoder by @MrQuansy in #54
- Optimize SeriesScanUtil by memorizing the order time and satisfied information for each Seq and Unseq Resource by @JackieTien97 in #58
- Fix TsBlockBuilder bug in AlignedPageReader and PageReader. by @JackieTien97 in #77
- Fix ZstdUncompressor by @lancelly in #132
- fix RLBE Encoding for float and double by @gzh23 in #143
- Fix uncompress page data by @shuwenwei in #161
- Fix encoder and decoder construction of RLBE by @jt2594838 in #162
- Fix aligned TimeValuePair npe by @shuwenwei in #173
- Fix StringStatistics data type by @shuwenwei in #177
- Fix bug in the conversion of int types to timestamp. by @FearfulTomcat27 in #224
- Fix error when write aligned tablet with null date by @HTHou in #251

# Apache TsFile 1.0.0

## New Features

- Support registering devices
- Support registering measurements
- Support adding additional measurements
- Support writing timeseries data without pre-defined schema
- Support writing timeseries data with pre-defined schema
- Support writing with tsRecord
- Support writing with Tablet
- Support writing data into a closed TsFile
- Support query timeseries data without any filter
- Support query timeseries data with time filter
- Support query timeseries data with value filter
- Support BOOLEAN, INT32, INT64, FLOAT, DOUBLE, TEXT data types
- Support PLAIN, DICTIONARY, RLE, TS_2DIFF, GORILLA, ZIGZAG, CHIMP, SPRINTZ, RLBE encoding algorithm
- Support UNCOMPRESSED, SNAPPY, GZIP, LZ4, ZSTD, LZMA2 compression algorithm


================================================
FILE: checkstyle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<!--
    Checkstyle configuration that checks the Google coding conventions from Google Java Style
    that can be found at https://google.github.io/styleguide/javaguide.html.
    Checkstyle is very configurable. Be sure to read the documentation at
    http://checkstyle.sf.net (or in your downloaded distribution).
    To completely disable a check, just comment it out or delete it from the file.
    Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
 -->
<module name="Checker">
    <property name="charset" value="UTF-8"/>
    <property name="severity" value="warning"/>
    <property name="fileExtensions" value="java, properties, xml"/>
    <!-- Checks for whitespace                               -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="BeforeExecutionExclusionFileFilter">
        <property name="fileNamePattern" value="target(\\|/).*\.java$"/>
    </module>
    <module name="FileTabCharacter">
        <property name="eachLine" value="true"/>
    </module>
    <module name="LineLength">
        <property name="max" value="100"/>
        <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
    </module>
    <module name="SuppressWarningsFilter"/>
    <module name="TreeWalker">
        <module name="SuppressWarningsHolder"/>
        <!--ERROR severity rules, each Java file should obey this -->
        <module name="AvoidStarImport">
            <property name="severity" value="error"/>
        </module>
        <module name="RegexpSinglelineJava">
            <property name="id" value="unsafeThreadSchedule"/>
            <property name="format" value="schedule(AtFixedRate|WithFixedDelay)\("/>
            <property name="severity" value="error"/>
            <property name="ignoreComments" value="true"/>
            <property name="message" value="Using ScheduledExecutorService::schedule(AtFixedRate|WithFixedDelay) directly is unsafe, please use ScheduledExecutorUtil::(unsafely|safely)Schedule(AtFixedRate|WithFixedDelay) instead."/>
        </module>
        <module name="RegexpSinglelineJava">
            <property name="id" value="invalidPlanNodeTypeUsage"/>
            <property name="format" value="PlanNodeType\.[a-zA-Z_]*\.ordinal\("/>
            <property name="severity" value="error"/>
            <property name="ignoreComments" value="true"/>
            <property name="message" value="Please use PlanNodeType::getNodeType instead."/>
        </module>
        <!--WARNING severity rules, which may be promoted to error level-->
        <module name="OuterTypeFilename"/>
        <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format" value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message" value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
        </module>
        <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <property name="allowByTailComment" value="true"/>
            <property name="allowNonPrintableEscapes" value="true"/>
        </module>
        <module name="OneTopLevelClass"/>
        <module name="NoLineWrap"/>
        <module name="EmptyBlock">
            <property name="option" value="TEXT"/>
            <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
        </module>
        <module name="NeedBraces"/>
        <module name="LeftCurly"/>
        <module name="RightCurly">
            <property name="id" value="RightCurlySame"/>
            <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,                     LITERAL_DO"/>
        </module>
        <module name="RightCurly">
            <property name="id" value="RightCurlyAlone"/>
            <property name="option" value="alone"/>
            <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,                     INSTANCE_INIT"/>
        </module>
        <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="allowEmptyTypes" value="true"/>
            <property name="allowEmptyLoops" value="true"/>
            <message key="ws.notFollowed" value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
            <message key="ws.notPreceded" value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="OneStatementPerLine"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="ArrayTypeStyle"/>
        <module name="MissingSwitchDefault"/>
        <module name="FallThrough"/>
        <module name="UpperEll"/>
        <module name="ModifierOrder"/>
        <module name="EmptyLineSeparator">
            <property name="allowNoEmptyLineBetweenFields" value="true"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapDot"/>
            <property name="tokens" value="DOT"/>
            <property name="option" value="nl"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapComma"/>
            <property name="tokens" value="COMMA"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
            <property name="id" value="SeparatorWrapEllipsis"/>
            <property name="tokens" value="ELLIPSIS"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
            <property name="id" value="SeparatorWrapArrayDeclarator"/>
            <property name="tokens" value="ARRAY_DECLARATOR"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapMethodRef"/>
            <property name="tokens" value="METHOD_REF"/>
            <property name="option" value="nl"/>
        </module>
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
            <message key="name.invalidPattern" value="Package name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="TypeName">
            <message key="name.invalidPattern" value="Type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MemberName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern" value="Member name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern" value="Parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="LambdaParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern" value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="CatchParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern" value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="LocalVariableName">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern" value="Local variable name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ClassTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern" value="Class type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MethodTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern" value="Method type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="InterfaceTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern" value="Interface type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="NoFinalizer"/>
        <module name="GenericWhitespace">
            <message key="ws.followed" value="GenericWhitespace ''{0}'' is followed by whitespace."/>
            <message key="ws.preceded" value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
            <message key="ws.illegalFollow" value="GenericWhitespace ''{0}'' should followed by whitespace."/>
            <message key="ws.notPreceded" value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="Indentation">
            <property name="basicOffset" value="2"/>
            <property name="braceAdjustment" value="0"/>
            <property name="caseIndent" value="2"/>
            <property name="throwsIndent" value="4"/>
            <property name="lineWrappingIndentation" value="4"/>
            <property name="arrayInitIndent" value="2"/>
        </module>
        <module name="AbbreviationAsWordInName">
            <property name="ignoreFinal" value="false"/>
            <property name="allowedAbbreviationLength" value="1"/>
        </module>
        <module name="OverloadMethodsDeclarationOrder"/>
        <module name="VariableDeclarationUsageDistance"/>
        <module name="MethodParamPad"/>
        <module name="NoWhitespaceBefore">
            <property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
            <property name="allowLineBreaks" value="true"/>
        </module>
        <module name="ParenPad"/>
        <module name="OperatorWrap">
            <property name="option" value="NL"/>
            <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,                     LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
        </module>
        <module name="AnnotationLocation">
            <property name="id" value="AnnotationLocationMostCases"/>
            <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
        </module>
        <module name="AnnotationLocation">
            <property name="id" value="AnnotationLocationVariables"/>
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="allowSamelineMultipleAnnotations" value="true"/>
        </module>
        <module name="NonEmptyAtclauseDescription"/>
        <module name="JavadocTagContinuationIndentation"/>
        <module name="SummaryJavadoc">
            <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
        </module>
        <module name="JavadocParagraph"/>
        <module name="AtclauseOrder">
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
            <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        <module name="JavadocMethod">
            <property name="allowMissingParamTags" value="true"/>
            <property name="validateThrows" value="true"/>
            <property name="allowMissingReturnTag" value="true"/>
            <property name="allowedAnnotations" value="Override, Test"/>
        </module>
        <module name="MethodName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
            <message key="name.invalidPattern" value="Method name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="SingleLineJavadoc">
            <property name="ignoreInlineTags" value="false"/>
        </module>
        <module name="EmptyCatchBlock">
            <property name="exceptionVariableName" value="expected"/>
        </module>
        <module name="CommentsIndentation"/>
    </module>
</module>


================================================
FILE: codecov.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

coverage:
  precision: 2
  round: down
  range: "50...100"

  status:
    project: yes
    patch: no
    changes: no

parsers:
  jacoco:
    partials_as_hits: true #false by default
  gcov:
    branch_detection:
      conditional: yes
      loop: yes
      method: no
      macro: no

ignore:
  - "**/pom.xml"
  - "**/*.md"
  - "**/*.sh"
  - "**/*.cmd"
  - "**/*.bat"
  - "**/*.yml"
  - "*_test.cc"
  - ".mvn"
  - "mvnw"
  - "NOTICE"
  - "NOTICE-binary"
  - "License"
  - "LICENSE-binary"
  - "DISCLAIMER"


================================================
FILE: cpp/.clang-format
================================================
---
Language:        Cpp
# BasedOnStyle:  Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
AlignEscapedNewlines: Left
AlignOperands:   Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
  - __capability
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
  AfterCaseLabel:  false
  AfterClass:      false
  AfterControlStatement: Never
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: true
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     80
CommentPragmas:  '^ IWYU pragma:'
QualifierAlignment: Leave
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DisableFormat:   false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
PackConstructorInitializers: NextLine
BasedOnStyle:    ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
AllowAllConstructorInitializersOnNextLine: true
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
IncludeBlocks:   Regroup
IncludeCategories:
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*\.h>'
    Priority:        1
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '.*'
    Priority:        3
    SortPriority:    0
    CaseSensitive:   false
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentRequires:  false
IndentWidth:     4
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PenaltyIndentedWhitespace: 0
PointerAlignment: Left
PPIndentWidth:   -1
RawStringFormats:
  - Language:        Cpp
    Delimiters:
      - cc
      - CC
      - cpp
      - Cpp
      - CPP
      - 'c++'
      - 'C++'
    CanonicalDelimiter: ''
    BasedOnStyle:    google
  - Language:        TextProto
    Delimiters:
      - pb
      - PB
      - proto
      - PROTO
    EnclosingFunctions:
      - EqualsProto
      - EquivToProto
      - PARSE_PARTIAL_TEXT_PROTO
      - PARSE_TEST_PROTO
      - PARSE_TEXT_PROTO
      - ParseTextOrDie
      - ParseTextProtoOrDie
      - ParseTestProto
      - ParsePartialTestProto
    CanonicalDelimiter: pb
    BasedOnStyle:    google
ReferenceAlignment: Pointer
ReflowComments:  true
RemoveBracesLLVM: false
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes:    CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterForeachMacros: true
  AfterFunctionDefinitionName: false
  AfterFunctionDeclarationName: false
  AfterIfMacros:   true
  AfterOverloadedOperator: false
  BeforeNonEmptyParentheses: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
  Minimum:         1
  Maximum:         -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both
Standard:        Cpp11
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        8
UseCRLF:         false
UseTab:          Never
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
  - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME
...



================================================
FILE: cpp/.gitignore
================================================
build/
.idea/
.cproject
.project
.settings/
.vscode/
cmake-build-debug/


================================================
FILE: cpp/CLAUDE.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# CLAUDE.md — C++ Module

This file provides guidance to Claude Code (claude.ai/code) when working with the C++ module.

## Build Commands

```bash
# Build (Release, default)
bash build.sh

# Build variants
bash build.sh -t=Debug
bash build.sh -t=RelWithDebInfo
bash build.sh -a=ON              # Enable AddressSanitizer
bash build.sh -c=ON              # Enable code coverage

# Disable optional compression libraries
bash build.sh --disable-snappy --disable-lz4 --disable-lzokay --disable-zlib

# Or use CMake directly
mkdir -p build/Release && cd build/Release
cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON
make -j$(nproc)

# Via Maven from repo root
./mvnw clean verify -P with-cpp

# Run all tests
./build/Release/lib/TsFile_Test

# Run specific test suite
./build/Release/lib/TsFile_Test --gtest_filter=SnappyCompressorTest.*
```

## Build Options (CMake)

All `ON` by default unless noted:

| Option | Purpose |
|--------|---------|
| `BUILD_TEST` | Compile tests (GTest 1.12.1, auto-downloaded) |
| `ENABLE_ANTLR4` | ANTLR4 parser runtime |
| `ENABLE_SNAPPY` / `ENABLE_LZ4` / `ENABLE_LZOKAY` / `ENABLE_ZLIB` | Compression libraries |
| `ENABLE_THREADS` | Multi-threaded read/write via pthreads |
| `ENABLE_ASAN` | AddressSanitizer (`OFF` by default) |
| `ENABLE_SIMDE` | SIMD Everywhere (`OFF` by default) |

## Source Structure

```
cpp/src/
├── common/        # Core types: Schema, Tablet, DeviceId, TsBlock, allocators, config
├── compress/      # Compression: Snappy, LZ4, LZOKAY, Zlib (factory pattern)
├── encoding/      # Encoding: Plain, TS2Diff, Gorilla, Dictionary, RLE, Zigzag, SPRINTZ
├── file/          # File I/O: TsFileIOReader/Writer, RestorableTsFileIOWriter
├── reader/        # Read path: TsFileReader, QueryExecutor, filters, result sets
├── writer/        # Write path: TsFileWriter, TsFileTableWriter, ChunkWriter, PageWriter
├── parser/        # ANTLR4 path parser (grammars + generated code)
├── cwrapper/      # C language bindings (used by Python module)
└── utils/         # Utilities: error codes, date handling, fault injection
```

## Architecture Notes

- **C++11** standard, targets CMake 3.11+
- Dual data model: **tree-view** (`TsFileTreeWriter/Reader`) and **table-view** (`TsFileTableWriter`, `TableQueryExecutor`)
- Parallel column encoding in table write path, controlled by `ENABLE_THREADS`
- Third-party libraries are bundled under `third_party/` (ANTLR4, Snappy, LZ4, LZOKAY, Zlib, SIMDe)
- `cwrapper/` provides the C API that the Python module binds to via Cython

## Code Style

- **Formatter**: clang-format (Google style), configured in `.clang-format`

## Testing

- **Framework**: Google Test 1.12.1 (auto-downloaded during build, or supply `third_party/googletest-release-1.12.1.zip`)
- Tests in `cpp/test/`, mirroring `src/` structure
- Test discovery via `gtest_discover_tests()`

## License Header

Every new file must include the Apache License 2.0 header at the top. For C/C++ files, use the `/* */` block comment style. See any existing `.h` or `.cc` file for the exact wording.

## Git Commit

- Do NOT add `Co-Authored-By` trailer to commit messages.


================================================
FILE: cpp/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]
cmake_minimum_required(VERSION 3.11)
project(TsFile_CPP)

if (DEFINED ToolChain)
    include(${CMAKE_SOURCE_DIR}/cmake/ToolChain.cmake)
    message(STATUS "Using ToolChain: ${CMAKE_TOOLCHAIN_FILE}")
else()
    message(STATUS "Not using ToolChain")
endif ()

cmake_policy(SET CMP0079 NEW)
set(TsFile_CPP_VERSION 2.2.1.dev)
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall")

if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused -Wuninitialized -D__STDC_FORMAT_MACROS")
endif ()

message("cmake using: USE_CPP11=${USE_CPP11}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

if (DEFINED ENV{CXX})
    set(CMAKE_CXX_COMPILER $ENV{CXX})
    message("cmake using: CXX=${CMAKE_CXX_COMPILER}")
endif ()

if (DEFINED ENV{CC})
    set(CMAKE_C_COMPILER $ENV{CC})
    message("cmake using: CC=${CMAKE_C_COMPILER}")
endif ()

message("cmake using: DEBUG_SE=${DEBUG_SE}")
if (${DEBUG_SE})
    add_definitions(-DDEBUG_SE=1)
    message("add_definitions -DDEBUG_SE=1")
endif ()

if (${COV_ENABLED})
    add_definitions(-DCOV_ENABLED=1)
    message("add_definitions -DCOV_ENABLED=1")
endif ()

option(ENABLE_MEM_STAT "Enable memory status" ON)

if (ENABLE_MEM_STAT)
    add_definitions(-DENABLE_MEM_STAT)
    message("add_definitions -DENABLE_MEM_STAT")
endif ()


if (NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
endif ()

if (NOT DEFINED CMAKE_BUILD_PARALLEL_LEVEL)
    include(ProcessorCount)
    ProcessorCount(N)
    if (N EQUAL 0)
        set(N 1)
    endif ()
    set(CMAKE_BUILD_PARALLEL_LEVEL ${N} CACHE STRING "Number of parallel build jobs")
    message("CMAKE BUILD PARALLEL LEVEL: ${CMAKE_BUILD_PARALLEL_LEVEL} (auto-detected)")
else ()
    message("CMAKE BUILD PARALLEL LEVEL: ${CMAKE_BUILD_PARALLEL_LEVEL} (from environment)")
endif ()

message("CMAKE BUILD TYPE " ${CMAKE_BUILD_TYPE})
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g")
elseif (CMAKE_BUILD_TYPE STREQUAL "Release")
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g")
elseif (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
    set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -ffunction-sections -fdata-sections -Os")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
endif ()
message("CMAKE DEBUG: CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")

# disable asan by default.
option(ENABLE_ASAN "Enable Address Sanitizer" OFF)

if (NOT WIN32)
    if (ENABLE_ASAN)
        message("Address Sanitizer is enabled.")

        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer")

        if (NOT APPLE)
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libasan")
            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined -static-libasan -static-libubsan")
        else ()
            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined")
        endif ()
    else ()
        message("Address Sanitizer is disabled.")
    endif ()
endif ()

option(BUILD_TEST "Build tests" ON)
message("cmake using: BUILD_TEST=${BUILD_TEST}")

option(ENABLE_ANTLR4 "Enable ANTLR4 runtime" ON)
message("cmake using: ENABLE_ANTLR4=${ENABLE_ANTLR4}")

option(ENABLE_SNAPPY "Enable Google Snappy compression" ON)
message("cmake using: ENABLE_SNAPPY=${ENABLE_SNAPPY}")

if (ENABLE_SNAPPY)
    add_definitions(-DENABLE_SNAPPY)
endif()

option(ENABLE_LZ4 "Enable LZ4 compression" ON)
message("cmake using: ENABLE_LZ4=${ENABLE_LZ4}")

if (ENABLE_LZ4)
    add_definitions(-DENABLE_LZ4)
endif()

option(ENABLE_LZOKAY "Enable LZOKAY compression" ON)
message("cmake using: ENABLE_LZOKAY=${ENABLE_LZOKAY}")

if (ENABLE_LZOKAY)
    add_definitions(-DENABLE_LZOKAY)
endif()

option(ENABLE_ZLIB "Enable Zlib compression" ON)
message("cmake using: ENABLE_ZLIB=${ENABLE_ZLIB}")

if (ENABLE_ZLIB)
    add_definitions(-DENABLE_ZLIB)
    add_definitions(-DENABLE_GZIP)
endif()

option(ENABLE_THREADS "Enable multi-threaded read/write (requires pthreads)" ON)
message("cmake using: ENABLE_THREADS=${ENABLE_THREADS}")

if (ENABLE_THREADS)
    add_definitions(-DENABLE_THREADS)
    find_package(Threads REQUIRED)
    link_libraries(Threads::Threads)
endif()

option(ENABLE_SIMDE "Enable SIMDe (SIMD Everywhere)" OFF)
message("cmake using: ENABLE_SIMDE=${ENABLE_SIMDE}")

if (ENABLE_SIMDE)
    add_definitions(-DENABLE_SIMDE)
endif()

# All libs will be stored here, including libtsfile, compress-encoding lib.
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

# TsFile code will be stored here.
set(PROJECT_SRC_DIR ${PROJECT_SOURCE_DIR}/src)

# All include files will be installed here.
# Use global var so that tests may also use this
set(LIBRARY_INCLUDE_DIR ${PROJECT_BINARY_DIR}/include CACHE STRING "TsFile includes")
set(THIRD_PARTY_INCLUDE ${PROJECT_BINARY_DIR}/third_party)

set(SAVED_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall -std=c++11")
add_subdirectory(third_party)
set(CMAKE_CXX_FLAGS "${SAVED_CXX_FLAGS}")

add_subdirectory(src)
if (BUILD_TEST)
    add_subdirectory(test)
    if (TESTS_ENABLED)
        add_dependencies(TsFile_Test tsfile)
    endif ()
else()
    message("BUILD_TEST is OFF, skipping test directory")
endif ()

add_subdirectory(examples)



================================================
FILE: cpp/README-zh.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# TsFile C++ 文档

<p align="center">
  <img src="https://www.apache.org/logos/originals/tsfile.svg"
       alt="TsFile Logo"
       width="400"/>
</p>

## 简介

本目录包含 TsFile 的 C++ 实现版本。目前,C++ 版本支持 TsFile 的查询与写入功能,包括基于时间过滤的查询。

源代码位于 `./src` 目录。
C/C++ 示例代码位于 `./examples` 目录。
TsFile_cpp 的性能基准测试位于 `./bench_mark` 目录。

此外,在 `./src/cwrapper` 目录中提供了 C 函数封装接口,Python 工具依赖该封装。

---

## 如何贡献

我们使用 `clang-format` 来确保 C++ 代码遵循 `./clang-format` 文件中定义的一致规范(类似于 Google 风格)。

`mvn spotless` 会使用 `clang-format v17.0.6` 来格式化 C++ 代码。在提交代码前,请先确认你环境里的 `clang-format` 版本与其一致,并且已经加入 `PATH`。

`clang-format v17.0.6` 安装方式如下:

- macOS

```bash
brew install llvm@17
ln -sf /opt/homebrew/opt/llvm@17/bin/clang-format /opt/homebrew/bin/clang-format
```

- Windows

```bash
choco install llvm --version 17.0.6 --force
```

安装完成后,可通过以下命令确认版本:

```bash
clang-format --version
```

如需格式化 C++ 代码,可执行:

```bash
mvn spotless:apply -P with-cpp
```

如果你需要临时跳过代码格式化检查,可以添加 `-Dspotless.skip=true`,例如:

```bash
mvn package -P with-cpp clean verify -Dspotless.skip=true
```

欢迎提交任何 Bug 报告。
你可以创建一个以 `[CPP]` 开头的 Issue 来描述问题,例如:
https://github.com/apache/tsfile/issues/94

---

## 构建

### 环境要求

```bash
sudo apt-get update
sudo apt-get install -y cmake make g++ clang-format libuuid-dev
```

构建 tsfile:

```bash
bash build.sh
```

如果你安装了 Maven 工具,也可以运行:

```bash
mvn package -P with-cpp clean verify
```

构建完成后,可在 `./build` 目录下找到生成的共享库文件。

在向 GitHub 提交代码之前,请确保 `mvn` 编译通过。

---

### Windows 下 MinGW 编译问题

如果你在 Windows 下使用 MinGW 编译时遇到错误,可以尝试使用以下我们验证通过的版本:

- GCC 14.2.0(**POSIX** 线程) + LLVM/Clang/LLD/LLDB 18.1.8 + MinGW-w64 12.0.0 UCRT - release 1
- GCC 12.2.0 + LLVM/Clang/LLD/LLDB 16.0.0 + MinGW-w64 10.0.0(UCRT)- release 5
- GCC 12.2.0 + LLVM/Clang/LLD/LLDB 16.0.0 + MinGW-w64 10.0.0(MSVCRT)- release 5
- GCC 11.2.0 + MinGW-w64 10.0.0(MSVCRT)- release 1

---

## 配置交叉编译工具链

修改工具链文件 `cmake/ToolChain.cmake`,定义以下变量:

- `CMAKE_C_COMPILER`:指定 C 编译器路径。
- `CMAKE_CXX_COMPILER`:指定 C++ 编译器路径。
- `CMAKE_FIND_ROOT_PATH`:设置交叉编译环境的根路径(例如交叉编译工具链目录)。

在 `cpp/` 目录下执行以下命令创建构建目录并开始编译:

```bash
mkdir build && cd build
cmake .. -DToolChain=ON
make
```

---

## 并行写入

TsFile C++ 支持基于线程池的列级并行编码,适用于表模型写入路径(`write_table`)。启用后,时间列和所有值列使用预计算的 page 边界并行写入,同时保证各列 page 对齐封盘。

### 编译选项

并行写入通过 `ENABLE_THREADS` CMake 选项控制(默认开启):

```bash
cmake .. -DENABLE_THREADS=ON   # 开启(默认)
cmake .. -DENABLE_THREADS=OFF  # 关闭——编译期剥离所有线程代码
```

### 运行时配置

```cpp
#include "common/global.h"

// 运行时开启或关闭并行写入(单核机器自动禁用)
storage::set_parallel_write_enabled(true);

// 设置工作线程数(必须在创建 TsFileWriter 之前调用)
storage::set_write_thread_count(4);
```

默认情况下,当机器 CPU 核数大于 1 时自动启用并行写入,线程数设为硬件核数(上限 64)。

---

## 使用 TsFile

你可以在 `./examples/cpp_examples` 目录下的 `demo_read.cpp` 和 `demo_write.cpp` 中查看读写数据的示例。

在 `./examples/c_examples` 目录下,还提供了使用 C 风格 API 在 C 环境中读写数据的示例。

在 `./examples` 目录下执行:

```bash
bash build.sh
```

即可在 `./examples/build` 目录下生成可执行文件。


================================================
FILE: cpp/README.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# TsFile C++ Document

<p align="center">
  <img src="https://www.apache.org/logos/originals/tsfile.svg"
       alt="TsFile Logo"
       width="400"/>
</p>

## Introduction


This directory contains the C++ implementation of TsFile. The C++ version currently supports the query and write functions of TsFile, including time filtering queries.

The source code can be found in the `./src` directory. C/C++ examples are located in the `./examples` directory, and a benchmark for TsFile_cpp can be found in the `./bench_mark` directory. Additionally, a C function wrapper is available in the `./src/cwrapper` directory, which the Python tool relies on.

## How to make contributions

We use `clang-format` to ensure that our C++ code adheres to a consistent set of rules defined in `./clang-format`. This is similar to the Google style.

`mvn spotless` uses `clang-format v17.0.6` for C++ code formatting. Please make sure the `clang-format` in your `PATH` matches this version before submitting code.

How to install `clang-format v17.0.6`:

- macOS

```bash
brew install llvm@17
ln -sf /opt/homebrew/opt/llvm@17/bin/clang-format /opt/homebrew/bin/clang-format
```

- Windows

```bash
choco install llvm --version 17.0.6 --force
```

You can verify the installed version with:

```bash
clang-format --version
```

To format the C++ code, run:

```bash
mvn spotless:apply -P with-cpp
```

If you need to skip code formatting temporarily, you can add `-Dspotless.skip=true`, for example:

```bash
mvn package -P with-cpp clean verify -Dspotless.skip=true
```

We welcome any bug reports. You can open an issue with a title starting with [CPP] to describe the bug, like: https://github.com/apache/tsfile/issues/94

## Build

### Requirements

```bash
sudo apt-get update
sudo apt-get install -y cmake make g++ clang-format libuuid-dev
```

To build tsfile, you can run: `bash build.sh`. If you have Maven tools, you can run: `mvn package -P with-cpp clean verify`. Then, you can find the shared object at `./build`.

Before you submit your code to GitHub, please ensure that the `mvn` compilation is correct.

If you compile using MinGW on windows and encounter an error, you can try replacing MinGW with the following version that we have tried without problems:

* GCC 14.2.0 (with **POSIX** threads) + LLVM/Clang/LLD/LLDB 18.1.8 + MinGW-w64 12.0.0 UCRT - release 1
* GCC 12.2.0 + LLVM/Clang/LLD/LLDB 16.0.0 + MinGW-w64 10.0.0 (UCRT) - release 5
* GCC 12.2.0 + LLVM/Clang/LLD/LLDB 16.0.0 + MinGW-w64 10.0.0 (MSVCRT) - release 5
* GCC 11.2.0 + MinGW-w64 10.0.0 (MSVCRT) - release 1

### configure the cross-compilation toolchain

Modify the Toolchain File `cmake/ToolChain.cmake`, define the following variables:

- `CMAKE_C_COMPILER`: Specify the path to the C compiler.
- `CMAKE_CXX_COMPILER`: Specify the path to the C++ compiler.
- `CMAKE_FIND_ROOT_PATH`: Set the root path for the cross-compilation environment (e.g., the directory of the cross-compilation toolchain).

In the `cpp/` directory, run the following commands to create the build directory and start the compilation:
```
mkdir build && cd build
cmake .. -DToolChain=ON
make
```

## Parallel Write

TsFile C++ supports thread pool-based parallel column encoding for the table write path (`write_table`). When enabled, each column (time and value columns) is written in parallel using precomputed page boundaries, while maintaining aligned page sealing across columns.

### Build Options

Parallel write is controlled by the `ENABLE_THREADS` CMake option (ON by default):

```bash
cmake .. -DENABLE_THREADS=ON   # enable (default)
cmake .. -DENABLE_THREADS=OFF  # disable — all thread code is stripped at compile time
```

### Runtime Configuration

```cpp
#include "common/global.h"

// Enable or disable parallel write at runtime (auto-disabled on single-core machines)
storage::set_parallel_write_enabled(true);

// Set the number of worker threads (must be called before creating TsFileWriter)
storage::set_write_thread_count(4);
```

By default, parallel write is enabled when the machine has more than one CPU core, and the thread count is set to the number of hardware cores (capped at 64).

## Use TsFile

You can find examples on how to read and write data in `demo_read.cpp` and `demo_write.cpp` located under `./examples/cpp_examples`. There are also examples under `./examples/c_examples`on how to use a C-style API to read and write data in a C environment. You can run `bash build.sh` under `./examples` to generate an executable output under `./examples/build`.


================================================
FILE: cpp/VersionUpdater.groovy
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Synchronize the version in CMakeLists.txt and the one used in the maven pom.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

def cppProjectFile = new File(project.basedir, "CMakeLists.txt")
def currentMavenVersion = project.version as String
def currentCppVersion = currentMavenVersion
if(currentMavenVersion.contains("-SNAPSHOT")) {
    currentCppVersion = currentMavenVersion.split("-SNAPSHOT")[0] + ".dev"
}
println "Current Project Version in Maven:  " + currentMavenVersion

def match = cppProjectFile.text =~ /set\(TsFile_CPP_VERSION\s+(.+?)\)/
def cppProjectFileVersion = match[0][1]
println "Current Project Version in CMake: " + cppProjectFileVersion

if (cppProjectFileVersion != currentCppVersion) {
    cppProjectFile.text = cppProjectFile.text.replace("set(TsFile_CPP_VERSION " + cppProjectFileVersion + ")", "set(TsFile_CPP_VERSION " + currentCppVersion + ")")
    println "Version in CMakeLists.txt updated from " + cppProjectFileVersion + " to " + currentCppVersion
    // TODO: When releasing, we might need to manually add this file to the release preparation commit.
} else {
    println "Version in CMakeLists.txt is up to date"
}


================================================
FILE: cpp/bench_mark/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]
message("Running in bench_mark directory")
if(DEFINED ENV{CXX})
    set(CMAKE_CXX_COMPILER $ENV{CXX})
endif()

set(CMAKE_CXX_FLAGS "$ENV{CXX_FLAGS} -Wall -Werror")

if (${USE_CPP11})
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  set(CMAKE_CXX_STANDARD 11)
else()
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++03")
endif()

add_subdirectory(bench_mark_src)

================================================
FILE: cpp/bench_mark/bench_mark_src/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]
cmake_minimum_required(VERSION 3.1)
project(libtsfile_bench_mark_project)
message("Running in bench_mark/bench_mark_src directory")
if(DEFINED ENV{CXX})
    set(CMAKE_CXX_COMPILER $ENV{CXX})
endif()

set(SDK_BENCH_MARK_DIR ${PROJECT_SOURCE_DIR}/)
message("PROJECT DIR: ${SDK_BENCH_MARK_DIR}")
set(SDK_INCLUDE_DIR_DEBUG ${SKD_BENCHH_MARK_DIR}../../build/Debug/bin/libtsfile_sdk/include)
set(SDK_INCLUDE_DIR_RELEASE ${SKD_BENCHH_MARK_DIR}../../build/Release/bin/libtsfile_sdk/include)
set(SDK_LIB_DIR_DEBUG ${SKD_BENCHH_MARK_DIR}../../build/Debug/bin/libtsfile_sdk/lib)
set(SDK_LIB_DIR_RELEASE ${SKD_BENCHH_MARK_DIR}../../build/Release/bin/libtsfile_sdk/lib)

if (USE_SDK_DEBUG) 
    SET(SKD_INCLUDE_DIR ${SDK_INCLUDE_DIR_DEBUG})
    SET(SDK_LIB_DIR ${SDK_LIB_DIR_DEBUG})
    SET(CMAKE_CXX_FLAGS "-g -O0")
else()
    SET(SKD_INCLUDE_DIR ${SDK_INCLUDE_DIR_RELEASE})
    SET(SDK_LIB_DIR ${SDK_LIB_DIR_RELEASE})
    SET(CMAKE_CXX_FLAGS "-O3")
endif()

include_directories(${SKD_INCLUDE_DIR})
set(MAKE_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
include_directories(${MAKE_INCLUDE})
message("MAKE_INCLUDE: ${MAKE_INCLUDE}")
message("SDK_INCLUDE_DIR: ${SKD_INCLUDE_DIR}")
message("SDK_LIB_DIR: ${SDK_LIB_DIR}")

link_directories(${SDK_LIB_DIR})
find_library(my_tsfile_lib NAMES tsfile PATHS ${SDK_LIB_DIR} NO_DEFAULT_PATH REQUIRED)
add_executable(bench_mark_src bench_mark.cc)
target_link_libraries(bench_mark_src ${my_tsfile_lib})






================================================
FILE: cpp/bench_mark/bench_mark_src/bench_conf.h
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include <vector>

namespace bench {
int LOOP_NUM = 100000;
int THREAD_NUM = 1;
int TIMESERIES_NUM = 50;
std::vector<int> TYPE_LIST = {0, 0, 1, 0, 1};
}  // namespace bench


================================================
FILE: cpp/bench_mark/bench_mark_src/bench_mark.cc
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
#include <chrono>
#include <cmath>
#include <iostream>
#include <numeric>
#include <string>

#include "bench_conf.h"
#include "common/db_common.h"
#include "common/global.h"
#include "common/path.h"
#include "writer/tsfile_writer.h"

std::vector<int> register_timeseries(storage::TsFileWriter& writer,
                                     int timeseries_num,
                                     std::vector<int> type_list) {
    auto start = std::chrono::high_resolution_clock::now();
    int sum = std::accumulate(type_list.begin(), type_list.end(), 0);
    std::vector<float> ratio_list;
    for (int i = 0; i < type_list.size(); i++) {
        ratio_list.push_back((float)type_list[i] / sum);
    }
    std::vector<int> type_num;
    for (int i = 0; i < common::TSDataType::TEXT - 1; i++) {
        type_num.push_back((int)std::ceil(timeseries_num * ratio_list[i]));
    }
    type_num.push_back(timeseries_num -
                       std::accumulate(type_num.begin(), type_num.end(), 0));
    writer.open("/tmp/tsfile_test.tsfile", O_CREAT | O_RDWR, 0644);
    int ind = 0;
    int ret = 0;
    int type = 0;
    for (auto num : type_num) {
        for (int i = 0; i < num; i++) {
            std::string device_name = "root.db001.dev" + std::to_string(ind);
            std::string measurement_name = "m" + std::to_string(ind);
            ret = writer.register_timeseries(
                device_name, measurement_name, (common::TSDataType)type,
                common::TSEncoding::PLAIN,
                common::CompressionType::UNCOMPRESSED);
            ind++;
        }
        std::cout << "register finished for TsDataType"
                  << common::s_data_type_names[type]
                  << " timeseries num: " << num << std::endl;
        type++;
    }
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed = end - start;
    std::cout << "register " << timeseries_num << "timeseries in file"
              << "./test_data/tsfile_test.tsfile" << std::endl;
    std::cout << "register timeseries cost time: " << elapsed.count() << "s"
              << std::endl;
    return type_num;
}

void test_writer_benchmark(storage::TsFileWriter& writer, int loop_num,
                           std::vector<int> type_num) {
    std::cout << "start writing data" << std::endl;
    auto start = std::chrono::high_resolution_clock::now();
    int type = 0;
    for (int i = 0; i < loop_num; i++) {
        int ind = 0;
        for (auto num : type_num) {
            for (int j = 0; j < num; j++) {
                std::string device_name =
                    "root.db001.dev" + std::to_string(ind);
                std::string measurement_name = "m" + std::to_string(ind);
                long long currentTimeStamp = i;
                storage::TsRecord record(currentTimeStamp, device_name, 1);
                switch (type) {
                    case common::INT32: {
                        storage::DataPoint point(measurement_name, 10000 + i);
                        record.points_.push_back(point);
                        break;
                    }
                    case common::INT64: {
                        storage::DataPoint point(measurement_name,
                                                 int64_t(10000 + i));
                        record.points_.push_back(point);
                        break;
                    }
                    case common::BOOLEAN: {
                        storage::DataPoint point(measurement_name, i / 2 == 0);
                        record.points_.push_back(point);
                        break;
                    }
                    case common::FLOAT: {
                        storage::DataPoint point(measurement_name, (float)i);
                        record.points_.push_back(point);
                        break;
                    }
                    case common::DOUBLE: {
                        storage::DataPoint point(measurement_name, (double)i);
                        record.points_.push_back(point);
                        break;
                    }
                }
                int ret = writer.write_record(record);
                ASSERT(ret == 0);
                ind++;
            }
            type++;
        }
    }

    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed = end - start;
    int timeseries_num = std::accumulate(type_num.begin(), type_num.end(), 0);
    std::cout << "writer loop: " << loop_num
              << " timeseries num: " << timeseries_num << " records in file"
              << "./test_data/tsfile_test.tsfile" << std::endl;
    std::cout << "total num of points: " << loop_num * timeseries_num
              << std::endl;
    std::cout << "writer data cost time: " << elapsed.count() << "s"
              << std::endl;
    std::cout << "writer data speed:"
              << loop_num * timeseries_num / elapsed.count() << " points/s"
              << std::endl;
    writer.flush();
    writer.close();
    auto end_flush = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed_flush = end_flush - end;
    std::cout << "flush data cost time: " << elapsed_flush.count() << "s"
              << std::endl;
}

int main() {
    std::cout << "LibTsFile benchmark" << std::endl;
    std::cout << "LOOP_NUM:" << bench::LOOP_NUM << std::endl;
    std::cout << "THREAD_NUM:" << bench::THREAD_NUM << std::endl;
    std::cout << "TIMESERIES_NUM:" << bench::TIMESERIES_NUM << std::endl;
    std::cout << "TYPE_LIST: " << bench::TYPE_LIST[0] << ":"
              << bench::TYPE_LIST[1] << ":" << bench::TYPE_LIST[2] << ":"
              << bench::TYPE_LIST[3] << ":" << bench::TYPE_LIST[4] << ":"
              << bench::TYPE_LIST[5] << std::endl;
    std::cout << "init tsfile config value" << std::endl;
    common::init_config_value();
    storage::TsFileWriter writer;
    auto type_num =
        register_timeseries(writer, bench::TIMESERIES_NUM, bench::TYPE_LIST);
    test_writer_benchmark(writer, bench::LOOP_NUM, type_num);
    return 0;
}


================================================
FILE: cpp/bench_mark/bench_mark_src/bench_mark.h
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */


================================================
FILE: cpp/bench_mark/build.sh
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

build_type=Debug
env_for_cyber=0
use_cpp11=1

if [[ ${env_for_cyber} -eq 1 ]]
then
  export PATH=$PATH:~/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin
  export CROSS_COMPILE=arm-linux-gnueabi-
  export ARCH=arm
  export CC=${CROSS_COMPILE}gcc
  export CXX=${CROSS_COMPILE}g++
  echo "set up gcc for cyber"
fi


if [ ${build_type} = "Debug" ]
then
  mkdir -p build/Debug
  cd build/Debug
  use_sdk_debug=1
else
  mkdir -p build/Release
  cd build/Release
  use_sdk_debug=0
fi

echo "use_sdk_debug=${use_sdk_debug}"
cmake ../../  \
  -DUSE_SDK_DEBUG=$use_sdk_debug \
  -DUSE_CPP11=$use_cpp11
make


================================================
FILE: cpp/build.sh
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

# build_type=MinSizeRel
build_type=Release
build_test=0
build_bench=0
use_cpp11=1
enable_cov=0
debug_se=0
run_cov_only=0
enable_antlr4=ON

enable_snappy=ON
enable_lz4=ON
enable_lzokay=ON
enable_zlib=ON

shell_dir=$(cd "$(dirname "$0")";pwd)

# 添加get_key_value函数
get_key_value() {
    echo "${1#*=}"
}

function print_config()
{
  echo "build_type=$build_type"
  echo "build_test=$build_test"
  echo "use_cpp11=$use_cpp11"
  echo "enable_cov=$enable_cov"
  echo "enable_asan=$enable_asan"
  echo "enable_antlr4=$enable_antlr4"
  echo "enable_snappy=$enable_snappy"
  echo "enable_lz4=$enable_lz4"
  echo "enable_lzokay=$enable_lzokay"
  echo "enable_zlib=$enable_zlib"
}

function run_test_for_cov()
{
  # sh ${shell_dir}/scripts/regression_unittest.sh
  sh ${shell_dir}/test/libtsfile_test/run_sdk_tests.sh
}

parse_options()
{
  while test $# -gt 0
  do
    case "$1" in
    clean)
      do_clean=1;;
    run_cov)
      run_cov_only=1;;
    -t=*)
      build_type=$(get_key_value "$1");;
    -t)
      shift
      build_type=$(get_key_value "$1");;
    -a=*)
      enable_asan=$(get_key_value "$1");;
    -a)
      shift
      enable_asan=$(get_key_value "$1");;
    -c=*)
      enable_cov=$(get_key_value "$1");;
    -c)
      shift
      enable_cov=$(get_key_value "$1");;
    --enable-antlr4=*)
      enable_antlr4=$(get_key_value "$1");;
    --enable-snappy=*)
      enable_snappy=$(get_key_value "$1");;
    --enable-lz4=*)
      enable_lz4=$(get_key_value "$1");;
    --enable-lzokay=*)
      enable_lzokay=$(get_key_value "$1");;
    --enable-zlib=*)
      enable_zlib=$(get_key_value "$1");;
    --disable-antlr4)
      enable_antlr4=OFF;;
    --disable-snappy)
      enable_snappy=OFF;;
    --disable-lz4)
      enable_lz4=OFF;;
    --disable-lzokay)
      enable_lzokay=OFF;;
    --disable-zlib)
      enable_zlib=OFF;;
    #-h | --help)
    #  usage
    #  exit 0;;
    #*)
    #  echo "Unknown option '$1'"
    #  exit 1;;
    esac
    shift
  done
}

parse_options $*
print_config

if [[ ${run_cov_only} -eq 1 ]]
then
  do_cov
  # exit after run coverage test.
  exit
fi

if [ ${build_test} -eq 1 ]
then
  compile_gtest
  echo "building status: build gtest success."
fi

echo "build using: build_type=$build_type"
if [ ${build_type} == "Debug" ]
then
  mkdir -p build/Debug
  cd build/Debug
elif [ ${build_type} == "Release" ]
then
  mkdir -p build/Release
  cd build/Release
elif [ ${build_type} == "RelWithDebInfo" ]
then
  mkdir -p build/relwithdebinfo
  cd build/relwithdebinfo
elif [ ${build_type} == "MinSizeRel" ]
then
  mkdir -p build/minsizerel
  cd build/minsizerel
else
  echo ""
  echo "unknow build type: ${build_type}, valid build types(case intensive): Debug, Release, RelWithDebInfo, MinSizeRel"
  echo ""
  exit 1
fi

cmake ../../                           \
  -DGTEST=$gtest_project_dir           \
  -DZLIB=$zlib_project_dir/install     \
  -DLZ4LIB=$lz4lib_project_dir         \
  -DBUILD_TEST=$build_test             \
  -DCMAKE_BUILD_TYPE=$build_type       \
  -DUSE_CPP11=$use_cpp11               \
  -DENABLE_COV=$enable_cov             \
  -DDEBUG_SE=$debug_se                 \
  -DENABLE_ANTLR4=$enable_antlr4       \
  -DBUILD_TSFILE_ONLY=$build_tsfile_only \
  -DENABLE_SNAPPY=$enable_snappy       \
  -DENABLE_LZ4=$enable_lz4             \
  -DENABLE_LZOKAY=$enable_lzokay       \
  -DENABLE_ZLIB=$enable_zlib

VERBOSE=1 make
VERBOSE=1 make install

================================================
FILE: cpp/cmake/CopyToDir.cmake
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]

# CopyToDir.cmake

# This function is used to copy files to a directory and it will handle relative paths automatically.
function(copy_to_dir)
    set(INCLUDE_EXPORT_DR ${LIBRARY_INCLUDE_DIR} CACHE INTERNAL "Include export directory")
    math(EXPR file_path_length "${ARGC} - 1")
    list(SUBLIST ARGN 0 ${file_path_length} file_paths)
    list(GET ARGN ${file_path_length} parent)

    add_custom_command(
            OUTPUT copy_cmd_${parent}
            COMMAND ${CMAKE_COMMAND} -E echo Copying headers of ${parent}
    )

    foreach(file IN LISTS file_paths)
        get_filename_component(file_name ${file} NAME)
        get_filename_component(file_path ${file} PATH)
        string(REPLACE "${CMAKE_SOURCE_DIR}/src" "" relative_path "${file_path}")
        add_custom_command(
                OUTPUT copy_cmd_${parent} APPEND
                COMMAND ${CMAKE_COMMAND} -E make_directory ${INCLUDE_EXPORT_DR}/${relative_path}
                COMMAND ${CMAKE_COMMAND} -E copy_if_different ${file} ${INCLUDE_EXPORT_DR}/${relative_path}/${file_name}
        )
    endforeach()
    add_custom_target(
            copy_${parent} ALL
            DEPENDS copy_cmd_${parent}
    )
    add_dependencies(${parent} copy_${parent})
endfunction()




================================================
FILE: cpp/cmake/ToolChain.cmake
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

## Modify
set(CMAKE_C_COMPILER /home/tsfile/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc CACHE STRING "Path to the C compiler" FORCE)
set(CMAKE_CXX_COMPILER  /home/colin/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ CACHE STRING "Path to the C++ compiler" FORCE)
message(STATUS "using cxx compiler ${CMAKE_CXX_COMPILER}")
message(STATUS "using c compiler ${CMAKE_C_COMPILER}")
## Modify
set(CMAKE_FIND_ROOT_PATH /home/tsfile/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi)


set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

================================================
FILE: cpp/examples/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]
cmake_minimum_required(VERSION 3.10)
project(examples)
message("Running in exampes directory")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

# TsFile include dir
set(SDK_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/../src/)
message("SDK_INCLUDE_DIR: ${SDK_INCLUDE_DIR}")

# TsFile shared object dir
set(SDK_LIB_DIR_RELEASE ${PROJECT_SOURCE_DIR}/../build/Release/lib)
message("SDK_LIB_DIR_RELEASE: ${SDK_LIB_DIR_RELEASE}")

set(SDK_LIB_DIR_DEBUG ${PROJECT_SOURCE_DIR}/../build/Debug/lib)
message("SDK_LIB_DIR_DEBUG: ${SDK_LIB_DIR_DEBUG}")
include_directories(${PROJECT_SOURCE_DIR}/../third_party/antlr4-cpp-runtime-4/runtime/src)

set(BUILD_TYPE "Release")
include_directories(${SDK_INCLUDE_DIR})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g")
set(CMAKE_CXX_FLAGS_DEBUG" ${CMAKE_CXX_FLAGS} -O0 -g")

add_subdirectory(cpp_examples)
add_subdirectory(c_examples)

add_executable(examples examples.cc)
target_link_libraries(examples cpp_examples_obj c_examples_obj)
target_link_libraries(examples tsfile)

================================================
FILE: cpp/examples/README.md
================================================
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# TsFile Reader/Writer Integration Guide

## 1. Building TSFile Shared Library

Build Methods (Choose either approach)

### Method 1: Maven Build
Execute from the project root directory:

```BASH
mvn clean package verify -P with-cpp
```
Output location: cpp/target/build/lib

If maven is not installed, may use 'mvnw' in linux/macos or 'mvnw.cmd' in win instead"

### Method 2: Script Build
Run the build script:

```BASH
bash build.sh
```
Output location: cpp/build/Release/lib

## Project Configuration
### CMake Integration

Add to your CMakeLists.txt:

```CMAKE
find_library(TSFILE_LIB NAMES tsfile PATHS ${SDK_LIB} REQUIRED)
target_link_libraries(your_target ${TSFILE_LIB})
```

Note: Set ${SDK_LIB} to your TSFile library directory.

## 3. Implementation Examples
   
### Directory Structure
```TEXT
   ├── CMakeLists.txt
   ├── c_examples/
   │   ├── demo_write.c    # C write implementation
   │   └── demo_read.c     # C read implementation
   ├── cpp_examples/
   │   ├── demo_write.cpp  # C++ write implementation
   │   └── demo_read.cpp   # C++ read implementation
   └── examples.cc         # Combined use cases
```

### Code References
Writing TSFiles:\
C: c_examples/demo_write.c\
C++: cpp_examples/demo_write.cpp

Reading TSFiles:\
C: c_examples/demo_read.c\
C++: cpp_examples/demo_read.cpp

================================================
FILE: cpp/examples/build.sh
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
build_type=Debug
use_cpp11=1
if [ ${build_type} = "Debug" ]
then
  mkdir -p build/Debug
  cd build/Debug
else
  mkdir -p build/Release
  cd build/Release
fi


cmake ../../ -DBUILD_TYPE=$build_type
make

================================================
FILE: cpp/examples/c_examples/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]

message("Running in examples/c_examples directory")
aux_source_directory(. c_SRC_LIST)
add_library(c_examples_obj OBJECT ${c_SRC_LIST})


================================================
FILE: cpp/examples/c_examples/c_examples.h
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include "cwrapper/errno_define_c.h"
#include "cwrapper/tsfile_cwrapper.h"

#ifdef __cplusplus
extern "C" {
#endif
ERRNO write_tsfile();
ERRNO read_tsfile();

#define HANDLE_ERROR(err_no)                  \
    do {                                      \
        if (err_no != 0) {                    \
            printf("get err no: %d", err_no); \
            return err_no;                    \
        }                                     \
    } while (0)
#ifdef __cplusplus
}
#endif


================================================
FILE: cpp/examples/c_examples/demo_read.c
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>

#include "c_examples.h"

// This example shows you how to read tsfile.
ERRNO read_tsfile() {
    ERRNO code = 0;
    char* table_name = "table1";

    // Create tsfile reader with specify tsfile's path
    TsFileReader reader = tsfile_reader_new("test_c.tsfile", &code);
    HANDLE_ERROR(code);

    ResultSet ret = tsfile_query_table(
        reader, table_name, (char*[]){"id1", "id2", "s1"}, 3, 0, 10, &code);
    HANDLE_ERROR(code);

    if (ret == NULL) {
        HANDLE_ERROR(RET_INVALID_QUERY);
    }

    // Get query result metadata: column name and datatype
    ResultSetMetaData metadata = tsfile_result_set_get_metadata(ret);
    int column_num = tsfile_result_set_metadata_get_column_num(metadata);

    for (int i = 1; i <= column_num; i++) {
        printf("column:%s, datatype:%d\n",
               tsfile_result_set_metadata_get_column_name(metadata, i),
               tsfile_result_set_metadata_get_data_type(metadata, i));
    }

    // Get data by column name or index.
    while (tsfile_result_set_next(ret, &code) && code == RET_OK) {
        // Timestamp at column 1 and column index begin from 1.
        Timestamp timestamp =
            tsfile_result_set_get_value_by_index_int64_t(ret, 1);
        printf("%lld\n", (long long)timestamp);
        for (int i = 1; i <= column_num; i++) {
            if (tsfile_result_set_is_null_by_index(ret, i)) {
                printf(" null ");
            } else {
                switch (tsfile_result_set_metadata_get_data_type(metadata, i)) {
                    case TS_DATATYPE_BOOLEAN:
                        printf(
                            "%d\n",
                            tsfile_result_set_get_value_by_index_bool(ret, i));
                        break;
                    case TS_DATATYPE_INT32:
                        printf("%d\n",
                               tsfile_result_set_get_value_by_index_int32_t(ret,
                                                                            i));
                        break;
                    case TS_DATATYPE_INT64:
                        printf("%lld\n",
                               (long long)
                                   tsfile_result_set_get_value_by_index_int64_t(
                                       ret, i));
                        break;
                    case TS_DATATYPE_FLOAT:
                        printf(
                            "%f\n",
                            tsfile_result_set_get_value_by_index_float(ret, i));
                        break;
                    case TS_DATATYPE_DOUBLE:
                        printf("%lf\n",
                               tsfile_result_set_get_value_by_index_double(ret,
                                                                           i));
                        break;
                    case TS_DATATYPE_STRING:
                        printf("%s\n",
                               tsfile_result_set_get_value_by_index_string(ret,
                                                                           i));
                        break;
                    default:
                        printf("unknown_type");
                        break;
                }
            }
        }
    }

    // Free query meta data
    free_result_set_meta_data(metadata);

    // Free query handler.
    free_tsfile_result_set(&ret);

    // Close tsfile reader.
    tsfile_reader_close(reader);

    return 0;
}


================================================
FILE: cpp/examples/c_examples/demo_write.c
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "c_examples.h"

// This example shows you how to write tsfile.
ERRNO write_tsfile() {
    ERRNO code = 0;
    code = set_global_compression(TS_COMPRESSION_LZ4);
    if (code != RET_OK) {
        return code;
    }
    code = set_datatype_encoding(TS_DATATYPE_INT32, TS_ENCODING_TS_2DIFF);
    if (code != RET_OK) {
        return code;
    }
    char* table_name = "table1";

    // Create table schema to describe a table in a tsfile.
    TableSchema table_schema;
    table_schema.table_name = strdup(table_name);
    table_schema.column_num = 3;
    table_schema.column_schemas =
        (ColumnSchema*)malloc(sizeof(ColumnSchema) * 3);
    table_schema.column_schemas[0] =
        (ColumnSchema){.column_name = strdup("id1"),
                       .data_type = TS_DATATYPE_STRING,
                       .column_category = TAG};
    table_schema.column_schemas[1] =
        (ColumnSchema){.column_name = strdup("id2"),
                       .data_type = TS_DATATYPE_STRING,
                       .column_category = TAG};
    table_schema.column_schemas[2] =
        (ColumnSchema){.column_name = strdup("s1"),
                       .data_type = TS_DATATYPE_INT32,
                       .column_category = FIELD};

    remove("test_c.tsfile");
    // Create a file with specify path to write tsfile.
    WriteFile file = write_file_new("test_c.tsfile", &code);
    HANDLE_ERROR(code);

    // Create tsfile writer with specify table schema.
    TsFileWriter writer = tsfile_writer_new(file, &table_schema, &code);
    HANDLE_ERROR(code);

    // Create tablet to insert data.
    Tablet tablet =
        tablet_new((char*[]){"id1", "id2", "s1"},
                   (TSDataType[]){TS_DATATYPE_STRING, TS_DATATYPE_STRING,
                                  TS_DATATYPE_INT32},
                   3, 5);

    for (int row = 0; row < 5; row++) {
        Timestamp timestamp = row;
        tablet_add_timestamp(tablet, row, timestamp);
        tablet_add_value_by_name_string_with_len(
            tablet, row, "id1", "id_field_1", strlen("id_field_1"));
        tablet_add_value_by_name_string_with_len(
            tablet, row, "id2", "id_field_2", strlen("id_field_2"));
        tablet_add_value_by_name_int32_t(tablet, row, "s1", row);
    }

    // Write tablet data.
    HANDLE_ERROR(tsfile_writer_write(writer, tablet));

    // Free tablet.
    free_tablet(&tablet);

    // Free table schema we used before.
    free_table_schema(table_schema);

    // Close writer.
    HANDLE_ERROR(tsfile_writer_close(writer));

    // Close write file after closing writer.
    free_write_file(&file);

    return 0;
}

================================================
FILE: cpp/examples/cpp_examples/CMakeLists.txt
================================================
#[[
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
]]

message("Running in examples/cpp_examples directory")
aux_source_directory(. cpp_SRC_LIST)
add_library(cpp_examples_obj OBJECT ${cpp_SRC_LIST})


================================================
FILE: cpp/examples/cpp_examples/cpp_examples.h
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include "common/db_common.h"
#include "common/path.h"
#include "common/record.h"
#include "common/row_record.h"
#include "common/schema.h"
#include "common/tablet.h"
#include "file/write_file.h"
#include "reader/expression.h"
#include "reader/filter/filter.h"
#include "reader/filter/tag_filter.h"
#include "reader/qds_with_timegenerator.h"
#include "reader/qds_without_timegenerator.h"
#include "reader/tsfile_reader.h"
#include "writer/tsfile_table_writer.h"
#include "writer/tsfile_writer.h"

#define HANDLE_ERROR(err_no)                  \
    do {                                      \
        if (err_no != 0) {                    \
            printf("get err no: %d", err_no); \
            return err_no;                    \
        }                                     \
    } while (0)

int demo_read();
int demo_write();


================================================
FILE: cpp/examples/cpp_examples/demo_read.cpp
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include <iostream>
#include <string>
#include <vector>

#include "../c_examples/c_examples.h"
#include "cpp_examples.h"

int demo_read() {
    int code = 0;
    storage::libtsfile_init();
    std::string table_name = "table1";

    // Create tsfile reader and open tsfile with specify path.
    storage::TsFileReader reader;
    reader.open("test_cpp.tsfile");

    // Query data with tsfile reader.
    storage::ResultSet* temp_ret = nullptr;
    std::vector<std::string> columns;
    columns.emplace_back("id1");
    columns.emplace_back("id2");
    columns.emplace_back("s1");

    auto table_schema = reader.get_table_schema(table_name);
    storage::Filter* tag_filter1 =
        storage::TagFilterBuilder(table_schema.get()).eq("id1", "id1_filed_1");
    storage::Filter* tag_filter2 =
        storage::TagFilterBuilder(table_schema.get()).eq("id2", "id1_filed_2");
    storage::Filter* tag_filter = storage::TagFilterBuilder(table_schema.get())
                                      .and_filter(tag_filter1, tag_filter2);
    // Column vector contains the columns you want to select.
    HANDLE_ERROR(
        reader.query(table_name, columns, 0, 100, temp_ret, tag_filter));

    // Get query handler.
    auto ret = dynamic_cast<storage::TableResultSet*>(temp_ret);

    // Metadata in query handler.
    auto metadata = ret->get_metadata();
    int column_num = metadata->get_column_count();
    for (int i = 1; i <= column_num; i++) {
        std::cout << "column name: " << metadata->get_column_name(i)
                  << std::endl;
        std::cout << "column type: "
                  << std::to_string(metadata->get_column_type(i)) << std::endl;
    }

    // Check and get next data.
    bool has_next = false;
    while ((code = ret->next(has_next)) == common::E_OK && has_next) {
        // Timestamp at column 1 and column index begin from 1.
        Timestamp timestamp = ret->get_value<Timestamp>(1);
        std::cout << timestamp << std::endl;
        for (int i = 1; i <= column_num; i++) {
            if (ret->is_null(i)) {
                std::cout << "null" << std::endl;
            } else {
                switch (metadata->get_column_type(i)) {
                    case common::BOOLEAN:
                        std::cout << ret->get_value<bool>(i) << std::endl;
                        break;
                    case common::INT32:
                        std::cout << ret->get_value<int32_t>(i) << std::endl;
                        break;
                    case common::INT64:
                        std::cout << ret->get_value<int64_t>(i) << std::endl;
                        break;
                    case common::FLOAT:
                        std::cout << ret->get_value<float>(i) << std::endl;
                        break;
                    case common::DOUBLE:
                        std::cout << ret->get_value<double>(i) << std::endl;
                        break;
                    case common::STRING:
                        std::cout << ret->get_value<common::String*>(i)
                                         ->to_std_string()
                                  << std::endl;
                        break;
                    default:;
                }
            }
        }
    }

    // Close query result set.
    ret->close();

    // Close reader.
    reader.close();
    delete tag_filter;
    return 0;
}


================================================
FILE: cpp/examples/cpp_examples/demo_write.cpp
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include <writer/tsfile_table_writer.h>

#include <string>

#include "cpp_examples.h"

int demo_write() {
    storage::libtsfile_init();

    std::string table_name = "table1";

    // Create a file with specify path to write tsfile.
    storage::WriteFile file;
    int flags = O_WRONLY | O_CREAT | O_TRUNC;
#ifdef _WIN32
    flags |= O_BINARY;
#endif
    mode_t mode = 0666;
    file.create("test_cpp.tsfile", flags, mode);

    // Create table schema to describe a table in a tsfile.
    auto* schema = new storage::TableSchema(
        table_name,
        {
            common::ColumnSchema("id1", common::STRING, common::UNCOMPRESSED,
                                 common::PLAIN, common::ColumnCategory::TAG),
            common::ColumnSchema("id2", common::STRING, common::UNCOMPRESSED,
                                 common::PLAIN, common::ColumnCategory::TAG),
            common::ColumnSchema("s1", common::INT64, common::UNCOMPRESSED,
                                 common::PLAIN, common::ColumnCategory::FIELD),
        });

    // Create a file with specify path to write tsfile.
    auto* writer = new storage::TsFileTableWriter(&file, schema);

    // Create tablet to insert data.
    storage::Tablet tablet(
        table_name, {"id1", "id2", "s1"},
        {common::STRING, common::STRING, common::INT64},
        {common::ColumnCategory::TAG, common::ColumnCategory::TAG,
         common::ColumnCategory::FIELD},
        10);

    for (int row = 0; row < 5; row++) {
        long timestamp = row;
        tablet.add_timestamp(row, timestamp);
        tablet.add_value(row, "id1", "id1_filed_1");
        tablet.add_value(row, "id2", "id1_filed_2");
        tablet.add_value(row, "s1", static_cast<int64_t>(row));
    }

    // Write tablet data.
    HANDLE_ERROR(writer->write_table(tablet));

    // Flush data
    HANDLE_ERROR(writer->flush());

    // Close writer.
    HANDLE_ERROR(writer->close());

    delete writer;
    delete schema;

    return 0;
}


================================================
FILE: cpp/examples/examples.cc
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * License); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

#include "c_examples/c_examples.h"
#include "cpp_examples/cpp_examples.h"

int main() {
    // C++ examples
    // std::cout << "begin write and read tsfile by cpp" << std::endl;
    demo_write();
    demo_read();
    std::cout << "begin write and read tsfile by c" << std::endl;
    // C examples
    write_tsfile();
    read_tsfile();
    return 0;
}

================================================
FILE: cpp/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

      https://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.tsfile</groupId>
        <artifactId>tsfile-parent</artifactId>
        <version>2.2.1-SNAPSHOT</version>
    </parent>
    <artifactId>tsfile-cpp</artifactId>
    <packaging>pom</packaging>
    <name>TsFile: C++</name>
    <properties>
        <!-- Tell Sonar where to find the sources -->
        <sonar.sources>common,examples,tsfile</sonar.sources>
        <sonar.cfamily.build-wrapper-output>${project.build.directory}/build-wrapper-output</sonar.cfamily.build-wrapper-output>
        <coverage.enabled>OFF</coverage.enabled>
        <build.type>Release</build.type>
        <enable.asan>OFF</enable.asan>
        <build.test>ON</build.test>
        <enable.snappy>ON</enable.snappy>
        <enable.lz4>ON</enable.lz4>
        <enable.lzokay>ON</enable.lzokay>
        <enable.zlib>ON</enable.zlib>
        <enable.antlr4>ON</enable.antlr4>
        <enable.simde>OFF</enable.simde>
    </properties>
    <build>
        <sourceDirectory>${project.basedir}</sourceDirectory>
        <plugins>
            <!--
                Do the actual build.
            -->
            <plugin>
                <groupId>com.googlecode.cmake-maven-project</groupId>
                <artifactId>cmake-maven-plugin</artifactId>
                <executions>
                    <!-- Generate the configuration for the main compilation -->
                    <!--execution>
                      <id>cmake-generate-compile</id>
                      <phase>compile</phase>
                      <goals>
                        <goal>generate</goal>
                      </goals>
                    </execution>
                    <!- Compile the main code ->
                    <execution>
                      <id>cmake-execute-compile</id>
                      <phase>compile</phase>
                      <goals>
                        <goal>compile</goal>
                      </goals>
                    </execution-->
                    <!-- Generate the configuration for the test compilation -->
                    <execution>
                        <id>cmake-generate-test-compile</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <options>
                                <option>-DBUILD_PHASE=test-compile</option>
                                <option>-DCOV_ENABLED=${coverage.enabled}</option>
                                <option>-DCMAKE_BUILD_TYPE=${build.type}</option>
                                <option>-DENABLE_ASAN=${enable.asan}</option>
                                <option>-DBUILD_TEST=${build.test}</option>
                                <option>-DENABLE_ANTLR4=${enable.antlr4}</option>
                                <option>-DENABLE_SNAPPY=${enable.snappy}</option>
                                <option>-DENABLE_LZ4=${enable.lz4}</option>
                                <option>-DENABLE_LZOKAY=${enable.lzokay}</option>
                                <option>-DENABLE_ZLIB=${enable.zlib}</option>
                                <option>-DENABLE_SIMDE=${enable.simde}</option>
                            </options>
                            <sourcePath/>
                            <targetPath/>
                        </configuration>
                    </execution>
                    <!-- Compile the test code -->
                    <execution>
                        <id>cmake-execute-test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <!-- Execute the tests -->
                    <execution>
                        <id>cmake-run-tests</id>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <buildDirectory>${project.build.directory}/build/test</buildDirectory>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <!--
                        Actually the path to the CMakeList.txt file which then again
                        tells to tool where to find the sources.
                    -->
                    <sourcePath>${project.basedir}</sourcePath>
                    <!--
                        Path to where the build configuration is generated
                        (This directory is then used in the compile step to actually perform the build)
                    -->
                    <targetPath>${project.build.directory}/build</targetPath>
                    <!--
                        Name of the generator the compile step will be executing.
                    -->
                    <generator>${cmake.generator}</generator>
                    <!-- The directory where the "generate" step generated the build configuration -->
                    <projectDirectory>${project.build.directory}/build</projectDirectory>
                </configuration>
            </plugin>
            <!-- Overwrite test config-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>groovy-maven-plugin</artifactId>
                <version>2.1.1</version>
                <executions>
                    <!-- rename the cmake binary and generate a script that adds the sonar build-wrapper -->
                    <execution>
                        <id>sync-project-version</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <source>${project.basedir}/VersionUpdater.groovy</source>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.groovy</groupId>
                        <artifactId>groovy</artifactId>
                        <version>${groovy.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>jenkins-build</id>
            <!-- This is needed by the groovy hack script -->
            <properties>
                <cmake.root>${project.build.directory}/dependency/cmake/bin</cmake.root>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.googlecode.maven-download-plugin</groupId>
                        <artifactId>download-maven-plugin</artifactId>
                        <executions>
                            <!-- Get the build-wrapper from our sonarcloud server -->
                            <execution>
                                <id>get-build-wrapper</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>wget</goal>
                                </goals>
                                <configuration>
                                    <skipCache>true</skipCache>
                                    <url>https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip</url>
                                    <unpack>true</unpack>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                    <skipCache>true</skipCache>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>with-code-coverage</id>
            <properties>
                <coverage.enabled>ON</coverage.enabled>
            </properties>
        </profile>
        <profile>
            <id>.java-9-and-above</id>
            <activation>
                <jdk>[9,)</jdk>
            </activation>
            <build>
                <plu
Download .txt
Showing preview only (202K chars total). Download the full file or copy to clipboard to get everything.
gitextract_k6f65djk/

├── .asf.yaml
├── .clang-format
├── .gitattributes
├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── code-coverage.yml
│       ├── codeql.yml
│       ├── site-build.yaml
│       ├── unit-test-cpp.yml
│       ├── unit-test-java.yml
│       ├── unit-test-python.yml
│       └── wheels.yml
├── .gitignore
├── .mvn/
│   ├── develocity.xml
│   ├── extensions.xml
│   └── wrapper/
│       └── maven-wrapper.properties
├── CLAUDE.md
├── Jenkinsfile
├── LICENSE
├── NOTICE
├── README-zh.md
├── README.md
├── RELEASE_NOTES.md
├── checkstyle.xml
├── codecov.yml
├── cpp/
│   ├── .clang-format
│   ├── .gitignore
│   ├── CLAUDE.md
│   ├── CMakeLists.txt
│   ├── README-zh.md
│   ├── README.md
│   ├── VersionUpdater.groovy
│   ├── bench_mark/
│   │   ├── CMakeLists.txt
│   │   ├── bench_mark_src/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── bench_conf.h
│   │   │   ├── bench_mark.cc
│   │   │   └── bench_mark.h
│   │   └── build.sh
│   ├── build.sh
│   ├── cmake/
│   │   ├── CopyToDir.cmake
│   │   └── ToolChain.cmake
│   ├── examples/
│   │   ├── CMakeLists.txt
│   │   ├── README.md
│   │   ├── build.sh
│   │   ├── c_examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── c_examples.h
│   │   │   ├── demo_read.c
│   │   │   └── demo_write.c
│   │   ├── cpp_examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── cpp_examples.h
│   │   │   ├── demo_read.cpp
│   │   │   └── demo_write.cpp
│   │   ├── examples.cc
│   │   └── test_cpp.tsfile
│   ├── pom.xml
│   ├── src/
│   │   ├── CMakeLists.txt
│   │   ├── common/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── allocator/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── alloc_base.h
│   │   │   │   ├── byte_stream.h
│   │   │   │   ├── mem_alloc.cc
│   │   │   │   ├── my_string.h
│   │   │   │   ├── page_arena.cc
│   │   │   │   └── page_arena.h
│   │   │   ├── cache/
│   │   │   │   └── lru_cache.h
│   │   │   ├── config/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── config.h
│   │   │   ├── constant/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── tsfile_constant.h
│   │   │   ├── container/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── array.h
│   │   │   │   ├── bit_map.cc
│   │   │   │   ├── bit_map.h
│   │   │   │   ├── blocking_queue.cc
│   │   │   │   ├── blocking_queue.h
│   │   │   │   ├── byte_buffer.h
│   │   │   │   ├── hash_func.h
│   │   │   │   ├── hash_node.h
│   │   │   │   ├── hash_segm.h
│   │   │   │   ├── hash_table.h
│   │   │   │   ├── list.h
│   │   │   │   ├── murmur_hash3.cc
│   │   │   │   ├── murmur_hash3.h
│   │   │   │   ├── simple_vector.h
│   │   │   │   ├── slice.h
│   │   │   │   └── sorted_array.h
│   │   │   ├── datatype/
│   │   │   │   ├── date_converter.h
│   │   │   │   └── value.h
│   │   │   ├── db_common.h
│   │   │   ├── device_id.cc
│   │   │   ├── device_id.h
│   │   │   ├── global.cc
│   │   │   ├── global.h
│   │   │   ├── logger/
│   │   │   │   └── elog.h
│   │   │   ├── mutex/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── mutex.h
│   │   │   ├── path.cc
│   │   │   ├── path.h
│   │   │   ├── record.h
│   │   │   ├── row_record.h
│   │   │   ├── schema.h
│   │   │   ├── seq_tvlist.h
│   │   │   ├── seq_tvlist.inc
│   │   │   ├── statistic.h
│   │   │   ├── tablet.cc
│   │   │   ├── tablet.h
│   │   │   ├── thread_pool.h
│   │   │   ├── tsblock/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── tsblock.cc
│   │   │   │   ├── tsblock.h
│   │   │   │   ├── tuple_desc.cc
│   │   │   │   ├── tuple_desc.h
│   │   │   │   └── vector/
│   │   │   │       ├── fixed_length_vector.h
│   │   │   │       ├── variable_length_vector.h
│   │   │   │       └── vector.h
│   │   │   ├── tsfile_common.cc
│   │   │   └── tsfile_common.h
│   │   ├── compress/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── compressor.cc
│   │   │   ├── compressor.h
│   │   │   ├── compressor_factory.h
│   │   │   ├── gzip_compressor.cc
│   │   │   ├── gzip_compressor.h
│   │   │   ├── lz4_compressor.cc
│   │   │   ├── lz4_compressor.h
│   │   │   ├── lzo_compressor.cc
│   │   │   ├── lzo_compressor.h
│   │   │   ├── snappy_compressor.cc
│   │   │   ├── snappy_compressor.h
│   │   │   └── uncompressed_compressor.h
│   │   ├── cwrapper/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── arrow_c.cc
│   │   │   ├── errno_define_c.h
│   │   │   ├── tsfile_cwrapper.cc
│   │   │   ├── tsfile_cwrapper.h
│   │   │   ├── tsfile_cwrapper_expression.cc
│   │   │   └── tsfile_cwrapper_expression.h
│   │   ├── encoding/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── decoder.h
│   │   │   ├── decoder_factory.h
│   │   │   ├── dictionary_decoder.h
│   │   │   ├── dictionary_encoder.h
│   │   │   ├── double_sprintz_decoder.h
│   │   │   ├── double_sprintz_encoder.h
│   │   │   ├── encode_utils.h
│   │   │   ├── encoder.h
│   │   │   ├── encoder_factory.h
│   │   │   ├── fire.h
│   │   │   ├── float_sprintz_decoder.h
│   │   │   ├── float_sprintz_encoder.h
│   │   │   ├── gorilla_decoder.h
│   │   │   ├── gorilla_encoder.h
│   │   │   ├── int32_packer.h
│   │   │   ├── int32_rle_decoder.h
│   │   │   ├── int32_rle_encoder.h
│   │   │   ├── int32_sprintz_decoder.h
│   │   │   ├── int32_sprintz_encoder.h
│   │   │   ├── int64_packer.h
│   │   │   ├── int64_rle_decoder.h
│   │   │   ├── int64_rle_encoder.h
│   │   │   ├── int64_sprintz_decoder.h
│   │   │   ├── int64_sprintz_encoder.h
│   │   │   ├── plain_decoder.h
│   │   │   ├── plain_encoder.h
│   │   │   ├── sprintz_decoder.h
│   │   │   ├── sprintz_encoder.h
│   │   │   ├── ts2diff_decoder.h
│   │   │   ├── ts2diff_encoder.h
│   │   │   ├── zigzag_decoder.h
│   │   │   └── zigzag_encoder.h
│   │   ├── file/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── read_file.cc
│   │   │   ├── read_file.h
│   │   │   ├── restorable_tsfile_io_writer.cc
│   │   │   ├── restorable_tsfile_io_writer.h
│   │   │   ├── tsfile_io_reader.cc
│   │   │   ├── tsfile_io_reader.h
│   │   │   ├── tsfile_io_writer.cc
│   │   │   ├── tsfile_io_writer.h
│   │   │   ├── write_file.cc
│   │   │   └── write_file.h
│   │   ├── parser/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── PathLexer.g4
│   │   │   ├── PathParser.g4
│   │   │   ├── generated/
│   │   │   │   ├── PathLexer.cpp
│   │   │   │   ├── PathLexer.h
│   │   │   │   ├── PathParser.cpp
│   │   │   │   ├── PathParser.h
│   │   │   │   ├── PathParserBaseListener.cpp
│   │   │   │   ├── PathParserBaseListener.h
│   │   │   │   ├── PathParserBaseVisitor.cpp
│   │   │   │   ├── PathParserBaseVisitor.h
│   │   │   │   ├── PathParserListener.cpp
│   │   │   │   ├── PathParserListener.h
│   │   │   │   ├── PathParserVisitor.cpp
│   │   │   │   └── PathParserVisitor.h
│   │   │   ├── path_nodes_generator.cpp
│   │   │   ├── path_nodes_generator.h
│   │   │   ├── path_parser_error.h
│   │   │   ├── path_visitor.cpp
│   │   │   └── path_visitor.h
│   │   ├── reader/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── aligned_chunk_reader.cc
│   │   │   ├── aligned_chunk_reader.h
│   │   │   ├── block/
│   │   │   │   ├── device_ordered_tsblock_reader.cc
│   │   │   │   ├── device_ordered_tsblock_reader.h
│   │   │   │   ├── single_device_tsblock_reader.cc
│   │   │   │   ├── single_device_tsblock_reader.h
│   │   │   │   └── tsblock_reader.h
│   │   │   ├── bloom_filter.cc
│   │   │   ├── bloom_filter.h
│   │   │   ├── chunk_reader.cc
│   │   │   ├── chunk_reader.h
│   │   │   ├── column_mapping.h
│   │   │   ├── device_meta_iterator.cc
│   │   │   ├── device_meta_iterator.h
│   │   │   ├── expression.cc
│   │   │   ├── expression.h
│   │   │   ├── filter/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── and_filter.h
│   │   │   │   ├── between.h
│   │   │   │   ├── binary_filter.h
│   │   │   │   ├── eq.h
│   │   │   │   ├── filter.h
│   │   │   │   ├── filter_type.h
│   │   │   │   ├── gt.h
│   │   │   │   ├── gt_eq.h
│   │   │   │   ├── in.h
│   │   │   │   ├── lt.h
│   │   │   │   ├── lt_eq.h
│   │   │   │   ├── not_eq.h
│   │   │   │   ├── object.h
│   │   │   │   ├── or_filter.h
│   │   │   │   ├── tag_filter.cc
│   │   │   │   ├── tag_filter.h
│   │   │   │   ├── time_filter.cc
│   │   │   │   ├── time_filter.h
│   │   │   │   ├── time_operator.cc
│   │   │   │   ├── time_operator.h
│   │   │   │   └── unary_filter.h
│   │   │   ├── ichunk_reader.h
│   │   │   ├── imeta_data_querier.h
│   │   │   ├── meta_data_querier.cc
│   │   │   ├── meta_data_querier.h
│   │   │   ├── qds_with_timegenerator.cc
│   │   │   ├── qds_with_timegenerator.h
│   │   │   ├── qds_without_timegenerator.cc
│   │   │   ├── qds_without_timegenerator.h
│   │   │   ├── query_executor.h
│   │   │   ├── result_set.h
│   │   │   ├── table_query_executor.cc
│   │   │   ├── table_query_executor.h
│   │   │   ├── table_result_set.cc
│   │   │   ├── table_result_set.h
│   │   │   ├── task/
│   │   │   │   ├── device_query_task.cc
│   │   │   │   ├── device_query_task.h
│   │   │   │   ├── device_task_iterator.cc
│   │   │   │   └── device_task_iterator.h
│   │   │   ├── tsfile_executor.cc
│   │   │   ├── tsfile_executor.h
│   │   │   ├── tsfile_reader.cc
│   │   │   ├── tsfile_reader.h
│   │   │   ├── tsfile_series_scan_iterator.cc
│   │   │   ├── tsfile_series_scan_iterator.h
│   │   │   ├── tsfile_tree_reader.cc
│   │   │   └── tsfile_tree_reader.h
│   │   ├── utils/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── date_utils.h
│   │   │   ├── db_utils.h
│   │   │   ├── errno_define.h
│   │   │   ├── injection.h
│   │   │   ├── storage_utils.h
│   │   │   └── util_define.h
│   │   └── writer/
│   │       ├── CMakeLists.txt
│   │       ├── chunk_writer.cc
│   │       ├── chunk_writer.h
│   │       ├── page_writer.cc
│   │       ├── page_writer.h
│   │       ├── time_chunk_writer.cc
│   │       ├── time_chunk_writer.h
│   │       ├── time_page_writer.cc
│   │       ├── time_page_writer.h
│   │       ├── tsfile_table_writer.cc
│   │       ├── tsfile_table_writer.h
│   │       ├── tsfile_tree_writer.cc
│   │       ├── tsfile_tree_writer.h
│   │       ├── tsfile_writer.cc
│   │       ├── tsfile_writer.h
│   │       ├── value_chunk_writer.cc
│   │       ├── value_chunk_writer.h
│   │       ├── value_page_writer.cc
│   │       └── value_page_writer.h
│   ├── test/
│   │   ├── CMakeLists.txt
│   │   ├── common/
│   │   │   ├── allocator/
│   │   │   │   ├── alloc_base_test.cc
│   │   │   │   ├── byte_stream_test.cc
│   │   │   │   ├── my_string_test.cc
│   │   │   │   └── page_arena_test.cc
│   │   │   ├── container/
│   │   │   │   ├── array_test.cc
│   │   │   │   ├── bit_map_test.cc
│   │   │   │   ├── byte_buffer_test.cc
│   │   │   │   ├── list_test.cc
│   │   │   │   ├── murmur_hash3_test.cc
│   │   │   │   ├── simple_vector_test.cc
│   │   │   │   ├── slice_test.cc
│   │   │   │   └── sorted_array_test.cc
│   │   │   ├── datatype/
│   │   │   │   ├── date_converter_test.cc
│   │   │   │   └── value_test.cc
│   │   │   ├── device_id_test.cc
│   │   │   ├── record_test.cc
│   │   │   ├── row_record_test.cc
│   │   │   ├── schema_test.cc
│   │   │   ├── statistic_test.cc
│   │   │   ├── tablet_test.cc
│   │   │   ├── tsblock/
│   │   │   │   ├── arrow_tsblock_test.cc
│   │   │   │   ├── tslock_test.cc
│   │   │   │   ├── tuple_desc_test.cc
│   │   │   │   └── vector/
│   │   │   │       ├── fixed_length_vector_test.cc
│   │   │   │       └── variable_length_vector_test.cc
│   │   │   └── tsfile_common_test.cc
│   │   ├── compress/
│   │   │   ├── gzip_compressor_test.cc
│   │   │   ├── lz4_compressor_test.cc
│   │   │   ├── lzo_compressor_test.cc
│   │   │   └── snappy_compressor_test.cc
│   │   ├── cwrapper/
│   │   │   ├── c_release_test.cc
│   │   │   ├── cwrapper_metadata_test.cc
│   │   │   ├── cwrapper_test.cc
│   │   │   └── query_by_row_cwrapper_test.cc
│   │   ├── encoding/
│   │   │   ├── dictionary_codec_test.cc
│   │   │   ├── gorilla_codec_test.cc
│   │   │   ├── int32_packer_test.cc
│   │   │   ├── int32_rle_codec_test.cc
│   │   │   ├── int64_packer_test.cc
│   │   │   ├── int64_rle_codec_test.cc
│   │   │   ├── plain_codec_test.cc
│   │   │   ├── sprintz_codec_test.cc
│   │   │   ├── ts2diff_codec_test.cc
│   │   │   └── zigzag_codec_test.cc
│   │   ├── file/
│   │   │   ├── restorable_tsfile_io_writer_test.cc
│   │   │   └── write_file_test.cc
│   │   ├── parser/
│   │   │   └── path_name_test.cc
│   │   ├── reader/
│   │   │   ├── bloom_filter_test.cc
│   │   │   ├── filter/
│   │   │   │   └── tag_filter_test.cc
│   │   │   ├── query_by_row_performance_test.cc
│   │   │   ├── table_view/
│   │   │   │   ├── tsfile_reader_table_batch_test.cc
│   │   │   │   ├── tsfile_reader_table_test.cc
│   │   │   │   └── tsfile_table_query_by_row_test.cc
│   │   │   ├── tree_view/
│   │   │   │   ├── tsfile_reader_tree_test.cc
│   │   │   │   └── tsfile_tree_query_by_row_test.cc
│   │   │   └── tsfile_reader_test.cc
│   │   ├── utils/
│   │   │   └── db_utils_test.cc
│   │   └── writer/
│   │       ├── chunk_writer_test.cc
│   │       ├── page_writer_test.cc
│   │       ├── table_view/
│   │       │   └── tsfile_writer_table_test.cc
│   │       ├── time_chunk_writer_test.cc
│   │       ├── time_page_writer_test.cc
│   │       ├── tsfile_writer_test.cc
│   │       ├── value_chunk_writer_test.cc
│   │       └── value_page_writer_test.cc
│   └── third_party/
│       ├── CMakeLists.txt
│       ├── antlr4-cpp-runtime-4/
│       │   ├── CMakeLists.txt
│       │   ├── LICENSE.txt
│       │   ├── README.md
│       │   ├── VERSION
│       │   ├── cmake/
│       │   │   ├── Antlr4Package.md
│       │   │   ├── ExternalAntlr4Cpp.cmake
│       │   │   ├── FindANTLR.cmake
│       │   │   ├── README.md
│       │   │   ├── antlr4-generator.cmake.in
│       │   │   └── antlr4-runtime.cmake.in
│       │   ├── demo/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── Linux/
│       │   │   │   └── main.cpp
│       │   │   ├── Mac/
│       │   │   │   ├── antlr4-cpp-demo/
│       │   │   │   │   └── main.cpp
│       │   │   │   ├── antlrcpp Tests/
│       │   │   │   │   ├── Info.plist
│       │   │   │   │   ├── InputHandlingTests.mm
│       │   │   │   │   ├── MiscClassTests.mm
│       │   │   │   │   └── antlrcpp_Tests.mm
│       │   │   │   ├── antlrcpp-demo.xcodeproj/
│       │   │   │   │   ├── project.pbxproj
│       │   │   │   │   ├── project.xcworkspace/
│       │   │   │   │   │   ├── contents.xcworkspacedata
│       │   │   │   │   │   └── xcshareddata/
│       │   │   │   │   │       └── IDEWorkspaceChecks.plist
│       │   │   │   │   └── xcshareddata/
│       │   │   │   │       └── xcschemes/
│       │   │   │   │           ├── antlr4-cpp-demo.xcscheme
│       │   │   │   │           └── antlrcpp Tests.xcscheme
│       │   │   │   └── build.sh
│       │   │   ├── README.md
│       │   │   ├── TLexer.g4
│       │   │   ├── TParser.g4
│       │   │   ├── Windows/
│       │   │   │   ├── antlr4-cpp-demo/
│       │   │   │   │   ├── antlr4-cpp-demo-vs2015.vcxproj
│       │   │   │   │   ├── antlr4-cpp-demo-vs2015.vcxproj.filters
│       │   │   │   │   ├── antlr4-cpp-demo.vcxproj
│       │   │   │   │   ├── antlr4-cpp-demo.vcxproj.filters
│       │   │   │   │   └── main.cpp
│       │   │   │   ├── antlr4cpp-vs2013.sln
│       │   │   │   └── antlr4cpp-vs2015.sln
│       │   │   ├── generate.cmd
│       │   │   └── generate.sh
│       │   ├── deploy-macos.sh
│       │   ├── deploy-source.sh
│       │   ├── deploy-windows.cmd
│       │   └── runtime/
│       │       ├── CMakeLists.txt
│       │       ├── antlr4cpp-vs2013.vcxproj
│       │       ├── antlr4cpp-vs2013.vcxproj.filters
│       │       ├── antlr4cpp-vs2015.vcxproj
│       │       ├── antlr4cpp-vs2015.vcxproj.filters
│       │       ├── antlr4cpp-vs2017.vcxproj
│       │       ├── antlr4cpp-vs2017.vcxproj.filters
│       │       ├── antlr4cpp-vs2019.vcxproj
│       │       ├── antlr4cpp-vs2019.vcxproj.filters
│       │       ├── antlrcpp-ios/
│       │       │   ├── Info.plist
│       │       │   └── antlrcpp_ios.h
│       │       ├── antlrcpp.xcodeproj/
│       │       │   ├── project.pbxproj
│       │       │   ├── project.xcworkspace/
│       │       │   │   ├── contents.xcworkspacedata
│       │       │   │   └── xcshareddata/
│       │       │   │       └── IDEWorkspaceChecks.plist
│       │       │   └── xcshareddata/
│       │       │       └── xcschemes/
│       │       │           ├── antlr4.xcscheme
│       │       │           ├── antlr4_ios.xcscheme
│       │       │           └── antlr4_static.xcscheme
│       │       └── src/
│       │           ├── ANTLRErrorListener.cpp
│       │           ├── ANTLRErrorListener.h
│       │           ├── ANTLRErrorStrategy.cpp
│       │           ├── ANTLRErrorStrategy.h
│       │           ├── ANTLRFileStream.cpp
│       │           ├── ANTLRFileStream.h
│       │           ├── ANTLRInputStream.cpp
│       │           ├── ANTLRInputStream.h
│       │           ├── BailErrorStrategy.cpp
│       │           ├── BailErrorStrategy.h
│       │           ├── BaseErrorListener.cpp
│       │           ├── BaseErrorListener.h
│       │           ├── BufferedTokenStream.cpp
│       │           ├── BufferedTokenStream.h
│       │           ├── CharStream.cpp
│       │           ├── CharStream.h
│       │           ├── CommonToken.cpp
│       │           ├── CommonToken.h
│       │           ├── CommonTokenFactory.cpp
│       │           ├── CommonTokenFactory.h
│       │           ├── CommonTokenStream.cpp
│       │           ├── CommonTokenStream.h
│       │           ├── ConsoleErrorListener.cpp
│       │           ├── ConsoleErrorListener.h
│       │           ├── DefaultErrorStrategy.cpp
│       │           ├── DefaultErrorStrategy.h
│       │           ├── DiagnosticErrorListener.cpp
│       │           ├── DiagnosticErrorListener.h
│       │           ├── Exceptions.cpp
│       │           ├── Exceptions.h
│       │           ├── FailedPredicateException.cpp
│       │           ├── FailedPredicateException.h
│       │           ├── InputMismatchException.cpp
│       │           ├── InputMismatchException.h
│       │           ├── IntStream.cpp
│       │           ├── IntStream.h
│       │           ├── InterpreterRuleContext.cpp
│       │           ├── InterpreterRuleContext.h
│       │           ├── Lexer.cpp
│       │           ├── Lexer.h
│       │           ├── LexerInterpreter.cpp
│       │           ├── LexerInterpreter.h
│       │           ├── LexerNoViableAltException.cpp
│       │           ├── LexerNoViableAltException.h
│       │           ├── ListTokenSource.cpp
│       │           ├── ListTokenSource.h
│       │           ├── NoViableAltException.cpp
│       │           ├── NoViableAltException.h
│       │           ├── Parser.cpp
│       │           ├── Parser.h
│       │           ├── ParserInterpreter.cpp
│       │           ├── ParserInterpreter.h
│       │           ├── ParserRuleContext.cpp
│       │           ├── ParserRuleContext.h
│       │           ├── ProxyErrorListener.cpp
│       │           ├── ProxyErrorListener.h
│       │           ├── RecognitionException.cpp
│       │           ├── RecognitionException.h
│       │           ├── Recognizer.cpp
│       │           ├── Recognizer.h
│       │           ├── RuleContext.cpp
│       │           ├── RuleContext.h
│       │           ├── RuleContextWithAltNum.cpp
│       │           ├── RuleContextWithAltNum.h
│       │           ├── RuntimeMetaData.cpp
│       │           ├── RuntimeMetaData.h
│       │           ├── Token.cpp
│       │           ├── Token.h
│       │           ├── TokenFactory.h
│       │           ├── TokenSource.cpp
│       │           ├── TokenSource.h
│       │           ├── TokenStream.cpp
│       │           ├── TokenStream.h
│       │           ├── TokenStreamRewriter.cpp
│       │           ├── TokenStreamRewriter.h
│       │           ├── UnbufferedCharStream.cpp
│       │           ├── UnbufferedCharStream.h
│       │           ├── UnbufferedTokenStream.cpp
│       │           ├── UnbufferedTokenStream.h
│       │           ├── Vocabulary.cpp
│       │           ├── Vocabulary.h
│       │           ├── WritableToken.cpp
│       │           ├── WritableToken.h
│       │           ├── antlr4-common.h
│       │           ├── antlr4-runtime.h
│       │           ├── atn/
│       │           │   ├── ATN.cpp
│       │           │   ├── ATN.h
│       │           │   ├── ATNConfig.cpp
│       │           │   ├── ATNConfig.h
│       │           │   ├── ATNConfigSet.cpp
│       │           │   ├── ATNConfigSet.h
│       │           │   ├── ATNDeserializationOptions.cpp
│       │           │   ├── ATNDeserializationOptions.h
│       │           │   ├── ATNDeserializer.cpp
│       │           │   ├── ATNDeserializer.h
│       │           │   ├── ATNSerializer.cpp
│       │           │   ├── ATNSerializer.h
│       │           │   ├── ATNSimulator.cpp
│       │           │   ├── ATNSimulator.h
│       │           │   ├── ATNState.cpp
│       │           │   ├── ATNState.h
│       │           │   ├── ATNType.h
│       │           │   ├── AbstractPredicateTransition.cpp
│       │           │   ├── AbstractPredicateTransition.h
│       │           │   ├── ActionTransition.cpp
│       │           │   ├── ActionTransition.h
│       │           │   ├── AmbiguityInfo.cpp
│       │           │   ├── AmbiguityInfo.h
│       │           │   ├── ArrayPredictionContext.cpp
│       │           │   ├── ArrayPredictionContext.h
│       │           │   ├── AtomTransition.cpp
│       │           │   ├── AtomTransition.h
│       │           │   ├── BasicBlockStartState.cpp
│       │           │   ├── BasicBlockStartState.h
│       │           │   ├── BasicState.cpp
│       │           │   ├── BasicState.h
│       │           │   ├── BlockEndState.cpp
│       │           │   ├── BlockEndState.h
│       │           │   ├── BlockStartState.cpp
│       │           │   ├── BlockStartState.h
│       │           │   ├── ContextSensitivityInfo.cpp
│       │           │   ├── ContextSensitivityInfo.h
│       │           │   ├── DecisionEventInfo.cpp
│       │           │   ├── DecisionEventInfo.h
│       │           │   ├── DecisionInfo.cpp
│       │           │   ├── DecisionInfo.h
│       │           │   ├── DecisionState.cpp
│       │           │   ├── DecisionState.h
│       │           │   ├── EmptyPredictionContext.cpp
│       │           │   ├── EmptyPredictionContext.h
│       │           │   ├── EpsilonTransition.cpp
│       │           │   ├── EpsilonTransition.h
│       │           │   ├── ErrorInfo.cpp
│       │           │   ├── ErrorInfo.h
│       │           │   ├── LL1Analyzer.cpp
│       │           │   ├── LL1Analyzer.h
│       │           │   ├── LexerATNConfig.cpp
│       │           │   ├── LexerATNConfig.h
│       │           │   ├── LexerATNSimulator.cpp
│       │           │   ├── LexerATNSimulator.h
│       │           │   ├── LexerAction.cpp
│       │           │   ├── LexerAction.h
│       │           │   ├── LexerActionExecutor.cpp
│       │           │   ├── LexerActionExecutor.h
│       │           │   ├── LexerActionType.h
│       │           │   ├── LexerChannelAction.cpp
│       │           │   ├── LexerChannelAction.h
│       │           │   ├── LexerCustomAction.cpp
│       │           │   ├── LexerCustomAction.h
│       │           │   ├── LexerIndexedCustomAction.cpp
│       │           │   ├── LexerIndexedCustomAction.h
│       │           │   ├── LexerModeAction.cpp
│       │           │   ├── LexerModeAction.h
│       │           │   ├── LexerMoreAction.cpp
│       │           │   ├── LexerMoreAction.h
│       │           │   ├── LexerPopModeAction.cpp
│       │           │   ├── LexerPopModeAction.h
│       │           │   ├── LexerPushModeAction.cpp
│       │           │   ├── LexerPushModeAction.h
│       │           │   ├── LexerSkipAction.cpp
│       │           │   ├── LexerSkipAction.h
│       │           │   ├── LexerTypeAction.cpp
│       │           │   ├── LexerTypeAction.h
│       │           │   ├── LookaheadEventInfo.cpp
│       │           │   ├── LookaheadEventInfo.h
│       │           │   ├── LoopEndState.cpp
│       │           │   ├── LoopEndState.h
│       │           │   ├── Makefile
│       │           │   ├── NotSetTransition.cpp
│       │           │   ├── NotSetTransition.h
│       │           │   ├── OrderedATNConfigSet.cpp
│       │           │   ├── OrderedATNConfigSet.h
│       │           │   ├── ParseInfo.cpp
│       │           │   ├── ParseInfo.h
│       │           │   ├── ParserATNSimulator.cpp
│       │           │   ├── ParserATNSimulator.h
│       │           │   ├── PlusBlockStartState.cpp
│       │           │   ├── PlusBlockStartState.h
│       │           │   ├── PlusLoopbackState.cpp
│       │           │   ├── PlusLoopbackState.h
│       │           │   ├── PrecedencePredicateTransition.cpp
│       │           │   ├── PrecedencePredicateTransition.h
│       │           │   ├── PredicateEvalInfo.cpp
│       │           │   ├── PredicateEvalInfo.h
│       │           │   ├── PredicateTransition.cpp
│       │           │   ├── PredicateTransition.h
│       │           │   ├── PredictionContext.cpp
│       │           │   ├── PredictionContext.h
│       │           │   ├── PredictionMode.cpp
│       │           │   ├── PredictionMode.h
│       │           │   ├── ProfilingATNSimulator.cpp
│       │           │   ├── ProfilingATNSimulator.h
│       │           │   ├── RangeTransition.cpp
│       │           │   ├── RangeTransition.h
│       │           │   ├── RuleStartState.cpp
│       │           │   ├── RuleStartState.h
│       │           │   ├── RuleStopState.cpp
│       │           │   ├── RuleStopState.h
│       │           │   ├── RuleTransition.cpp
│       │           │   ├── RuleTransition.h
│       │           │   ├── SemanticContext.cpp
│       │           │   ├── SemanticContext.h
│       │           │   ├── SetTransition.cpp
│       │           │   ├── SetTransition.h
│       │           │   ├── SingletonPredictionContext.cpp
│       │           │   ├── SingletonPredictionContext.h
│       │           │   ├── StarBlockStartState.cpp
│       │           │   ├── StarBlockStartState.h
│       │           │   ├── StarLoopEntryState.cpp
│       │           │   ├── StarLoopEntryState.h
│       │           │   ├── StarLoopbackState.cpp
│       │           │   ├── StarLoopbackState.h
│       │           │   ├── TokensStartState.cpp
│       │           │   ├── TokensStartState.h
│       │           │   ├── Transition.cpp
│       │           │   ├── Transition.h
│       │           │   ├── WildcardTransition.cpp
│       │           │   └── WildcardTransition.h
│       │           ├── dfa/
│       │           │   ├── DFA.cpp
│       │           │   ├── DFA.h
│       │           │   ├── DFASerializer.cpp
│       │           │   ├── DFASerializer.h
│       │           │   ├── DFAState.cpp
│       │           │   ├── DFAState.h
│       │           │   ├── LexerDFASerializer.cpp
│       │           │   └── LexerDFASerializer.h
│       │           ├── misc/
│       │           │   ├── InterpreterDataReader.cpp
│       │           │   ├── InterpreterDataReader.h
│       │           │   ├── Interval.cpp
│       │           │   ├── Interval.h
│       │           │   ├── IntervalSet.cpp
│       │           │   ├── IntervalSet.h
│       │           │   ├── MurmurHash.cpp
│       │           │   ├── MurmurHash.h
│       │           │   ├── Predicate.cpp
│       │           │   └── Predicate.h
│       │           ├── support/
│       │           │   ├── Any.cpp
│       │           │   ├── Any.h
│       │           │   ├── Arrays.cpp
│       │           │   ├── Arrays.h
│       │           │   ├── BitSet.h
│       │           │   ├── CPPUtils.cpp
│       │           │   ├── CPPUtils.h
│       │           │   ├── Casts.h
│       │           │   ├── Declarations.h
│       │           │   ├── Guid.cpp
│       │           │   ├── Guid.h
│       │           │   ├── StringUtils.cpp
│       │           │   └── StringUtils.h
│       │           └── tree/
│       │               ├── AbstractParseTreeVisitor.h
│       │               ├── ErrorNode.cpp
│       │               ├── ErrorNode.h
│       │               ├── ErrorNodeImpl.cpp
│       │               ├── ErrorNodeImpl.h
│       │               ├── IterativeParseTreeWalker.cpp
│       │               ├── IterativeParseTreeWalker.h
│       │               ├── ParseTree.cpp
│       │               ├── ParseTree.h
│       │               ├── ParseTreeListener.cpp
│       │               ├── ParseTreeListener.h
│       │               ├── ParseTreeProperty.h
│       │               ├── ParseTreeVisitor.cpp
│       │               ├── ParseTreeVisitor.h
│       │               ├── ParseTreeWalker.cpp
│       │               ├── ParseTreeWalker.h
│       │               ├── TerminalNode.cpp
│       │               ├── TerminalNode.h
│       │               ├── TerminalNodeImpl.cpp
│       │               ├── TerminalNodeImpl.h
│       │               ├── Trees.cpp
│       │               ├── Trees.h
│       │               ├── pattern/
│       │               │   ├── Chunk.cpp
│       │               │   ├── Chunk.h
│       │               │   ├── ParseTreeMatch.cpp
│       │               │   ├── ParseTreeMatch.h
│       │               │   ├── ParseTreePattern.cpp
│       │               │   ├── ParseTreePattern.h
│       │               │   ├── ParseTreePatternMatcher.cpp
│       │               │   ├── ParseTreePatternMatcher.h
│       │               │   ├── RuleTagToken.cpp
│       │               │   ├── RuleTagToken.h
│       │               │   ├── TagChunk.cpp
│       │               │   ├── TagChunk.h
│       │               │   ├── TextChunk.cpp
│       │               │   ├── TextChunk.h
│       │               │   ├── TokenTagToken.cpp
│       │               │   └── TokenTagToken.h
│       │               └── xpath/
│       │                   ├── XPath.cpp
│       │                   ├── XPath.h
│       │                   ├── XPathElement.cpp
│       │                   ├── XPathElement.h
│       │                   ├── XPathLexer.cpp
│       │                   ├── XPathLexer.g4
│       │                   ├── XPathLexer.h
│       │                   ├── XPathLexer.tokens
│       │                   ├── XPathLexerErrorListener.cpp
│       │                   ├── XPathLexerErrorListener.h
│       │                   ├── XPathRuleAnywhereElement.cpp
│       │                   ├── XPathRuleAnywhereElement.h
│       │                   ├── XPathRuleElement.cpp
│       │                   ├── XPathRuleElement.h
│       │                   ├── XPathTokenAnywhereElement.cpp
│       │                   ├── XPathTokenAnywhereElement.h
│       │                   ├── XPathTokenElement.cpp
│       │                   ├── XPathTokenElement.h
│       │                   ├── XPathWildcardAnywhereElement.cpp
│       │                   ├── XPathWildcardAnywhereElement.h
│       │                   ├── XPathWildcardElement.cpp
│       │                   └── XPathWildcardElement.h
│       ├── google_snappy/
│       │   ├── AUTHORS
│       │   ├── CMakeLists.txt
│       │   ├── COPYING
│       │   ├── README.md
│       │   ├── cmake/
│       │   │   ├── SnappyConfig.cmake.in
│       │   │   └── config.h.in
│       │   ├── snappy-internal.h
│       │   ├── snappy-sinksource.cc
│       │   ├── snappy-sinksource.h
│       │   ├── snappy-stubs-internal.cc
│       │   ├── snappy-stubs-internal.h
│       │   ├── snappy-stubs-public.h.in
│       │   ├── snappy.cc
│       │   └── snappy.h
│       ├── lz4/
│       │   ├── CMakeLists.txt
│       │   ├── lz4.c
│       │   └── lz4.h
│       ├── lzokay/
│       │   ├── CMakeLists.txt
│       │   ├── LICENSE
│       │   ├── lzokay.cpp
│       │   └── lzokay.hpp
│       └── simde-0.8.4-rc3/
│           ├── .all-contributorsrc
│           ├── .appveyor.yml
│           ├── .azure-pipelines.yml
│           ├── .circleci/
│           │   └── config.yml
│           ├── .cirrus.yml
│           ├── .dockerignore
│           ├── .drone.star.disabled
│           ├── .editorconfig
│           ├── .github/
│           │   ├── actionlint-matcher.json
│           │   ├── dependabot.yml
│           │   └── workflows/
│           │       ├── actionlint.yml
│           │       ├── ci.yml
│           │       ├── cmake.yml
│           │       ├── codeql-analysis.yml
│           │       ├── deploy.yml
│           │       ├── gcc-snapshot.yml
│           │       ├── ossar-analysis.yml
│           │       └── pr-cleanup.yml
│           ├── .gitignore
│           ├── .gitmodules
│           ├── .mailmap
│           ├── .no-test/
│           │   └── README.md
│           ├── .packit/
│           │   ├── README.md
│           │   ├── ci.sh
│           │   └── simde.spec
│           ├── .packit.yml
│           ├── .semaphore/
│           │   └── semaphore.yml
│           ├── .travis.yml
│           ├── CMakeLists.txt
│           ├── CONTRIBUTING.md
│           ├── COPYING
│           ├── README.md
│           ├── amalgamate.py
│           ├── codecov.yml
│           ├── docker/
│           │   ├── Dockerfile
│           │   ├── Dockerfile.ubuntu
│           │   ├── Dockerfile.ubuntu_bionic
│           │   ├── README.md
│           │   ├── bin/
│           │   │   ├── arch2gcc.sh
│           │   │   ├── simde-check-all.sh
│           │   │   └── simde-reset-build.sh
│           │   ├── cross-files/
│           │   │   ├── aarch64+sve-clang-10.cross
│           │   │   ├── aarch64+sve-clang-11.cross
│           │   │   ├── aarch64+sve-clang-12.cross
│           │   │   ├── aarch64+sve-clang-13.cross
│           │   │   ├── aarch64+sve-clang-14.cross
│           │   │   ├── aarch64+sve-clang-15.cross
│           │   │   ├── aarch64+sve-gcc-10.cross
│           │   │   ├── aarch64+sve-gcc-11.cross
│           │   │   ├── aarch64+sve-gcc-12.cross
│           │   │   ├── aarch64-clang-10.cross
│           │   │   ├── aarch64-clang-11.cross
│           │   │   ├── aarch64-clang-12.cross
│           │   │   ├── aarch64-clang-13-debflags.cross
│           │   │   ├── aarch64-clang-13.cross
│           │   │   ├── aarch64-clang-14-debflags.cross
│           │   │   ├── aarch64-clang-14.cross
│           │   │   ├── aarch64-clang-15-ccache.cross
│           │   │   ├── aarch64-clang-15-debflags.cross
│           │   │   ├── aarch64-clang-15.cross
│           │   │   ├── aarch64-clang-16-ccache.cross
│           │   │   ├── aarch64-clang-17-ccache.cross
│           │   │   ├── aarch64-clang-18-ccache.cross
│           │   │   ├── aarch64-clang-18-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-19-ccache.cross
│           │   │   ├── aarch64-clang-19-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-20-ccache.cross
│           │   │   ├── aarch64-clang-20-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-21-ccache.cross
│           │   │   ├── aarch64-clang-21-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-22-ccache.cross
│           │   │   ├── aarch64-clang-22-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-23-ccache.cross
│           │   │   ├── aarch64-clang-23-no-extras-ccache.cross
│           │   │   ├── aarch64-clang-6.cross
│           │   │   ├── aarch64-clang-7.cross
│           │   │   ├── aarch64-clang-8.cross
│           │   │   ├── aarch64-clang-9.cross
│           │   │   ├── aarch64-gcc-10.cross
│           │   │   ├── aarch64-gcc-11-ccache.cross
│           │   │   ├── aarch64-gcc-11-debflags.cross
│           │   │   ├── aarch64-gcc-11.cross
│           │   │   ├── aarch64-gcc-12-ccache.cross
│           │   │   ├── aarch64-gcc-12-debflags.cross
│           │   │   ├── aarch64-gcc-12.cross
│           │   │   ├── aarch64-gcc-13-ccache.cross
│           │   │   ├── aarch64-gcc-14-ccache.cross
│           │   │   ├── aarch64-gcc-14-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-15-ccache.cross
│           │   │   ├── aarch64-gcc-15-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-16-ccache.cross
│           │   │   ├── aarch64-gcc-16-no-extras-ccache.cross
│           │   │   ├── aarch64-gcc-7.cross
│           │   │   ├── aarch64-gcc-8.cross
│           │   │   ├── aarch64-gcc-9.cross
│           │   │   ├── armel-clang-15-ccache.cross
│           │   │   ├── armel-clang-16-ccache.cross
│           │   │   ├── armel-clang-17-ccache.cross
│           │   │   ├── armel-clang-18-ccache.cross
│           │   │   ├── armel-clang-19-ccache.cross
│           │   │   ├── armel-clang-20-ccache.cross
│           │   │   ├── armel-clang-21-ccache.cross
│           │   │   ├── armel-clang-22-ccache.cross
│           │   │   ├── armel-clang-23-ccache.cross
│           │   │   ├── armel-gcc-11-debflags.cross
│           │   │   ├── armel-gcc-12-ccache.cross
│           │   │   ├── armel-gcc-12-debflags.cross
│           │   │   ├── armel-gcc-13-ccache.cross
│           │   │   ├── armel-gcc-14-ccache.cross
│           │   │   ├── armel-gcc-15-ccache.cross
│           │   │   ├── armel-gcc-16-ccache.cross
│           │   │   ├── armhf-gcc-11-debflags.cross
│           │   │   ├── armhf-gcc-12-debflags.cross
│           │   │   ├── armv7-clang-11.cross
│           │   │   ├── armv7-clang-12.cross
│           │   │   ├── armv7-clang-13.cross
│           │   │   ├── armv7-clang-14.cross
│           │   │   ├── armv7-clang-15-ccache.cross
│           │   │   ├── armv7-clang-15.cross
│           │   │   ├── armv7-clang-16-ccache.cross
│           │   │   ├── armv7-clang-17-ccache.cross
│           │   │   ├── armv7-clang-18-ccache.cross
│           │   │   ├── armv7-clang-19-ccache.cross
│           │   │   ├── armv7-clang-20-ccache.cross
│           │   │   ├── armv7-clang-21-ccache.cross
│           │   │   ├── armv7-clang-22-ccache.cross
│           │   │   ├── armv7-clang-23-ccache.cross
│           │   │   ├── armv7-clang-6.cross
│           │   │   ├── armv7-gcc-10.cross
│           │   │   ├── armv7-gcc-11.cross
│           │   │   ├── armv7-gcc-12-ccache.cross
│           │   │   ├── armv7-gcc-12.cross
│           │   │   ├── armv7-gcc-13-ccache.cross
│           │   │   ├── armv7-gcc-14-ccache.cross
│           │   │   ├── armv7-gcc-15-ccache.cross
│           │   │   ├── armv7-gcc-16-ccache.cross
│           │   │   ├── armv7-gcc-8.cross
│           │   │   ├── armv8+mve-gcc-10.cross
│           │   │   ├── armv8+mve-gcc-11.cross
│           │   │   ├── armv8+mve-gcc-12.cross
│           │   │   ├── armv8-clang-10.cross
│           │   │   ├── armv8-clang-11.cross
│           │   │   ├── armv8-clang-12.cross
│           │   │   ├── armv8-clang-13.cross
│           │   │   ├── armv8-clang-14.cross
│           │   │   ├── armv8-clang-15.cross
│           │   │   ├── armv8-clang-6.cross
│           │   │   ├── armv8-clang-8.cross
│           │   │   ├── armv8-clang-9.cross
│           │   │   ├── armv8-gcc-10.cross
│           │   │   ├── armv8-gcc-11.cross
│           │   │   ├── armv8-gcc-12-32bit-ccache.cross
│           │   │   ├── armv8-gcc-12.cross
│           │   │   ├── armv8-gcc-13-32bit-ccache.cross
│           │   │   ├── armv8-gcc-14-32bit-ccache.cross
│           │   │   ├── armv8-gcc-15-32bit-ccache.cross
│           │   │   ├── armv8-gcc-16-32bit-ccache.cross
│           │   │   ├── armv8-gcc-9.cross
│           │   │   ├── clang-10.cross
│           │   │   ├── clang-11-debflags.cross
│           │   │   ├── clang-11.cross
│           │   │   ├── clang-12.cross
│           │   │   ├── clang-13.cross
│           │   │   ├── clang-14.cross
│           │   │   ├── clang-15.cross
│           │   │   ├── clang-16.cross
│           │   │   ├── clang-17.cross
│           │   │   ├── clang-3.9.cross
│           │   │   ├── clang-4.cross
│           │   │   ├── clang-5.cross
│           │   │   ├── clang-6.cross
│           │   │   ├── clang-7.cross
│           │   │   ├── clang-8.cross
│           │   │   ├── clang-9.cross
│           │   │   ├── emscripten32-relaxed.cross
│           │   │   ├── emscripten32.cross
│           │   │   ├── emscripten64-relaxed.cross
│           │   │   ├── emscripten64.cross
│           │   │   ├── gcc-10-fast-math.cross
│           │   │   ├── gcc-10.cross
│           │   │   ├── gcc-11-debflags.cross
│           │   │   ├── gcc-11-fast-math.cross
│           │   │   ├── gcc-11.cross
│           │   │   ├── gcc-12-debflags.cross
│           │   │   ├── gcc-12-fast-math.cross
│           │   │   ├── gcc-12-native.cross
│           │   │   ├── gcc-12.cross
│           │   │   ├── gcc-5.cross
│           │   │   ├── gcc-6.cross
│           │   │   ├── gcc-7.cross
│           │   │   ├── gcc-8.cross
│           │   │   ├── gcc-9.cross
│           │   │   ├── i686-all-gcc-10.cross
│           │   │   ├── i686-all-gcc-11.cross
│           │   │   ├── i686-all-gcc-12.cross
│           │   │   ├── i686-all-gcc-9.cross
│           │   │   ├── i686-clang-10.cross
│           │   │   ├── i686-clang-11.cross
│           │   │   ├── i686-clang-12.cross
│           │   │   ├── i686-clang-13.cross
│           │   │   ├── i686-clang-14.cross
│           │   │   ├── i686-clang-15.cross
│           │   │   ├── i686-gcc-10-debflags.cross
│           │   │   ├── i686-gcc-10.cross
│           │   │   ├── i686-gcc-11-debflags.cross
│           │   │   ├── i686-gcc-11-qemu-ccache.cross
│           │   │   ├── i686-gcc-11-qemu.cross
│           │   │   ├── i686-gcc-11.cross
│           │   │   ├── i686-gcc-12-debflags.cross
│           │   │   ├── i686-gcc-12-qemu-ccache.cross
│           │   │   ├── i686-gcc-12.cross
│           │   │   ├── i686-gcc-14.cross
│           │   │   ├── i686-gcc-9.cross
│           │   │   ├── i686-gcc-qemu-ccache.cross
│           │   │   ├── i686-gcc-qemu.cross
│           │   │   ├── icc.cross
│           │   │   ├── icx.cross
│           │   │   ├── intel-all-clang-10.cross
│           │   │   ├── intel-all-clang-11.cross
│           │   │   ├── intel-all-clang-12.cross
│           │   │   ├── intel-all-clang-13.cross
│           │   │   ├── intel-all-clang-14.cross
│           │   │   ├── intel-all-clang-15.cross
│           │   │   ├── intel-all-clang-7.cross
│           │   │   ├── intel-all-clang-8.cross
│           │   │   ├── intel-all-clang-9.cross
│           │   │   ├── intel-all-gcc-10.cross
│           │   │   ├── intel-all-gcc-11.cross
│           │   │   ├── intel-all-gcc-12.cross
│           │   │   ├── intel-all-gcc-8.cross
│           │   │   ├── intel-all-icc.cross
│           │   │   ├── intel-all-icx.cross
│           │   │   ├── loongarch64-clang-18-ccache.cross
│           │   │   ├── loongarch64-clang-19-ccache.cross
│           │   │   ├── loongarch64-clang-20-ccache.cross
│           │   │   ├── loongarch64-clang-21-ccache.cross
│           │   │   ├── loongarch64-clang-22-ccache.cross
│           │   │   ├── loongarch64-clang-23-ccache.cross
│           │   │   ├── loongarch64-gcc-13-ccache.cross
│           │   │   ├── loongarch64-gcc-13.cross
│           │   │   ├── loongarch64-gcc-14-ccache.cross
│           │   │   ├── loongarch64-gcc-15-ccache.cross
│           │   │   ├── loongarch64-gcc-16-ccache.cross
│           │   │   ├── loongson-gcc-10.cross
│           │   │   ├── loongson-gcc-11.cross
│           │   │   ├── loongson-gcc-12.cross
│           │   │   ├── loongson-gcc-ccache.cross
│           │   │   ├── loongson-gcc.cross
│           │   │   ├── mips64el+msa-gcc-10.cross
│           │   │   ├── mips64el+msa-gcc-11.cross
│           │   │   ├── mips64el+msa-gcc-12.cross
│           │   │   ├── mips64el-clang-11.cross
│           │   │   ├── mips64el-clang-12.cross
│           │   │   ├── mips64el-clang-13.cross
│           │   │   ├── mips64el-clang-14.cross
│           │   │   ├── mips64el-clang-15.cross
│           │   │   ├── mips64el-clang-16-ccache.cross
│           │   │   ├── mips64el-clang-16.cross
│           │   │   ├── mips64el-clang-17-ccache.cross
│           │   │   ├── mips64el-clang-18-ccache.cross
│           │   │   ├── mips64el-gcc-10.cross
│           │   │   ├── mips64el-gcc-11.cross
│           │   │   ├── mips64el-gcc-12-ccache.cross
│           │   │   ├── mips64el-gcc-12.cross
│           │   │   ├── mips64el-gcc-13-ccache.cross
│           │   │   ├── mips64el-gcc-14-ccache.cross
│           │   │   ├── mips64el-gcc-15-ccache.cross
│           │   │   ├── mips64el-gcc-16-ccache.cross
│           │   │   ├── power8-clang-9.cross
│           │   │   ├── power8-gcc-10.cross
│           │   │   ├── power9-clang-10.cross
│           │   │   ├── power9-clang-11.cross
│           │   │   ├── power9-clang-12.cross
│           │   │   ├── power9-clang-13.cross
│           │   │   ├── power9-clang-14.cross
│           │   │   ├── power9-clang-15-ccache.cross
│           │   │   ├── power9-clang-15.cross
│           │   │   ├── power9-gcc-10.cross
│           │   │   ├── power9-gcc-11.cross
│           │   │   ├── power9-gcc-12-ccache.cross
│           │   │   ├── power9-gcc-12.cross
│           │   │   ├── power9-gcc-13-ccache.cross
│           │   │   ├── power9-gcc-14-ccache.cross
│           │   │   ├── power9-gcc-15-ccache.cross
│           │   │   ├── power9-gcc-16-ccache.cross
│           │   │   ├── ppc64el-clang-14.cross
│           │   │   ├── ppc64el-clang-15-ccache.cross
│           │   │   ├── ppc64el-clang-15.cross
│           │   │   ├── ppc64el-clang-16-ccache.cross
│           │   │   ├── ppc64el-clang-17-ccache.cross
│           │   │   ├── ppc64el-clang-18-ccache.cross
│           │   │   ├── ppc64el-clang-19-ccache.cross
│           │   │   ├── ppc64el-clang-20-ccache.cross
│           │   │   ├── ppc64el-clang-21-ccache.cross
│           │   │   ├── ppc64el-clang-22-ccache.cross
│           │   │   ├── ppc64el-clang-23-ccache.cross
│           │   │   ├── ppc64el-gcc-10-debflags.cross
│           │   │   ├── ppc64el-gcc-10.cross
│           │   │   ├── ppc64el-gcc-11-debflags.cross
│           │   │   ├── ppc64el-gcc-11.cross
│           │   │   ├── ppc64el-gcc-12-debflags.cross
│           │   │   ├── ppc64el-gcc-12.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen128_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen256_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64-clang-18-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64_zvfh-clang-17-ccache.cross
│           │   │   ├── riscv64+rvv_vlen512_elen64_zvfh-clang-18-ccache.cross
│           │   │   ├── riscv64-clang-10.cross
│           │   │   ├── riscv64-clang-11.cross
│           │   │   ├── riscv64-clang-12.cross
│           │   │   ├── riscv64-clang-13.cross
│           │   │   ├── riscv64-clang-14.cross
│           │   │   ├── riscv64-clang-15-ccache.cross
│           │   │   ├── riscv64-clang-15.cross
│           │   │   ├── riscv64-clang-16-ccache.cross
│           │   │   ├── riscv64-clang-16.cross
│           │   │   ├── riscv64-clang-17-ccache.cross
│           │   │   ├── riscv64-clang-17.cross
│           │   │   ├── riscv64-clang-18-ccache.cross
│           │   │   ├── riscv64-clang-19-ccache.cross
│           │   │   ├── riscv64-clang-20-ccache.cross
│           │   │   ├── riscv64-clang-21-ccache.cross
│           │   │   ├── riscv64-clang-22-ccache.cross
│           │   │   ├── riscv64-clang-23-ccache.cross
│           │   │   ├── riscv64-clang-9.cross
│           │   │   ├── riscv64-gcc-10.cross
│           │   │   ├── riscv64-gcc-11.cross
│           │   │   ├── riscv64-gcc-12-O3-ccache.cross
│           │   │   ├── riscv64-gcc-12-ccache.cross
│           │   │   ├── riscv64-gcc-12.cross
│           │   │   ├── riscv64-gcc-13-O3-ccache.cross
│           │   │   ├── riscv64-gcc-13-ccache.cross
│           │   │   ├── riscv64-gcc-14-O3-ccache.cross
│           │   │   ├── riscv64-gcc-14-ccache.cross
│           │   │   ├── riscv64-gcc-15-O3-ccache.cross
│           │   │   ├── riscv64-gcc-15-ccache.cross
│           │   │   ├── riscv64-gcc-16-O3-ccache.cross
│           │   │   ├── riscv64-gcc-16-ccache.cross
│           │   │   ├── s390x-clang-11.cross
│           │   │   ├── s390x-clang-12.cross
│           │   │   ├── s390x-clang-13.cross
│           │   │   ├── s390x-clang-14.cross
│           │   │   ├── s390x-clang-15-ccache.cross
│           │   │   ├── s390x-clang-15.cross
│           │   │   ├── s390x-clang-16-ccache.cross
│           │   │   ├── s390x-clang-17-ccache.cross
│           │   │   ├── s390x-clang-18-ccache.cross
│           │   │   ├── s390x-clang-19-ccache.cross
│           │   │   ├── s390x-clang-20-ccache.cross
│           │   │   ├── s390x-clang-21-ccache.cross
│           │   │   ├── s390x-clang-22-ccache.cross
│           │   │   ├── s390x-clang-23-ccache.cross
│           │   │   ├── s390x-gcc-10.cross
│           │   │   ├── s390x-gcc-11-debflags.cross
│           │   │   ├── s390x-gcc-11.cross
│           │   │   ├── s390x-gcc-12-ccache.cross
│           │   │   ├── s390x-gcc-12-debflags.cross
│           │   │   ├── s390x-gcc-12.cross
│           │   │   ├── s390x-gcc-13-ccache.cross
│           │   │   ├── s390x-gcc-14-ccache.cross
│           │   │   ├── s390x-gcc-15-ccache.cross
│           │   │   ├── s390x-gcc-16-ccache.cross
│           │   │   ├── s390x-gcc-8.cross
│           │   │   ├── s390x-gcc-9.cross
│           │   │   ├── sleef-gcc-10.cross
│           │   │   ├── sleef-gcc-11.cross
│           │   │   └── sleef-gcc-12.cross
│           │   └── simde-dev.sh
│           ├── meson.build
│           ├── meson_options.txt
│           ├── netlify-disable.toml
│           ├── simde/
│           │   ├── arm/
│           │   │   ├── neon/
│           │   │   │   ├── aba.h
│           │   │   │   ├── abal.h
│           │   │   │   ├── abal_high.h
│           │   │   │   ├── abd.h
│           │   │   │   ├── abdl.h
│           │   │   │   ├── abdl_high.h
│           │   │   │   ├── abs.h
│           │   │   │   ├── add.h
│           │   │   │   ├── addhn.h
│           │   │   │   ├── addhn_high.h
│           │   │   │   ├── addl.h
│           │   │   │   ├── addl_high.h
│           │   │   │   ├── addlv.h
│           │   │   │   ├── addv.h
│           │   │   │   ├── addw.h
│           │   │   │   ├── addw_high.h
│           │   │   │   ├── aes.h
│           │   │   │   ├── and.h
│           │   │   │   ├── bcax.h
│           │   │   │   ├── bic.h
│           │   │   │   ├── bsl.h
│           │   │   │   ├── cadd_rot270.h
│           │   │   │   ├── cadd_rot90.h
│           │   │   │   ├── cage.h
│           │   │   │   ├── cagt.h
│           │   │   │   ├── cale.h
│           │   │   │   ├── calt.h
│           │   │   │   ├── ceq.h
│           │   │   │   ├── ceqz.h
│           │   │   │   ├── cge.h
│           │   │   │   ├── cgez.h
│           │   │   │   ├── cgt.h
│           │   │   │   ├── cgtz.h
│           │   │   │   ├── cle.h
│           │   │   │   ├── clez.h
│           │   │   │   ├── cls.h
│           │   │   │   ├── clt.h
│           │   │   │   ├── cltz.h
│           │   │   │   ├── clz.h
│           │   │   │   ├── cmla.h
│           │   │   │   ├── cmla_lane.h
│           │   │   │   ├── cmla_rot180.h
│           │   │   │   ├── cmla_rot180_lane.h
│           │   │   │   ├── cmla_rot270.h
│           │   │   │   ├── cmla_rot270_lane.h
│           │   │   │   ├── cmla_rot90.h
│           │   │   │   ├── cmla_rot90_lane.h
│           │   │   │   ├── cnt.h
│           │   │   │   ├── combine.h
│           │   │   │   ├── copy_lane.h
│           │   │   │   ├── crc32.h
│           │   │   │   ├── create.h
│           │   │   │   ├── cvt.h
│           │   │   │   ├── cvt_n.h
│           │   │   │   ├── cvtm.h
│           │   │   │   ├── cvtn.h
│           │   │   │   ├── cvtp.h
│           │   │   │   ├── div.h
│           │   │   │   ├── dot.h
│           │   │   │   ├── dot_lane.h
│           │   │   │   ├── dup_lane.h
│           │   │   │   ├── dup_n.h
│           │   │   │   ├── eor.h
│           │   │   │   ├── ext.h
│           │   │   │   ├── fma.h
│           │   │   │   ├── fma_lane.h
│           │   │   │   ├── fma_n.h
│           │   │   │   ├── fmlal.h
│           │   │   │   ├── fmlsl.h
│           │   │   │   ├── fms.h
│           │   │   │   ├── fms_lane.h
│           │   │   │   ├── fms_n.h
│           │   │   │   ├── get_high.h
│           │   │   │   ├── get_lane.h
│           │   │   │   ├── get_low.h
│           │   │   │   ├── hadd.h
│           │   │   │   ├── hsub.h
│           │   │   │   ├── ld1.h
│           │   │   │   ├── ld1_dup.h
│           │   │   │   ├── ld1_lane.h
│           │   │   │   ├── ld1_x2.h
│           │   │   │   ├── ld1_x3.h
│           │   │   │   ├── ld1_x4.h
│           │   │   │   ├── ld1q_x2.h
│           │   │   │   ├── ld1q_x3.h
│           │   │   │   ├── ld1q_x4.h
│           │   │   │   ├── ld2.h
│           │   │   │   ├── ld2_dup.h
│           │   │   │   ├── ld2_lane.h
│           │   │   │   ├── ld3.h
│           │   │   │   ├── ld3_dup.h
│           │   │   │   ├── ld3_lane.h
│           │   │   │   ├── ld4.h
│           │   │   │   ├── ld4_dup.h
│           │   │   │   ├── ld4_lane.h
│           │   │   │   ├── max.h
│           │   │   │   ├── maxnm.h
│           │   │   │   ├── maxnmv.h
│           │   │   │   ├── maxv.h
│           │   │   │   ├── min.h
│           │   │   │   ├── minnm.h
│           │   │   │   ├── minnmv.h
│           │   │   │   ├── minv.h
│           │   │   │   ├── mla.h
│           │   │   │   ├── mla_lane.h
│           │   │   │   ├── mla_n.h
│           │   │   │   ├── mlal.h
│           │   │   │   ├── mlal_high.h
│           │   │   │   ├── mlal_high_lane.h
│           │   │   │   ├── mlal_high_n.h
│           │   │   │   ├── mlal_lane.h
│           │   │   │   ├── mlal_n.h
│           │   │   │   ├── mls.h
│           │   │   │   ├── mls_lane.h
│           │   │   │   ├── mls_n.h
│           │   │   │   ├── mlsl.h
│           │   │   │   ├── mlsl_high.h
│           │   │   │   ├── mlsl_high_lane.h
│           │   │   │   ├── mlsl_high_n.h
│           │   │   │   ├── mlsl_lane.h
│           │   │   │   ├── mlsl_n.h
│           │   │   │   ├── mmlaq.h
│           │   │   │   ├── movl.h
│           │   │   │   ├── movl_high.h
│           │   │   │   ├── movn.h
│           │   │   │   ├── movn_high.h
│           │   │   │   ├── mul.h
│           │   │   │   ├── mul_lane.h
│           │   │   │   ├── mul_n.h
│           │   │   │   ├── mull.h
│           │   │   │   ├── mull_high.h
│           │   │   │   ├── mull_high_lane.h
│           │   │   │   ├── mull_high_n.h
│           │   │   │   ├── mull_lane.h
│           │   │   │   ├── mull_n.h
│           │   │   │   ├── mulx.h
│           │   │   │   ├── mulx_lane.h
│           │   │   │   ├── mulx_n.h
│           │   │   │   ├── mvn.h
│           │   │   │   ├── neg.h
│           │   │   │   ├── orn.h
│           │   │   │   ├── orr.h
│           │   │   │   ├── padal.h
│           │   │   │   ├── padd.h
│           │   │   │   ├── paddl.h
│           │   │   │   ├── pmax.h
│           │   │   │   ├── pmaxnm.h
│           │   │   │   ├── pmin.h
│           │   │   │   ├── pminnm.h
│           │   │   │   ├── qabs.h
│           │   │   │   ├── qadd.h
│           │   │   │   ├── qdmlal.h
│           │   │   │   ├── qdmlal_high.h
│           │   │   │   ├── qdmlal_high_lane.h
│           │   │   │   ├── qdmlal_high_n.h
│           │   │   │   ├── qdmlal_lane.h
│           │   │   │   ├── qdmlal_n.h
│           │   │   │   ├── qdmlsl.h
│           │   │   │   ├── qdmlsl_high.h
│           │   │   │   ├── qdmlsl_high_lane.h
│           │   │   │   ├── qdmlsl_high_n.h
│           │   │   │   ├── qdmlsl_lane.h
│           │   │   │   ├── qdmlsl_n.h
│           │   │   │   ├── qdmulh.h
│           │   │   │   ├── qdmulh_lane.h
│           │   │   │   ├── qdmulh_n.h
│           │   │   │   ├── qdmull.h
│           │   │   │   ├── qdmull_high.h
│           │   │   │   ├── qdmull_high_lane.h
│           │   │   │   ├── qdmull_high_n.h
│           │   │   │   ├── qdmull_lane.h
│           │   │   │   ├── qdmull_n.h
│           │   │   │   ├── qmovn.h
│           │   │   │   ├── qmovn_high.h
│           │   │   │   ├── qmovun.h
│           │   │   │   ├── qmovun_high.h
│           │   │   │   ├── qneg.h
│           │   │   │   ├── qrdmlah.h
│           │   │   │   ├── qrdmlah_lane.h
│           │   │   │   ├── qrdmlsh.h
│           │   │   │   ├── qrdmlsh_lane.h
│           │   │   │   ├── qrdmulh.h
│           │   │   │   ├── qrdmulh_lane.h
│           │   │   │   ├── qrdmulh_n.h
│           │   │   │   ├── qrshl.h
│           │   │   │   ├── qrshrn_high_n.h
│           │   │   │   ├── qrshrn_n.h
│           │   │   │   ├── qrshrun_high_n.h
│           │   │   │   ├── qrshrun_n.h
│           │   │   │   ├── qshl.h
│           │   │   │   ├── qshl_n.h
│           │   │   │   ├── qshlu_n.h
│           │   │   │   ├── qshrn_high_n.h
│           │   │   │   ├── qshrn_n.h
│           │   │   │   ├── qshrun_high_n.h
│           │   │   │   ├── qshrun_n.h
│           │   │   │   ├── qsub.h
│           │   │   │   ├── qtbl.h
│           │   │   │   ├── qtbx.h
│           │   │   │   ├── raddhn.h
│           │   │   │   ├── raddhn_high.h
│           │   │   │   ├── rax.h
│           │   │   │   ├── rbit.h
│           │   │   │   ├── recpe.h
│           │   │   │   ├── recps.h
│           │   │   │   ├── recpx.h
│           │   │   │   ├── reinterpret.h
│           │   │   │   ├── rev16.h
│           │   │   │   ├── rev32.h
│           │   │   │   ├── rev64.h
│           │   │   │   ├── rhadd.h
│           │   │   │   ├── rnd.h
│           │   │   │   ├── rnd32x.h
│           │   │   │   ├── rnd32z.h
│           │   │   │   ├── rnd64x.h
│           │   │   │   ├── rnd64z.h
│           │   │   │   ├── rnda.h
│           │   │   │   ├── rndi.h
│           │   │   │   ├── rndm.h
│           │   │   │   ├── rndn.h
│           │   │   │   ├── rndp.h
│           │   │   │   ├── rndx.h
│           │   │   │   ├── rshl.h
│           │   │   │   ├── rshr_n.h
│           │   │   │   ├── rshrn_high_n.h
│           │   │   │   ├── rshrn_n.h
│           │   │   │   ├── rsqrte.h
│           │   │   │   ├── rsqrts.h
│           │   │   │   ├── rsra_n.h
│           │   │   │   ├── rsubhn.h
│           │   │   │   ├── rsubhn_high.h
│           │   │   │   ├── set_lane.h
│           │   │   │   ├── sha1.h
│           │   │   │   ├── sha256.h
│           │   │   │   ├── sha512.h
│           │   │   │   ├── shl.h
│           │   │   │   ├── shl_n.h
│           │   │   │   ├── shll_high_n.h
│           │   │   │   ├── shll_n.h
│           │   │   │   ├── shr_n.h
│           │   │   │   ├── shrn_high_n.h
│           │   │   │   ├── shrn_n.h
│           │   │   │   ├── sli_n.h
│           │   │   │   ├── sm3.h
│           │   │   │   ├── sm4.h
│           │   │   │   ├── sqadd.h
│           │   │   │   ├── sqrt.h
│           │   │   │   ├── sra_n.h
│           │   │   │   ├── sri_n.h
│           │   │   │   ├── st1.h
│           │   │   │   ├── st1_lane.h
│           │   │   │   ├── st1_x2.h
│           │   │   │   ├── st1_x3.h
│           │   │   │   ├── st1_x4.h
│           │   │   │   ├── st1q_x2.h
│           │   │   │   ├── st1q_x3.h
│           │   │   │   ├── st1q_x4.h
│           │   │   │   ├── st2.h
│           │   │   │   ├── st2_lane.h
│           │   │   │   ├── st3.h
│           │   │   │   ├── st3_lane.h
│           │   │   │   ├── st4.h
│           │   │   │   ├── st4_lane.h
│           │   │   │   ├── sub.h
│           │   │   │   ├── subhn.h
│           │   │   │   ├── subhn_high.h
│           │   │   │   ├── subl.h
│           │   │   │   ├── subl_high.h
│           │   │   │   ├── subw.h
│           │   │   │   ├── subw_high.h
│           │   │   │   ├── sudot_lane.h
│           │   │   │   ├── tbl.h
│           │   │   │   ├── tbx.h
│           │   │   │   ├── trn.h
│           │   │   │   ├── trn1.h
│           │   │   │   ├── trn2.h
│           │   │   │   ├── tst.h
│           │   │   │   ├── types.h
│           │   │   │   ├── uqadd.h
│           │   │   │   ├── usdot.h
│           │   │   │   ├── usdot_lane.h
│           │   │   │   ├── uzp.h
│           │   │   │   ├── uzp1.h
│           │   │   │   ├── uzp2.h
│           │   │   │   ├── xar.h
│           │   │   │   ├── zip.h
│           │   │   │   ├── zip1.h
│           │   │   │   └── zip2.h
│           │   │   ├── neon.h
│           │   │   ├── sve/
│           │   │   │   ├── add.h
│           │   │   │   ├── and.h
│           │   │   │   ├── cmplt.h
│           │   │   │   ├── cnt.h
│           │   │   │   ├── dup.h
│           │   │   │   ├── ld1.h
│           │   │   │   ├── ptest.h
│           │   │   │   ├── ptrue.h
│           │   │   │   ├── qadd.h
│           │   │   │   ├── reinterpret.h
│           │   │   │   ├── sel.h
│           │   │   │   ├── st1.h
│           │   │   │   ├── sub.h
│           │   │   │   ├── types.h
│           │   │   │   └── whilelt.h
│           │   │   └── sve.h
│           │   ├── check.h
│           │   ├── debug-trap.h
│           │   ├── hedley.h
│           │   ├── mips/
│           │   │   ├── msa/
│           │   │   │   ├── add_a.h
│           │   │   │   ├── adds.h
│           │   │   │   ├── adds_a.h
│           │   │   │   ├── addv.h
│           │   │   │   ├── addvi.h
│           │   │   │   ├── and.h
│           │   │   │   ├── andi.h
│           │   │   │   ├── ld.h
│           │   │   │   ├── madd.h
│           │   │   │   ├── st.h
│           │   │   │   ├── subv.h
│           │   │   │   └── types.h
│           │   │   └── msa.h
│           │   ├── simde-aes.h
│           │   ├── simde-align.h
│           │   ├── simde-arch.h
│           │   ├── simde-bf16.h
│           │   ├── simde-common.h
│           │   ├── simde-complex.h
│           │   ├── simde-constify.h
│           │   ├── simde-detect-clang.h
│           │   ├── simde-diagnostic.h
│           │   ├── simde-f16.h
│           │   ├── simde-features.h
│           │   ├── simde-math.h
│           │   ├── wasm/
│           │   │   ├── relaxed-simd.h
│           │   │   └── simd128.h
│           │   └── x86/
│           │       ├── aes.h
│           │       ├── avx.h
│           │       ├── avx2.h
│           │       ├── avx512/
│           │       │   ├── 2intersect.h
│           │       │   ├── 4dpwssd.h
│           │       │   ├── 4dpwssds.h
│           │       │   ├── abs.h
│           │       │   ├── add.h
│           │       │   ├── adds.h
│           │       │   ├── and.h
│           │       │   ├── andnot.h
│           │       │   ├── avg.h
│           │       │   ├── bitshuffle.h
│           │       │   ├── blend.h
│           │       │   ├── broadcast.h
│           │       │   ├── cast.h
│           │       │   ├── cmp.h
│           │       │   ├── cmpeq.h
│           │       │   ├── cmpge.h
│           │       │   ├── cmpgt.h
│           │       │   ├── cmple.h
│           │       │   ├── cmplt.h
│           │       │   ├── cmpneq.h
│           │       │   ├── compress.h
│           │       │   ├── conflict.h
│           │       │   ├── copysign.h
│           │       │   ├── cvt.h
│           │       │   ├── cvts.h
│           │       │   ├── cvtt.h
│           │       │   ├── cvtus.h
│           │       │   ├── dbsad.h
│           │       │   ├── div.h
│           │       │   ├── dpbf16.h
│           │       │   ├── dpbusd.h
│           │       │   ├── dpbusds.h
│           │       │   ├── dpwssd.h
│           │       │   ├── dpwssds.h
│           │       │   ├── expand.h
│           │       │   ├── expandloadu.h
│           │       │   ├── extract.h
│           │       │   ├── fixupimm.h
│           │       │   ├── fixupimm_round.h
│           │       │   ├── flushsubnormal.h
│           │       │   ├── fmadd.h
│           │       │   ├── fmaddsub.h
│           │       │   ├── fmsub.h
│           │       │   ├── fnmadd.h
│           │       │   ├── fnmsub.h
│           │       │   ├── fpclass.h
│           │       │   ├── gather.h
│           │       │   ├── insert.h
│           │       │   ├── kand.h
│           │       │   ├── knot.h
│           │       │   ├── kshift.h
│           │       │   ├── kxor.h
│           │       │   ├── load.h
│           │       │   ├── loadu.h
│           │       │   ├── lzcnt.h
│           │       │   ├── madd.h
│           │       │   ├── maddubs.h
│           │       │   ├── max.h
│           │       │   ├── min.h
│           │       │   ├── mov.h
│           │       │   ├── mov_mask.h
│           │       │   ├── movm.h
│           │       │   ├── mul.h
│           │       │   ├── mulhi.h
│           │       │   ├── mulhrs.h
│           │       │   ├── mullo.h
│           │       │   ├── multishift.h
│           │       │   ├── negate.h
│           │       │   ├── or.h
│           │       │   ├── packs.h
│           │       │   ├── packus.h
│           │       │   ├── permutex.h
│           │       │   ├── permutex2var.h
│           │       │   ├── permutexvar.h
│           │       │   ├── popcnt.h
│           │       │   ├── range.h
│           │       │   ├── range_round.h
│           │       │   ├── rcp.h
│           │       │   ├── reduce.h
│           │       │   ├── rol.h
│           │       │   ├── rolv.h
│           │       │   ├── ror.h
│           │       │   ├── rorv.h
│           │       │   ├── round.h
│           │       │   ├── roundscale.h
│           │       │   ├── roundscale_round.h
│           │       │   ├── sad.h
│           │       │   ├── scalef.h
│           │       │   ├── set.h
│           │       │   ├── set1.h
│           │       │   ├── set4.h
│           │       │   ├── setone.h
│           │       │   ├── setr.h
│           │       │   ├── setr4.h
│           │       │   ├── setzero.h
│           │       │   ├── shldv.h
│           │       │   ├── shuffle.h
│           │       │   ├── sll.h
│           │       │   ├── slli.h
│           │       │   ├── sllv.h
│           │       │   ├── sqrt.h
│           │       │   ├── sra.h
│           │       │   ├── srai.h
│           │       │   ├── srav.h
│           │       │   ├── srl.h
│           │       │   ├── srli.h
│           │       │   ├── srlv.h
│           │       │   ├── store.h
│           │       │   ├── storeu.h
│           │       │   ├── sub.h
│           │       │   ├── subs.h
│           │       │   ├── ternarylogic.h
│           │       │   ├── test.h
│           │       │   ├── testn.h
│           │       │   ├── types.h
│           │       │   ├── unpackhi.h
│           │       │   ├── unpacklo.h
│           │       │   ├── xor.h
│           │       │   └── xorsign.h
│           │       ├── avx512.h
│           │       ├── bmi.h
│           │       ├── clmul.h
│           │       ├── f16c.h
│           │       ├── fma.h
│           │       ├── gfni.h
│           │       ├── mmx.h
│           │       ├── sse.h
│           │       ├── sse2.h
│           │       ├── sse3.h
│           │       ├── sse4.1.h
│           │       ├── sse4.2.h
│           │       ├── ssse3.h
│           │       ├── svml.h
│           │       └── xop.h
│           └── test/
│               ├── .gitignore
│               ├── arm/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── neon/
│               │   │   ├── aba.c
│               │   │   ├── abal.c
│               │   │   ├── abal_high.c
│               │   │   ├── abd.c
│               │   │   ├── abdl.c
│               │   │   ├── abdl_high.c
│               │   │   ├── abs.c
│               │   │   ├── add.c
│               │   │   ├── addhn.c
│               │   │   ├── addhn_high.c
│               │   │   ├── addl.c
│               │   │   ├── addl_high.c
│               │   │   ├── addlv.c
│               │   │   ├── addv.c
│               │   │   ├── addw.c
│               │   │   ├── addw_high.c
│               │   │   ├── aes.c
│               │   │   ├── and.c
│               │   │   ├── bcax.c
│               │   │   ├── bic.c
│               │   │   ├── bsl.c
│               │   │   ├── cadd_rot270.c
│               │   │   ├── cadd_rot90.c
│               │   │   ├── cage.c
│               │   │   ├── cagt.c
│               │   │   ├── cale.c
│               │   │   ├── calt.c
│               │   │   ├── ceq.c
│               │   │   ├── ceqz.c
│               │   │   ├── cge.c
│               │   │   ├── cgez.c
│               │   │   ├── cgt.c
│               │   │   ├── cgtz.c
│               │   │   ├── cle.c
│               │   │   ├── clez.c
│               │   │   ├── cls.c
│               │   │   ├── clt.c
│               │   │   ├── cltz.c
│               │   │   ├── clz.c
│               │   │   ├── cmla.c
│               │   │   ├── cmla_lane.c
│               │   │   ├── cmla_rot180.c
│               │   │   ├── cmla_rot180_lane.c
│               │   │   ├── cmla_rot270.c
│               │   │   ├── cmla_rot270_lane.c
│               │   │   ├── cmla_rot90.c
│               │   │   ├── cmla_rot90_lane.c
│               │   │   ├── cnt.c
│               │   │   ├── combine.c
│               │   │   ├── copy_lane.c
│               │   │   ├── crc32.c
│               │   │   ├── create.c
│               │   │   ├── cvt.c
│               │   │   ├── cvt_n.c
│               │   │   ├── cvtm.c
│               │   │   ├── cvtn.c
│               │   │   ├── cvtp.c
│               │   │   ├── div.c
│               │   │   ├── dot.c
│               │   │   ├── dot_lane.c
│               │   │   ├── dup_lane.c
│               │   │   ├── dup_n.c
│               │   │   ├── eor.c
│               │   │   ├── ext.c
│               │   │   ├── fma.c
│               │   │   ├── fma_lane.c
│               │   │   ├── fma_n.c
│               │   │   ├── fmlal.c
│               │   │   ├── fmlsl.c
│               │   │   ├── fms.c
│               │   │   ├── fms_lane.c
│               │   │   ├── fms_n.c
│               │   │   ├── get_high.c
│               │   │   ├── get_lane.c
│               │   │   ├── get_low.c
│               │   │   ├── hadd.c
│               │   │   ├── hsub.c
│               │   │   ├── ld1_dup.c
│               │   │   ├── ld1_lane.c
│               │   │   ├── ld1_x2.c
│               │   │   ├── ld1_x3.c
│               │   │   ├── ld1_x4.c
│               │   │   ├── ld1q_x2.c
│               │   │   ├── ld1q_x3.c
│               │   │   ├── ld1q_x4.c
│               │   │   ├── ld2.c
│               │   │   ├── ld2_dup.c
│               │   │   ├── ld2_lane.c
│               │   │   ├── ld3.c
│               │   │   ├── ld3_dup.c
│               │   │   ├── ld3_lane.c
│               │   │   ├── ld4.c
│               │   │   ├── ld4_dup.c
│               │   │   ├── ld4_lane.c
│               │   │   ├── max.c
│               │   │   ├── maxnm.c
│               │   │   ├── maxnmv.c
│               │   │   ├── maxv.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── minnm.c
│               │   │   ├── minnmv.c
│               │   │   ├── minv.c
│               │   │   ├── mla.c
│               │   │   ├── mla_lane.c
│               │   │   ├── mla_n.c
│               │   │   ├── mlal.c
│               │   │   ├── mlal_high.c
│               │   │   ├── mlal_high_lane.c
│               │   │   ├── mlal_high_n.c
│               │   │   ├── mlal_lane.c
│               │   │   ├── mlal_n.c
│               │   │   ├── mls.c
│               │   │   ├── mls_lane.c
│               │   │   ├── mls_n.c
│               │   │   ├── mlsl.c
│               │   │   ├── mlsl_high.c
│               │   │   ├── mlsl_high_lane.c
│               │   │   ├── mlsl_high_n.c
│               │   │   ├── mlsl_lane.c
│               │   │   ├── mlsl_n.c
│               │   │   ├── mmlaq.c
│               │   │   ├── modify_c.txt
│               │   │   ├── movl.c
│               │   │   ├── movl_high.c
│               │   │   ├── movn.c
│               │   │   ├── movn_high.c
│               │   │   ├── mul.c
│               │   │   ├── mul_lane.c
│               │   │   ├── mul_n.c
│               │   │   ├── mull.c
│               │   │   ├── mull_high.c
│               │   │   ├── mull_high_lane.c
│               │   │   ├── mull_high_n.c
│               │   │   ├── mull_lane.c
│               │   │   ├── mull_n.c
│               │   │   ├── mulx.c
│               │   │   ├── mulx_lane.c
│               │   │   ├── mulx_n.c
│               │   │   ├── mvn.c
│               │   │   ├── neg.c
│               │   │   ├── orn.c
│               │   │   ├── orr.c
│               │   │   ├── padal.c
│               │   │   ├── padd.c
│               │   │   ├── paddl.c
│               │   │   ├── pmax.c
│               │   │   ├── pmaxnm.c
│               │   │   ├── pmin.c
│               │   │   ├── pminnm.c
│               │   │   ├── qabs.c
│               │   │   ├── qadd.c
│               │   │   ├── qdmlal.c
│               │   │   ├── qdmlal_high.c
│               │   │   ├── qdmlal_high_lane.c
│               │   │   ├── qdmlal_high_n.c
│               │   │   ├── qdmlal_lane.c
│               │   │   ├── qdmlal_n.c
│               │   │   ├── qdmlsl.c
│               │   │   ├── qdmlsl_high.c
│               │   │   ├── qdmlsl_high_lane.c
│               │   │   ├── qdmlsl_high_n.c
│               │   │   ├── qdmlsl_lane.c
│               │   │   ├── qdmlsl_n.c
│               │   │   ├── qdmulh.c
│               │   │   ├── qdmulh_lane.c
│               │   │   ├── qdmulh_n.c
│               │   │   ├── qdmull.c
│               │   │   ├── qdmull_high.c
│               │   │   ├── qdmull_high_lane.c
│               │   │   ├── qdmull_high_n.c
│               │   │   ├── qdmull_lane.c
│               │   │   ├── qdmull_n.c
│               │   │   ├── qmovn.c
│               │   │   ├── qmovn_high.c
│               │   │   ├── qmovun.c
│               │   │   ├── qmovun_high.c
│               │   │   ├── qneg.c
│               │   │   ├── qrdmlah.c
│               │   │   ├── qrdmlah_lane.c
│               │   │   ├── qrdmlsh.c
│               │   │   ├── qrdmlsh_lane.c
│               │   │   ├── qrdmulh.c
│               │   │   ├── qrdmulh_lane.c
│               │   │   ├── qrdmulh_n.c
│               │   │   ├── qrshl.c
│               │   │   ├── qrshrn_high_n.c
│               │   │   ├── qrshrn_n.c
│               │   │   ├── qrshrun_high_n.c
│               │   │   ├── qrshrun_n.c
│               │   │   ├── qshl.c
│               │   │   ├── qshl_n.c
│               │   │   ├── qshlu_n.c
│               │   │   ├── qshrn_high_n.c
│               │   │   ├── qshrn_n.c
│               │   │   ├── qshrun_high_n.c
│               │   │   ├── qshrun_n.c
│               │   │   ├── qsub.c
│               │   │   ├── qtbl.c
│               │   │   ├── qtbx.c
│               │   │   ├── raddhn.c
│               │   │   ├── raddhn_high.c
│               │   │   ├── rax.c
│               │   │   ├── rbit.c
│               │   │   ├── recpe.c
│               │   │   ├── recps.c
│               │   │   ├── recpx.c
│               │   │   ├── reinterpret.c
│               │   │   ├── rev16.c
│               │   │   ├── rev32.c
│               │   │   ├── rev64.c
│               │   │   ├── rhadd.c
│               │   │   ├── rnd.c
│               │   │   ├── rnd32x.c
│               │   │   ├── rnd32z.c
│               │   │   ├── rnd64x.c
│               │   │   ├── rnd64z.c
│               │   │   ├── rnda.c
│               │   │   ├── rndi.c
│               │   │   ├── rndm.c
│               │   │   ├── rndn.c
│               │   │   ├── rndp.c
│               │   │   ├── rndx.c
│               │   │   ├── rshl.c
│               │   │   ├── rshr_n.c
│               │   │   ├── rshrn_high_n.c
│               │   │   ├── rshrn_n.c
│               │   │   ├── rsqrte.c
│               │   │   ├── rsqrts.c
│               │   │   ├── rsra_n.c
│               │   │   ├── rsubhn.c
│               │   │   ├── rsubhn_high.c
│               │   │   ├── run-tests-neon.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── set_lane.c
│               │   │   ├── sha1.c
│               │   │   ├── sha256.c
│               │   │   ├── sha512.c
│               │   │   ├── shl.c
│               │   │   ├── shl_n.c
│               │   │   ├── shll_high_n.c
│               │   │   ├── shll_n.c
│               │   │   ├── shr_n.c
│               │   │   ├── shrn_high_n.c
│               │   │   ├── shrn_n.c
│               │   │   ├── skel-single.c
│               │   │   ├── skel-triple.c
│               │   │   ├── skel.c
│               │   │   ├── sli_n.c
│               │   │   ├── sm3.c
│               │   │   ├── sm4.c
│               │   │   ├── sqadd.c
│               │   │   ├── sqrt.c
│               │   │   ├── sra_n.c
│               │   │   ├── sri_n.c
│               │   │   ├── st1_lane.c
│               │   │   ├── st1_x2.c
│               │   │   ├── st1_x3.c
│               │   │   ├── st1_x4.c
│               │   │   ├── st1q_x2.c
│               │   │   ├── st1q_x3.c
│               │   │   ├── st1q_x4.c
│               │   │   ├── st2.c
│               │   │   ├── st2_lane.c
│               │   │   ├── st3.c
│               │   │   ├── st3_lane.c
│               │   │   ├── st4.c
│               │   │   ├── st4_lane.c
│               │   │   ├── sub.c
│               │   │   ├── subhn.c
│               │   │   ├── subhn_high.c
│               │   │   ├── subl.c
│               │   │   ├── subl_high.c
│               │   │   ├── subw.c
│               │   │   ├── subw_high.c
│               │   │   ├── sudot_lane.c
│               │   │   ├── tbl.c
│               │   │   ├── tbx.c
│               │   │   ├── test-neon-footer.h
│               │   │   ├── test-neon.h
│               │   │   ├── trn.c
│               │   │   ├── trn1.c
│               │   │   ├── trn2.c
│               │   │   ├── tst.c
│               │   │   ├── uqadd.c
│               │   │   ├── usdot.c
│               │   │   ├── usdot_lane.c
│               │   │   ├── uzp.c
│               │   │   ├── uzp1.c
│               │   │   ├── uzp2.c
│               │   │   ├── xar.c
│               │   │   ├── zip.c
│               │   │   ├── zip1.c
│               │   │   └── zip2.c
│               │   ├── run-tests.c
│               │   ├── run-tests.h
│               │   ├── sve/
│               │   │   ├── add.c
│               │   │   ├── and.c
│               │   │   ├── cmplt.c
│               │   │   ├── dup.c
│               │   │   ├── meson.build
│               │   │   ├── qadd.c
│               │   │   ├── run-tests-neon.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── sel.c
│               │   │   ├── sub.c
│               │   │   ├── test-sve-footer.h
│               │   │   └── test-sve.h
│               │   └── test-arm.h
│               ├── arm64cl.txt
│               ├── check-flags.sh
│               ├── cmake-packaging/
│               │   ├── CMakeLists.txt
│               │   ├── cmake-fetchcontent/
│               │   │   ├── CMakeLists.txt
│               │   │   ├── main.c
│               │   │   └── main.cpp
│               │   └── cmake-find-package/
│               │       ├── CMakeLists.txt
│               │       ├── main.c
│               │       └── main.cpp
│               ├── common/
│               │   ├── common.c
│               │   └── meson.build
│               ├── declare-suites.h
│               ├── docker/
│               │   ├── Dockerfile.Ubuntu1404
│               │   ├── Dockerfile.Ubuntu1604
│               │   ├── Dockerfile.Ubuntu1804
│               │   ├── Dockerfile.arm64
│               │   ├── Dockerfile.arm7
│               │   ├── Dockerfile.icc
│               │   ├── Dockerfile.mipsel
│               │   ├── Dockerfile.ppc64el
│               │   ├── Dockerfile.qemu5.s390x
│               │   └── Dockerfile.s390x
│               ├── download-iig.sh
│               ├── download-sde.sh
│               ├── meson.build
│               ├── mips/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── msa/
│               │   │   ├── add_a.c
│               │   │   ├── adds.c
│               │   │   ├── adds_a.c
│               │   │   ├── addv.c
│               │   │   ├── addvi.c
│               │   │   ├── and.c
│               │   │   ├── andi.c
│               │   │   ├── ld.c
│               │   │   ├── madd.c
│               │   │   ├── meson.build
│               │   │   ├── run-tests-msa.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── st.c
│               │   │   ├── subv.c
│               │   │   ├── test-msa-footer.h
│               │   │   └── test-msa.h
│               │   ├── run-tests.c
│               │   └── run-tests.h
│               ├── native-aliases.sh
│               ├── run-tests.c
│               ├── run-tests.h
│               ├── test.h
│               ├── wasm/
│               │   ├── declare-suites.h
│               │   ├── meson.build
│               │   ├── relaxed-simd/
│               │   │   ├── laneselect.c
│               │   │   ├── madd.c
│               │   │   ├── max.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── nmadd.c
│               │   │   ├── run-tests-wasm.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── swizzle.c
│               │   │   ├── test-relaxed-simd-footer.h
│               │   │   ├── test-relaxed-simd.h
│               │   │   └── trunc.c
│               │   ├── run-tests.c
│               │   ├── run-tests.h
│               │   ├── simd128/
│               │   │   ├── abs.c
│               │   │   ├── add.c
│               │   │   ├── add_sat.c
│               │   │   ├── all_true.c
│               │   │   ├── and.c
│               │   │   ├── andnot.c
│               │   │   ├── any_true.c
│               │   │   ├── avgr.c
│               │   │   ├── bitmask.c
│               │   │   ├── bitselect.c
│               │   │   ├── ceil.c
│               │   │   ├── const.c
│               │   │   ├── convert.c
│               │   │   ├── demote.c
│               │   │   ├── div.c
│               │   │   ├── dot.c
│               │   │   ├── eq.c
│               │   │   ├── extadd_pairwise.c
│               │   │   ├── extend_high.c
│               │   │   ├── extend_low.c
│               │   │   ├── extmul_high.c
│               │   │   ├── extmul_low.c
│               │   │   ├── extract_lane.c
│               │   │   ├── floor.c
│               │   │   ├── ge.c
│               │   │   ├── gt.c
│               │   │   ├── le.c
│               │   │   ├── load.c
│               │   │   ├── load_lane.c
│               │   │   ├── load_splat.c
│               │   │   ├── load_zero.c
│               │   │   ├── lt.c
│               │   │   ├── make.c
│               │   │   ├── max.c
│               │   │   ├── meson.build
│               │   │   ├── min.c
│               │   │   ├── mul.c
│               │   │   ├── narrow.c
│               │   │   ├── ne.c
│               │   │   ├── nearest.c
│               │   │   ├── neg.c
│               │   │   ├── not.c
│               │   │   ├── or.c
│               │   │   ├── pmax.c
│               │   │   ├── pmin.c
│               │   │   ├── popcnt.c
│               │   │   ├── promote.c
│               │   │   ├── q15mulr_sat.c
│               │   │   ├── replace_lane.c
│               │   │   ├── run-tests-wasm.h
│               │   │   ├── run-tests.c
│               │   │   ├── run-tests.h
│               │   │   ├── shl.c
│               │   │   ├── shr.c
│               │   │   ├── shuffle.c
│               │   │   ├── splat.c
│               │   │   ├── sqrt.c
│               │   │   ├── store_lane.c
│               │   │   ├── sub.c
│               │   │   ├── sub_sat.c
│               │   │   ├── swizzle.c
│               │   │   ├── test-simd128-footer.h
│               │   │   ├── test-simd128.h
│               │   │   ├── trunc.c
│               │   │   ├── trunc_sat.c
│               │   │   └── xor.c
│               │   ├── test-simd128-footer.h
│               │   └── test-simd128.h
│               └── x86/
│                   ├── aes.c
│                   ├── avx.c
│                   ├── avx2.c
│                   ├── avx512/
│                   │   ├── 2intersect.c
│                   │   ├── 4dpwssd.c
│                   │   ├── 4dpwssds.c
│                   │   ├── abs.c
│                   │   ├── add.c
│                   │   ├── adds.c
│                   │   ├── and.c
│                   │   ├── andnot.c
│                   │   ├── avg.c
│                   │   ├── bitshuffle.c
│                   │   ├── blend.c
│                   │   ├── broadcast.c
│                   │   ├── cast.c
│                   │   ├── cmp.c
│                   │   ├── cmpeq.c
│                   │   ├── cmpge.c
│                   │   ├── cmpgt.c
│                   │   ├── cmple.c
│                   │   ├── cmplt.c
│                   │   ├── cmpneq.c
│                   │   ├── compress.c
│                   │   ├── conflict.c
│                   │   ├── copysign.c
│                   │   ├── cvt.c
│                   │   ├── cvts.c
│                   │   ├── cvtt.c
│                   │   ├── cvtus.c
│                   │   ├── dbsad.c
│                   │   ├── div.c
│                   │   ├── dpbf16.c
│                   │   ├── dpbusd.c
│                   │   ├── dpbusds.c
│                   │   ├── dpwssd.c
│                   │   ├── dpwssds.c
│                   │   ├── expand.c
│                   │   ├── expandloadu.c
│                   │   ├── extract.c
│                   │   ├── fixupimm.c
│                   │   ├── fixupimm_round.c
│                   │   ├── flushsubnormal.c
│                   │   ├── fmadd.c
│                   │   ├── fmaddsub.c
│                   │   ├── fmsub.c
│                   │   ├── fnmadd.c
│                   │   ├── fnmsub.c
│                   │   ├── fpclass.c
│                   │   ├── gather.c
│                   │   ├── insert.c
│                   │   ├── kand.c
│                   │   ├── knot.c
│                   │   ├── kshift.c
│                   │   ├── kxor.c
│                   │   ├── load.c
│                   │   ├── loadu.c
│                   │   ├── lzcnt.c
│                   │   ├── madd.c
│                   │   ├── maddubs.c
│                   │   ├── max.c
│                   │   ├── meson.build
│                   │   ├── min.c
│                   │   ├── mov.c
│                   │   ├── mov_mask.c
│                   │   ├── movm.c
│                   │   ├── mul.c
│                   │   ├── mulhi.c
│                   │   ├── mulhrs.c
│                   │   ├── mullo.c
│                   │   ├── multishift.c
│                   │   ├── negate.c
│                   │   ├── or.c
│                   │   ├── packs.c
│                   │   ├── packus.c
│                   │   ├── permutex.c
│                   │   ├── permutex2var.c
│                   │   ├── permutexvar.c
│                   │   ├── popcnt.c
│                   │   ├── range.c
│                   │   ├── range_round.c
│                   │   ├── rcp.c
│                   │   ├── reduce.c
│                   │   ├── rol.c
│                   │   ├── rolv.c
│                   │   ├── ror.c
│                   │   ├── rorv.c
│                   │   ├── round.c
│                   │   ├── roundscale.c
│                   │   ├── roundscale_round.c
│                   │   ├── run-tests.c
│                   │   ├── run-tests.h
│                   │   ├── sad.c
│                   │   ├── scalef.c
│                   │   ├── set.c
│                   │   ├── set1.c
│                   │   ├── set4.c
│                   │   ├── setone.c
│                   │   ├── setr.c
│                   │   ├── setr4.c
│                   │   ├── setzero.c
│                   │   ├── shldv.c
│                   │   ├── shuffle.c
│                   │   ├── skel.c
│                   │   ├── sll.c
│                   │   ├── slli.c
│                   │   ├── sllv.c
│                   │   ├── sqrt.c
│                   │   ├── sra.c
│                   │   ├── srai.c
│                   │   ├── srav.c
│                   │   ├── srl.c
│                   │   ├── srli.c
│                   │   ├── srlv.c
│                   │   ├── store.c
│                   │   ├── storeu.c
│                   │   ├── sub.c
│                   │   ├── subs.c
│                   │   ├── ternarylogic.c
│                   │   ├── test-avx512-footer.h
│                   │   ├── test-avx512.h
│                   │   ├── test.c
│                   │   ├── testn.c
│                   │   ├── unpackhi.c
│                   │   ├── unpacklo.c
│                   │   ├── xor.c
│                   │   └── xorsign.c
│                   ├── bmi.c
│                   ├── clmul.c
│                   ├── f16c.c
│                   ├── fma.c
│                   ├── gfni.c
│                   ├── meson.build
│                   ├── mmx.c
│                   ├── run-tests.c
│                   ├── run-tests.h
│                   ├── skel.c
│                   ├── sse.c
│                   ├── sse2.c
│                   ├── sse3.c
│                   ├── sse4.1.c
│                   ├── sse4.2.c
│                   ├── ssse3.c
│                   ├── svml.c
│                   ├── test-avx.h
│                   ├── test-mmx.h
│                   ├── test-sse.h
│                   ├── test-sse2.h
│                   ├── test-x86-footer.h
│                   ├── test-x86.h
│                   └── xop.c
├── doap_tsfile.rdf
├── docs/
│   ├── .gitignore
│   ├── deploy.cjs
│   ├── deploy_staging.cjs
│   ├── package.json
│   └── src/
│       ├── .vuepress/
│       │   ├── components/
│       │   │   ├── PageFooter.vue
│       │   │   └── docsearch/
│       │   │       ├── client/
│       │   │       │   ├── components/
│       │   │       │   │   ├── Docsearch.ts
│       │   │       │   │   └── index.ts
│       │   │       │   ├── composables/
│       │   │       │   │   ├── index.ts
│       │   │       │   │   └── useDocsearchShim.ts
│       │   │       │   ├── config.js
│       │   │       │   ├── index.ts
│       │   │       │   ├── shims.d.ts
│       │   │       │   └── styles/
│       │   │       │       └── docsearch.css
│       │   │       ├── node/
│       │   │       │   ├── docsearchPlugin.ts
│       │   │       │   └── index.ts
│       │   │       └── shared/
│       │   │           ├── index.ts
│       │   │           └── types.ts
│       │   ├── config.ts
│       │   ├── navbar/
│       │   │   ├── en.ts
│       │   │   ├── index.ts
│       │   │   └── zh.ts
│       │   ├── public/
│       │   │   └── .asf.yaml
│       │   ├── sidebar/
│       │   │   ├── V1.0.x/
│       │   │   │   ├── en.ts
│       │   │   │   └── zh.ts
│       │   │   ├── en.ts
│       │   │   ├── index.ts
│       │   │   └── zh.ts
│       │   ├── styles/
│       │   │   ├── config.scss
│       │   │   ├── index.scss
│       │   │   └── palette.scss
│       │   └── theme.ts
│       ├── Community/
│       │   ├── About.md
│       │   └── Feedback.md
│       ├── Development/
│       │   ├── Community-Project-Committers.md
│       │   └── Powered-By.md
│       ├── Download/
│       │   └── README.md
│       ├── README.md
│       ├── UserGuide/
│       │   ├── develop/
│       │   │   └── QuickStart/
│       │   │       ├── Data-Model.md
│       │   │       ├── Interface-Definitions.md
│       │   │       └── QuickStart.md
│       │   └── latest/
│       │       └── QuickStart/
│       │           ├── Data-Model.md
│       │           ├── Navigating_Time_Series_Data.md
│       │           └── QuickStart.md
│       ├── stage/
│       │   └── QuickStart.md
│       └── zh/
│           ├── Community/
│           │   ├── About.md
│           │   └── Feedback.md
│           ├── Development/
│           │   ├── Community-Project-Committers.md
│           │   └── Powered-By.md
│           ├── Download/
│           │   └── README.md
│           ├── README.md
│           ├── UserGuide/
│           │   ├── develop/
│           │   │   └── QuickStart/
│           │   │       ├── Data-Model.md
│           │   │       ├── Interface-Definitions.md
│           │   │       └── QuickStart.md
│           │   └── latest/
│           │       └── QuickStart/
│           │           ├── Data-Model.md
│           │           ├── Navigating_Time_Series_Data.md
│           │           └── QuickStart.md
│           └── stage/
│               └── QuickStart.md
├── java/
│   ├── CLAUDE.md
│   ├── common/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── org/
│   │       │   │       └── apache/
│   │       │   │           └── tsfile/
│   │       │   │               ├── annotations/
│   │       │   │               │   ├── MustOverride.java
│   │       │   │               │   ├── TableModel.java
│   │       │   │               │   ├── TreeModel.java
│   │       │   │               │   └── TsFileApi.java
│   │       │   │               ├── block/
│   │       │   │               │   ├── TsBlockBuilderStatus.java
│   │       │   │               │   └── column/
│   │       │   │               │       ├── Column.java
│   │       │   │               │       ├── ColumnBuilder.java
│   │       │   │               │       ├── ColumnBuilderStatus.java
│   │       │   │               │       └── ColumnEncoding.java
│   │       │   │               ├── enums/
│   │       │   │               │   ├── ColumnCategory.java
│   │       │   │               │   └── TSDataType.java
│   │       │   │               ├── i18n/
│   │       │   │               │   └── Messages.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── Accountable.java
│   │       │   │               │   ├── Binary.java
│   │       │   │               │   ├── BitMap.java
│   │       │   │               │   ├── Constants.java
│   │       │   │               │   ├── PooledBinary.java
│   │       │   │               │   ├── RamUsageEstimator.java
│   │       │   │               │   └── TsPrimitiveType.java
│   │       │   │               └── write/
│   │       │   │                   └── UnSupportedDataTypeException.java
│   │       │   └── resources/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── tsfile/
│   │       │                   └── i18n/
│   │       │                       ├── messages.properties
│   │       │                       └── messages_zh.properties
│   │       └── test/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           └── i18n/
│   │                               └── MessagesTest.java
│   ├── examples/
│   │   ├── pom.xml
│   │   ├── readme.md
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           ├── Constant.java
│   │                           ├── DataGenerator.java
│   │                           ├── TsFileForceAppendWrite.java
│   │                           ├── TsFileRead.java
│   │                           ├── TsFileSequenceRead.java
│   │                           ├── TsFileWriteAlignedWithTSRecord.java
│   │                           ├── TsFileWriteAlignedWithTablet.java
│   │                           ├── TsFileWriteWithTSRecord.java
│   │                           ├── TsFileWriteWithTablet.java
│   │                           └── v4/
│   │                               ├── ITsFileReaderAndITsFileWriter.java
│   │                               ├── TagFilterExample.java
│   │                               ├── TsFileTreeReaderExample.java
│   │                               └── WriteTabletWithITsFileWriter.java
│   ├── pom.xml
│   ├── tools/
│   │   ├── README-zh.md
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── assembly/
│   │       │   ├── resources/
│   │       │   │   ├── conf/
│   │       │   │   │   └── logback-cvs2tsfile.xml
│   │       │   │   └── tools/
│   │       │   │       ├── arrow2tsfile.bat
│   │       │   │       ├── arrow2tsfile.sh
│   │       │   │       ├── csv2tsfile.bat
│   │       │   │       ├── csv2tsfile.sh
│   │       │   │       ├── parquet2tsfile.bat
│   │       │   │       └── parquet2tsfile.sh
│   │       │   └── tools.xml
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── apache/
│   │       │               └── tsfile/
│   │       │                   └── tools/
│   │       │                       ├── ArrowSourceReader.java
│   │       │                       ├── AutoSchemaInferer.java
│   │       │                       ├── CsvSourceReader.java
│   │       │                       ├── DateTimeUtils.java
│   │       │                       ├── ImportExecutor.java
│   │       │                       ├── ImportSchema.java
│   │       │                       ├── ImportSchemaParser.java
│   │       │                       ├── ParquetSourceReader.java
│   │       │                       ├── SchemaParser.java
│   │       │                       ├── SourceBatch.java
│   │       │                       ├── SourceReader.java
│   │       │                       ├── TabletBuilder.java
│   │       │                       ├── TimeConverter.java
│   │       │                       ├── TsFileTool.java
│   │       │                       └── ValueConverter.java
│   │       └── test/
│   │           └── java/
│   │               └── org/
│   │                   └── apache/
│   │                       └── tsfile/
│   │                           └── tools/
│   │                               ├── ArrowSourceReaderTest.java
│   │                               ├── AutoSchemaInfererTest.java
│   │                               ├── CsvSourceReaderTest.java
│   │                               ├── ImportExecutorTest.java
│   │                               ├── ImportSchemaParserTest.java
│   │                               ├── ParquetSourceReaderTest.java
│   │                               ├── TabletBuilderTest.java
│   │                               ├── TimeConverterTest.java
│   │                               ├── TsFileToolCliTest.java
│   │                               ├── TsfiletoolsTest.java
│   │                               └── ValueConverterTest.java
│   └── tsfile/
│       ├── README-zh.md
│       ├── README.md
│       ├── format-changelist.md
│       ├── pom.xml
│       └── src/
│           ├── main/
│           │   ├── antlr4/
│           │   │   └── org/
│           │   │       └── apache/
│           │   │           └── tsfile/
│           │   │               └── parser/
│           │   │                   ├── PathLexer.g4
│           │   │                   └── PathParser.g4
│           │   ├── codegen/
│           │   │   ├── config.fmpp
│           │   │   ├── dataModel/
│           │   │   │   └── AllFilter.tdd
│           │   │   └── templates/
│           │   │       ├── FilterOperatorsTemplate.ftl
│           │   │       └── FilterTemplate.ftl
│           │   └── java/
│           │       └── org/
│           │           └── apache/
│           │               └── tsfile/
│           │                   ├── common/
│           │                   │   ├── bitStream/
│           │                   │   │   ├── BitInputStream.java
│           │                   │   │   ├── BitOutputStream.java
│           │                   │   │   ├── BitStream.java
│           │                   │   │   └── ByteBufferBackedInputStream.java
│           │                   │   ├── cache/
│           │                   │   │   ├── Cache.java
│           │                   │   │   └── LRUCache.java
│           │                   │   ├── conf/
│           │                   │   │   ├── TSFileConfig.java
│           │                   │   │   └── TSFileDescriptor.java
│           │                   │   ├── constant/
│           │                   │   │   ├── JsonFormatConstant.java
│           │                   │   │   ├── QueryConstant.java
│           │                   │   │   └── TsFileConstant.java
│           │                   │   └── regexp/
│           │                   │       ├── DFA.java
│           │                   │       ├── DenseDfaMatcher.java
│           │                   │       ├── FjsMatcher.java
│           │                   │       ├── LikeMatcher.java
│           │                   │       ├── LikePattern.java
│           │                   │       ├── Matcher.java
│           │                   │       ├── NFA.java
│           │                   │       ├── NfaMatcher.java
│           │                   │       └── pattern/
│           │                   │           ├── Any.java
│           │                   │           ├── Literal.java
│           │                   │           ├── Pattern.java
│           │                   │           └── ZeroOrMore.java
│           │                   ├── compatibility/
│           │                   │   ├── BufferDeserializer.java
│           │                   │   ├── CompatibilityUtils.java
│           │                   │   ├── DeserializeConfig.java
│           │                   │   └── StreamDeserializer.java
│           │                   ├── compress/
│           │                   │   ├── ICompressor.java
│           │                   │   └── IUnCompressor.java
│           │                   ├── encoding/
│           │                   │   ├── bitpacking/
│           │                   │   │   ├── IntPacker.java
│           │                   │   │   └── LongPacker.java
│           │                   │   ├── decoder/
│           │                   │   │   ├── BitmapDecoder.java
│           │                   │   │   ├── CamelDecoder.java
│           │                   │   │   ├── Decoder.java
│           │                   │   │   ├── DecoderWrapper.java
│           │                   │   │   ├── DeltaBinaryDecoder.java
│           │                   │   │   ├── DictionaryDecoder.java
│           │                   │   │   ├── DoublePrecisionChimpDecoder.java
│           │                   │   │   ├── DoublePrecisionDecoderV1.java
│           │                   │   │   ├── DoublePrecisionDecoderV2.java
│           │                   │   │   ├── DoubleRLBEDecoder.java
│           │                   │   │   ├── DoubleSprintzDecoder.java
│           │                   │   │   ├── FloatDecoder.java
│           │                   │   │   ├── FloatRLBEDecoder.java
│           │                   │   │   ├── FloatSprintzDecoder.java
│           │                   │   │   ├── GorillaDecoderV1.java
│           │                   │   │   ├── GorillaDecoderV2.java
│           │                   │   │   ├── IntChimpDecoder.java
│           │                   │   │   ├── IntGorillaDecoder.java
│           │                   │   │   ├── IntRLBEDecoder.java
│           │                   │   │   ├── IntRleDecoder.java
│           │                   │   │   ├── IntSprintzDecoder.java
│           │                   │   │   ├── IntZigzagDecoder.java
│           │                   │   │   ├── LongChimpDecoder.java
│           │                   │   │   ├── LongGorillaDecoder.java
│           │                   │   │   ├── LongRLBEDecoder.java
│           │                   │   │   ├── LongRleDecoder.java
│           │                   │   │   ├── LongSprintzDecoder.java
│           │                   │   │   ├── LongZigzagDecoder.java
│           │                   │   │   ├── PlainDecoder.java
│           │                   │   │   ├── RegularDataDecoder.java
│           │                   │   │   ├── RleDecoder.java
│           │                   │   │   ├── SinglePrecisionChimpDecoder.java
│           │                   │   │   ├── SinglePrecisionDecoderV1.java
│           │                   │   │   ├── SinglePrecisionDecoderV2.java
│           │                   │   │   └── SprintzDecoder.java
│           │                   │   ├── encoder/
│           │                   │   │   ├── BitmapEncoder.java
│           │                   │   │   ├── CamelEncoder.java
│           │                   │   │   ├── DeltaBinaryEncoder.java
│           │                   │   │   ├── DictionaryEncoder.java
│           │                   │   │   ├── DoublePrecisionChimpEncoder.java
│           │                   │   │   ├── DoublePrecisionEncoderV1.java
│           │                   │   │   ├── DoublePrecisionEncoderV2.java
│           │                   │   │   ├── DoubleRLBE.java
│           │                   │   │   ├── DoubleSprintzEncoder.java
│           │                   │   │   ├── Encoder.java
│           │                   │   │   ├── FloatEncoder.java
│           │                   │   │   ├── FloatRLBE.java
│           │                   │   │   ├── FloatSprintzEncoder.java
│           │                   │   │   ├── GorillaEncoderV1.java
│           │                   │   │   ├── GorillaEncoderV2.java
│           │                   │   │   ├── IntChimpEncoder.java
│           │                   │   │   ├── IntGorillaEncoder.java
│           │                   │   │   ├── IntRLBE.java
│           │                   │   │   ├── IntRleEncoder.java
│           │                   │   │   ├── IntSprintzEncoder.java
│           │                   │   │   ├── IntZigzagEncoder.java
│           │                   │   │   ├── LongChimpEncoder.java
│           │                   │   │   ├── LongGorillaEncoder.java
│           │                   │   │   ├── LongRLBE.java
│           │                   │   │   ├── LongRleEncoder.java
│           │                   │   │   ├── LongSprintzEncoder.java
│           │                   │   │   ├── LongZigzagEncoder.java
│           │                   │   │   ├── PlainEncoder.java
│           │                   │   │   ├── RLBE.java
│           │                   │   │   ├── RegularDataEncoder.java
│           │                   │   │   ├── RleEncoder.java
│           │                   │   │   ├── SDTEncoder.java
│           │                   │   │   ├── SinglePrecisionChimpEncoder.java
│           │                   │   │   ├── SinglePrecisionEncoderV1.java
│           │                   │   │   ├── SinglePrecisionEncoderV2.java
│           │                   │   │   ├── SprintzEncoder.java
│           │                   │   │   └── TSEncodingBuilder.java
│           │                   │   └── fire/
│           │                   │       ├── Fire.java
│           │                   │       ├── IntFire.java
│           │                   │       └── LongFire.java
│           │                   ├── encrypt/
│           │                   │   ├── EncryptParameter.java
│           │                   │   ├── EncryptUtils.java
│           │                   │   ├── IDecryptor.java
│           │                   │   ├── IEncrypt.java
│           │                   │   ├── IEncryptor.java
│           │                   │   ├── NoDecryptor.java
│           │                   │   ├── NoEncryptor.java
│           │                   │   └── UNENCRYPTED.java
│           │                   ├── exception/
│           │                   │   ├── IllegalDeviceIDException.java
│           │                   │   ├── NotCompatibleTsFileException.java
│           │                   │   ├── NotImplementedException.java
│           │                   │   ├── NullFieldException.java
│           │                   │   ├── PathParseException.java
│           │                   │   ├── StopReadTsFileByInterruptException.java
│           │                   │   ├── TsFileRuntimeException.java
│           │                   │   ├── TsFileSequenceReaderTimeseriesMetadataIteratorException.java
│           │                   │   ├── TsFileStatisticsMistakesException.java
│           │                   │   ├── cache/
│           │                   │   │   └── CacheException.java
│           │                   │   ├── compress/
│           │                   │   │   ├── CompressionTypeNotSupportedException.java
│           │                   │   │   └── GZIPCompressOverflowException.java
│           │                   │   ├── encoding/
│           │                   │   │   ├── TsFileDecodingException.java
│           │                   │   │   └── TsFileEncodingException.java
│           │                   │   ├── encrypt/
│           │                   │   │   ├── EncryptException.java
│           │                   │   │   └── EncryptKeyLengthNotMatchException.java
│           │                   │   ├── filter/
│           │                   │   │   ├── QueryFilterOptimizationException.java
│           │                   │   │   ├── StatisticsClassException.java
│           │                   │   │   └── UnSupportFilterDataTypeException.java
│           │                   │   ├── read/
│           │                   │   │   ├── FileVersionTooOldException.java
│           │                   │   │   ├── NoColumnException.java
│           │                   │   │   ├── ReadProcessException.java
│           │                   │   │   └── UnsupportedOrderingException.java
│           │                   │   └── write/
│           │                   │       ├── ConflictDataTypeException.java
│           │                   │       ├── NoDeviceException.java
│           │                   │       ├── NoMeasurementException.java
│           │                   │       ├── NoTableException.java
│           │                   │       ├── PageException.java
│           │                   │       ├── TsFileNotCompleteException.java
│           │                   │       ├── UnknownColumnTypeException.java
│           │                   │       └── WriteProcessException.java
│           │                   ├── external/
│           │                   │   └── commons/
│           │                   │       ├── codec/
│           │                   │       │   ├── binary/
│           │                   │       │   │   ├── Hex.java
│           │                   │       │   │   ├── MessageDigestAlgorithms.java
│           │                   │       │   │   └── StringUtils.java
│           │                   │       │   └── digest/
│           │                   │       │       └── DigestUtils.java
│           │                   │       ├── collections4/
│           │                   │       │   ├── BoundedMap.java
│           │                   │       │   ├── CollectionUtils.java
│           │                   │       │   ├── Get.java
│           │                   │       │   ├── IterableGet.java
│           │                   │       │   ├── IterableMap.java
│           │                   │       │   ├── KeyValue.java
│           │                   │       │   ├── MapIterator.java
│           │                   │       │   ├── MapUtils.java
│           │                   │       │   ├── OrderedIterator.java
│           │                   │       │   ├── OrderedMap.java
│           │                   │       │   ├── OrderedMapIterator.java
│           │                   │       │   ├── Put.java
│           │                   │       │   ├── ResettableIterator.java
│           │                   │       │   ├── comparators/
│           │                   │       │   │   └── ComparatorChain.java
│           │                   │       │   ├── iterators/
│           │                   │       │   │   ├── AbstractEmptyIterator.java
│           │                   │       │   │   ├── AbstractEmptyMapIterator.java
│           │                   │       │   │   ├── EmptyIterator.java
│           │                   │       │   │   ├── EmptyMapIterator.java
│           │                   │       │   │   ├── EmptyOrderedIterator.java
│           │                   │       │   │   └── EmptyOrderedMapIterator.java
│           │                   │       │   └── map/
│           │                   │       │       ├── AbstractHashedMap.java
│           │                   │       │       ├── AbstractLinkedMap.java
│           │                   │       │       └── LRUMap.java
│           │                   │       ├── io/
│           │                   │       │   ├── Charsets.java
│           │                   │       │   ├── FileExistsException.java
│           │                   │       │   ├── FileUtils.java
│           │                   │       │   ├── FilenameUtils.java
│           │                   │       │   ├── IOCase.java
│           │                   │       │   ├── IOExceptionList.java
│           │                   │       │   ├── IOIndexedException.java
│           │                   │       │   ├── IOUtils.java
│           │                   │       │   ├── RandomAccessFileMode.java
│           │                   │       │   ├── RandomAccessFiles.java
│           │                   │       │   ├── build/
│           │                   │       │   │   ├── AbstractOrigin.java
│           │                   │       │   │   ├── AbstractOriginSupplier.java
│           │                   │       │   │   ├── AbstractStreamBuilder.java
│           │                   │       │   │   └── AbstractSupplier.java
│           │                   │       │   ├── charset/
│           │                   │       │   │   ├── CharsetDecoders.java
│           │                   │       │   │   └── CharsetEncoders.java
│           │                   │       │   ├── file/
│           │                   │       │   │   ├── Counters.java
│           │                   │       │   │   ├── CountingPathVisitor.java
│           │                   │       │   │   ├── DeleteOption.java
│           │                   │       │   │   ├── DeletingPathVisitor.java
│           │                   │       │   │   ├── PathFilter.java
│           │                   │       │   │   ├── PathUtils.java
│           │                   │       │   │   ├── PathVisitor.java
│           │                   │       │   │   ├── SimplePathVisitor.java
│           │                   │       │   │   └── StandardDeleteOption.java
│           │                   │       │   ├── filefilter/
│           │                   │       │   │   ├── AbstractFileFilter.java
│           │                   │       │   │   ├── AndFileFilter.java
│           │                   │       │   │   ├── ConditionalFileFilter.java
│           │                   │       │   │   ├── FalseFileFilter.java
│           │                   │       │   │   ├── FileFileFilter.java
│           │                   │       │   │   ├── IOFileFilter.java
│           │                   │       │   │   ├── NotFileFilter.java
│           │                   │       │   │   ├── OrFileFilter.java
│           │                   │       │   │   ├── SuffixFileFilter.java
│           │                   │       │   │   ├── SymbolicLinkFileFilter.java
│           │                   │       │   │   └── TrueFileFilter.java
│           │                   │       │   ├── function/
│           │                   │       │   │   ├── Constants.java
│           │                   │       │   │   ├── Erase.java
│           │                   │       │   │   ├── IOBaseStream.java
│           │                   │       │   │   ├── IOBaseStreamAdapter.java
│           │                   │       │   │   ├── IOBiConsumer.java
│           │                   │       │   │   ├── IOBiFunction.java
│           │                   │       │   │   ├── IOBinaryOperator.java
│           │                   │       │   │   ├── IOComparator.java
│           │                   │       │   │   ├── IOConsumer.java
│           │                   │       │   │   ├── IOFunction.java
│           │                   │       │   │   ├── IOIntSupplier.java
│           │                   │       │   │   ├── IOIterator.java
│           │                   │       │   │   ├── IOIteratorAdapter.java
│           │                   │       │   │   ├── IOPredicate.java
│           │                   │       │   │   ├── IOQuadFunction.java
│           │                   │       │   │   ├── IORunnable.java
│           │                   │       │   │   ├── IOSpliterator.java
│           │                   │       │   │   ├── IOSpliteratorAdapter.java
│           │                   │       │   │   ├── IOStream.java
│           │                   │       │   │   ├── IOStreamAdapter.java
│           │                   │       │   │   ├── IOStreams.java
│           │                   │       │   │   ├── IOSupplier.java
│           │                   │       │   │   ├── IOTriConsumer.java
│           │                   │       │   │   ├── IOTriFunction.java
│           │                   │       │   │   ├── IOUnaryOperator.java
│           │                   │       │   │   ├── Uncheck.java
│           │                   │       │   │   └── UncheckedIOIterator.java
│           │                   │       │   ├── input/
│           │                   │       │   │   ├── ClosedInputStream.java
│           │                   │       │   │   ├── ReaderInputStream.java
│           │                   │       │   │   └── UnsynchronizedByteArrayInputStream.java
│           │                   │       │   └── output/
│           │                   │       │       ├── AbstractByteArrayOutputStream.java
│           │                   │       │       ├── ByteArrayOutputStream.java
│           │                   │       │       ├── NullOutputStream.java
│           │                   │       │       ├── StringBuilderWriter.java
│           │                   │       │       ├── ThresholdingOutputStream.java
│           │                   │       │       ├── UnsynchronizedByteArrayOutputStream.java
│           │                   │       │       └── WriterOutputStream.java
│           │                   │       └── lang3/
│           │                   │           ├── ArrayFill.java
│           │                   │           ├── ArrayUtils.java
│           │                   │           ├── CharSequenceUtils.java
│           │                   │           ├── ClassUtils.java
│           │                   │           ├── NotImplementedException.java
│           │                   │           ├── ObjectUtils.java
│           │                   │           ├── StringUtils.java
│           │                   │           ├── Strings.java
│           │                   │           ├── SystemProperties.java
│           │                   │           ├── SystemUtils.java
│           │                   │           ├── Validate.java
│           │                   │           ├── builder/
│           │                   │           │   └── HashCodeBuilder.java
│           │                   │           ├── exception/
│           │                   │           │   └── ExceptionUtils.java
│           │                   │           ├── function/
│           │                   │           │   ├── FailableBiConsumer.java
│           │                   │           │   ├── FailableBiFunction.java
│           │                   │           │   ├── FailableFunction.java
│           │                   │           │   ├── Suppliers.java
│           │                   │           │   └── TriFunction.java
│           │                   │           ├── math/
│           │                   │           │   └── NumberUtils.java
│           │                   │           ├── stream/
│           │                   │           │   ├── LangCollectors.java
│           │                   │           │   └── Streams.java
│           │                   │           └── tuple/
│           │                   │               ├── ImmutablePair.java
│           │                   │               ├── ImmutableTriple.java
│           │                   │               ├── Pair.java
│           │                   │               └── Triple.java
│           │                   ├── file/
│           │                   │   ├── IMetadataIndexEntry.java
│           │                   │   ├── MetaMarker.java
│           │                   │   ├── header/
│           │                   │   │   ├── ChunkGroupHeader.java
│           │                   │   │   ├── ChunkHeader.java
│           │                   │   │   └── PageHeader.java
│           │                   │   └── metadata/
│           │                   │       ├── AbstractAlignedChunkMetadata.java
│           │                   │       ├── AbstractAlignedTimeSeriesMetadata.java
│           │                   │       ├── AlignedChunkMetadata.java
│           │                   │       ├── AlignedTimeSeriesMetadata.java
│           │                   │       ├── ChunkGroupMetadata.java
│           │                   │       ├── ChunkMetadata.java
│           │                   │       ├── ColumnSchema.java
│           │                   │       ├── ColumnSchemaBuilder.java
│           │                   │       ├── DeviceMetadataIndexEntry.java
│           │                   │       ├── IChunkMetadata.java
│           │                   │       ├── IDeviceID.java
│           │                   │       ├── IMetadata.java
│           │                   │       ├── ITimeSeriesMetadata.java
│           │                   │       ├── LogicalTableSchema.java
│           │                   │       ├── MeasurementMetadataIndexEntry.java
│           │                   │       ├── MetadataIndexConstructor.java
│           │                   │       ├── MetadataIndexNode.java
│           │                   │       ├── PlainDeviceID.java
│           │                   │       ├── StringArrayDeviceID.java
│           │                   │       ├── TableDeviceChunkMetadata.java
│           │                   │       ├── TableDeviceTimeSeriesMetadata.java
│           │                   │       ├── TableSchema.java
│           │                   │       ├── TimeseriesMetadata.java
│           │                   │       ├── TsFileMetadata.java
│           │                   │       ├── enums/
│           │                   │       │   ├── CompressionType.java
│           │                   │       │   ├── EncryptionType.java
│           │                   │       │   ├── MetadataIndexNodeType.java
│           │                   │       │   └── TSEncoding.java
│           │                   │       ├── idcolumn/
│           │                   │       │   ├── FourOrHigherLevelDBExtractor.java
│           │                   │       │   ├── ThreeLevelDBExtractor.java
│           │                   │       │   └── TwoLevelDBExtractor.java
│           │                   │       └── statistics/
│           │                   │           ├── BinaryStatistics.java
│           │                   │           ├── BlobStatistics.java
│           │                   │           ├── BooleanStatistics.java
│           │                   │           ├── DateStatistics.java
│           │                   │           ├── DoubleStatistics.java
│           │                   │           ├── FloatStatistics.java
│           │                   │           ├── IntegerStatistics.java
│           │                   │           ├── LongStatistics.java
│           │                   │           ├── ObjectStatistics.java
│           │                   │           ├── Statistics.java
│           │                   │           ├── StringStatistics.java
│           │                   │           ├── TimeStatistics.java
│           │                   │           └── TimestampStatistics.java
│           │                   ├── fileSystem/
│           │                   │   ├── FSFactoryProducer.java
│           │                   │   ├── FSPath.java
│           │                   │   ├── FSType.java
│           │                   │   ├── fileInputFactory/
│           │                   │   │   ├── FileInputFactory.java
│           │                   │   │   ├── HDFSInputFactory.java
│           │                   │   │   ├── HybridFileInputFactory.java
│           │                   │   │   ├── LocalFSInputFactory.java
│           │                   │   │   └── OSFileInputFactory.java
│           │                   │   ├── fileOutputFactory/
│           │                   │   │   ├── FileOutputFactory.java
│           │                   │   │   ├── HDFSOutputFactory.java
│           │                   │   │   ├── HybridFileOutputFactory.java
│           │                   │   │   ├── LocalFSOutputFactory.java
│           │                   │   │   └── OSFileOutputFactory.java
│           │                   │   └── fsFactory/
│           │                   │       ├── FSFactory.java
│           │                   │       ├── HDFSFactory.java
│           │                   │       ├── HybridFSFactory.java
│           │                   │       ├── LocalFSFactory.java
│           │                   │       └── OSFSFactory.java
│           │                   ├── read/
│           │                   │   ├── LazyTsFileDeviceIterator.java
│           │                   │   ├── TimeValuePair.java
│           │                   │   ├── TsFileAlignedSeriesReaderIterator.java
│           │                   │   ├── TsFileCheckStatus.java
│           │                   │   ├── TsFileDeviceIterator.java
│           │                   │   ├── TsFileReader.java
│           │                   │   ├── TsFileRestorableReader.java
│           │                   │   ├── TsFileSequenceReader.java
│           │                   │   ├── TsFileSequenceReaderTimeseriesMetadataIterator.java
│           │                   │   ├── UnClosedTsFileReader.java
│           │                   │   ├── common/
│           │                   │   │   ├── BatchData.java
│           │                   │   │   ├── BatchDataFactory.java
│           │                   │   │   ├── Chunk.java
│           │                   │   │   ├── DescReadBatchData.java
│           │                   │   │   ├── DescReadWriteBatchData.java
│           │                   │   │   ├── Field.java
│           │                   │   │   ├── FullPath.java
│           │                   │   │   ├── IBatchDataIterator.java
│           │                   │   │   ├── Path.java
│           │                   │   │   ├── RowRecord.java
│           │                   │   │   ├── SignalBatchData.java
│           │                   │   │   ├── TimeRange.java
│           │                   │   │   ├── TimeSeries.java
│           │                   │   │   ├── block/
│           │                   │   │   │   ├── TsBlock.java
│           │                   │   │   │   ├── TsBlockBuilder.java
│           │                   │   │   │   ├── TsBlockUtil.java
│           │                   │   │   │   └── column/
│           │                   │   │   │       ├── BinaryArrayColumnEncoder.java
│           │                   │   │   │       ├── BinaryColumn.java
│           │                   │   │   │       ├── BinaryColumnBuilder.java
│           │                   │   │   │       ├── BooleanColumn.java
│           │                   │   │   │       ├── BooleanColumnBuilder.java
│           │                   │   │   │       ├── ByteArrayColumnEncoder.java
│           │                   │   │   │       ├── ColumnEncoder.java
│           │                   │   │   │       ├── ColumnEncoderFactory.java
│           │                   │   │   │       ├── ColumnFactory.java
│           │                   │   │   │       ├── ColumnUtil.java
│           │                   │   │   │       ├── DictionaryColumn.java
│           │                   │   │   │       ├── DictionaryColumnEncoder.java
│           │                   │   │   │       ├── DictionaryId.java
│           │                   │   │   │       ├── DoubleColumn.java
│           │                   │   │   │       ├── DoubleColumnBuilder.java
│           │                   │   │   │       ├── FloatColumn.java
│           │                   │   │   │       ├── FloatColumnBuilder.java
│           │                   │   │   │       ├── Int32ArrayColumnEncoder.java
│           │                   │   │   │       ├── Int64ArrayColumnEncoder.java
│           │                   │   │   │       ├── IntColumn.java
│           │                   │   │   │       ├── IntColumnBuilder.java
│           │                   │   │   │       ├── LongColumn.java
│           │                   │   │   │       ├── LongColumnBuilder.java
│           │                   │   │   │       ├── NullColumn.java
│           │                   │   │   │       ├── RunLengthColumnEncoder.java
│           │                   │   │   │       ├── RunLengthEncodedColumn.java
│           │                   │   │   │       ├── TimeColumn.java
│           │                   │   │   │       ├── TimeColumnBuilder.java
│           │                   │   │   │       └── TsBlockSerde.java
│           │                   │   │   ├── parser/
│           │                   │   │   │   ├── PathNodesGenerator.java
│           │                   │   │   │   ├── PathParseError.java
│           │                   │   │   │   └── PathVisitor.java
│           │                   │   │   └── type/
│           │                   │   │       ├── AbstractIntType.java
│           │                   │   │       ├── AbstractLongType.java
│           │                   │   │       ├── AbstractType.java
│           │                   │   │       ├── AbstractVarcharType.java
│           │                   │   │       ├── BinaryType.java
│           │                   │   │       ├── BlobType.java
│           │                   │   │       ├── BooleanType.java
│           │                   │   │       ├── DateType.java
│           │                   │   │       ├── DoubleType.java
│           │                   │   │       ├── FloatType.java
│           │                   │   │       ├── IntType.java
│           │                   │   │       ├── LongType.java
│           │                   │   │       ├── ObjectType.java
│           │                   │   │       ├── RowType.java
│           │                   │   │       ├── StringType.java
│           │                   │   │       ├── TimestampType.java
│           │                   │   │       ├── Type.java
│           │                   │   │       ├── TypeEnum.java
│           │                   │   │       ├── TypeFactory.java
│           │                   │   │       └── UnknownType.java
│           │                   │   ├── controller/
│           │                   │   │   ├── CachedChunkLoaderImpl.java
│           │                   │   │   ├── DeviceMetaIterator.java
│           │                   │   │   ├── IChunkLoader.java
│           │                   │   │   ├── IChunkMetadataLoader.java
│           │                   │   │   ├── IMetadataQuerier.java
│           │                   │   │   └── MetadataQuerierByFileImpl.java
│           │                   │   ├── expression/
│           │                   │   │   ├── ExpressionTree.java
│           │                   │   │   ├── ExpressionType.java
│           │                   │   │   ├── IBinaryExpression.java
│           │                   │   │   ├── IExpression.java
│           │                   │   │   ├── IUnaryExpression.java
│           │                   │   │   ├── QueryExpression.java
│           │                   │   │   ├── impl/
│           │                   │   │   │   ├── BinaryExpression.java
│           │                   │   │   │   ├── GlobalTimeExpression.java
│           │                   │   │   │   └── SingleSeriesExpression.java
│           │                   │   │   └── util/
│           │                   │   │       └── ExpressionOptimizer.java
│           │                   │   ├── filter/
│           │                   │   │   ├── PredicateRemoveNotRewriter.java
│           │                   │   │   ├── basic/
│           │                   │   │   │   ├── BinaryLogicalFilter.java
│           │                   │   │   │   ├── CompareNullFilter.java
│           │                   │   │   │   ├── Filter.java
│           │                   │   │   │   ├── OperatorType.java
│           │                   │   │   │   ├── TimeFilter.java
│           │                   │   │   │   └── ValueFilter.java
│           │                   │   │   ├── factory/
│           │                   │   │   │   ├── FilterFactory.java
│           │                   │   │   │   ├── TagFilterBuilder.java
│           │                   │   │   │   ├── TimeFilterApi.java
│           │                   │   │   │   └── ValueFilterApi.java
│           │                   │   │   └── operator/
│           │                   │   │       ├── And.java
│           │                   │   │       ├── ExtractTimeFilterOperators.java
│           │                   │   │       ├── ExtractValueFilterOperators.java
│           │                   │   │       ├── FalseLiteralFilter.java
│           │                   │   │       ├── GroupByFilter.java
│           │                   │   │       ├── GroupByMonthFilter.java
│           │                   │   │       ├── Not.java
│           │                   │   │       ├── Or.java
│           │                   │   │       ├── TimeFilterOperators.java
│           │                   │   │       ├── ValueIsNotNullOperator.java
│           │                   │   │       └── ValueIsNullOperator.java
│           │                   │   ├── query/
│           │                   │   │   ├── dataset/
│           │                   │   │   │   ├── AbstractResultSet.java
│           │                   │   │   │   ├── DataSetWithTimeGenerator.java
│           │                   │   │   │   ├── DataSetWithoutTimeGenerator.java
│           │                   │   │   │   ├── QueryDataSet.java
│           │                   │   │   │   ├── ResultSet.java
│           │                   │   │   │   ├── ResultSetMetadata.java
│           │                   │   │   │   ├── ResultSetMetadataImpl.java
│           │                   │   │   │   ├── TableResultSet.java
│           │                   │   │   │   └── TreeResultSet.java
│           │                   │   │   ├── executor/
│           │                   │   │   │   ├── ExecutorWithTimeGenerator.java
│           │                   │   │   │   ├── QueryExecutor.java
│           │                   │   │   │   ├── TableQueryExecutor.java
│           │                   │   │   │   ├── TsFileExecutor.java
│           │                   │   │   │   └── task/
│           │                   │   │   │       ├── DeviceQueryTask.java
│           │                   │   │   │       └── DeviceTaskIterator.java
│           │                   │   │   └── timegenerator/
│           │                   │   │       ├── TimeGenerator.java
│           │                   │   │       ├── TsFileTimeGenerator.java
│           │                   │   │       └── node/
│           │                   │   │           ├── AndNode.java
│           │                   │   │           ├── LeafNode.java
│           │                   │   │           ├── Node.java
│           │                   │   │           ├── NodeType.java
│           │                   │   │           └── OrNode.java
│           │                   │   ├── reader/
│           │                   │   │   ├── IBatchReader.java
│           │                   │   │   ├── IChunkReader.java
│           │                   │   │   ├── IPageReader.java
│           │                   │   │   ├── IPointReader.java
│           │                   │   │   ├── LocalTsFileInput.java
│           │                   │   │   ├── TsFileInput.java
│           │                   │   │   ├── TsFileLastReader.java
│           │                   │   │   ├── block/
│           │                   │   │   │   ├── DeviceOrderedTsBlockReader.java
│           │                   │   │   │   ├── SingleDeviceTsBlockReader.java
│           │                   │   │   │   └── TsBlockReader.java
│           │                   │   │   ├── chunk/
│           │                   │   │   │   ├── AbstractAlignedChunkReader.java
│           │                   │   │   │   ├── AbstractChunkReader.java
│           │                   │   │   │   ├── AlignedChunkReader.java
│           │                   │   │   │   ├── AlignedChunkReaderWithoutStatistics.java
│           │                   │   │   │   ├── ChunkReader.java
│           │                   │   │   │   ├── ChunkReaderWithoutStatistics.java
│           │                   │   │   │   └── TableChunkReader.java
│           │                   │   │   ├── page/
│           │                   │   │   │   ├── AbstractAlignedPageReader.java
│           │                   │   │   │   ├── AlignedPageReader.java
│           │                   │   │   │   ├── LazyLoadAlignedPagePointReader.java
│           │                   │   │   │   ├── LazyLoadPageData.java
│           │                   │   │   │   ├── PageReader.java
│           │                   │   │   │   ├── TablePageReader.java
│           │                   │   │   │   ├── TimePageReader.java
│           │                   │   │   │   └── ValuePageReader.java
│           │                   │   │   └── series/
│           │                   │   │       ├── AbstractFileSeriesReader.java
│           │                   │   │       ├── EmptyFileSeriesReader.java
│           │                   │   │       ├── FileSeriesReader.java
│           │                   │   │       ├── FileSeriesReaderByTimestamp.java
│           │                   │   │       └── PaginationController.java
│           │                   │   └── v4/
│           │                   │       ├── DeviceTableModelReader.java
│           │                   │       ├── ITsFileReader.java
│           │                   │       ├── ITsFileTreeReader.java
│           │                   │       ├── TsFileReaderBuilder.java
│           │                   │       ├── TsFileTreeReader.java
│           │                   │       └── TsFileTreeReaderBuilder.java
│           │                   ├── utils/
│           │                   │   ├── BloomFilter.java
│           │                   │   ├── BytesUtils.java
│           │                   │   ├── DateUtils.java
│           │                   │   ├── FSUtils.java
│           │                   │   ├── FilePathUtils.java
│           │                   │   ├── FilterDeserialize.java
│           │                   │   ├── Loader.java
│           │                   │   ├── MeasurementGroup.java
│           │                   │   ├── Murmur128Hash.java
│           │                   │   ├── NoSyncBufferedInputStream.java
│           │                   │   ├── NoSyncBufferedOutputStream.java
│           │                   │   ├── Pair.java
│           │                   │   ├── Preconditions.java
│           │                   │   ├── PublicBAOS.java
│           │                   │   ├── ReadWriteForEncodingUtils.java
│           │                   │   ├── ReadWriteIOUtils.java
│           │                   │   ├── StringContainer.java
│           │                   │   ├── TimeDuration.java
│           │                   │   ├── TsFileGeneratorUtils.java
│           │                   │   ├── TsFileSketchTool.java
│           │                   │   ├── TsFileUtils.java
│           │                   │   └── WriteUtils.java
│           │                   └── write/
│           │                       ├── TsFileWriter.java
│           │                       ├── chunk/
│           │                       │   ├── AlignedChunkGroupWriterImpl.java
│           │                       │   ├── AlignedChunkWriterImpl.java
│           │                       │   ├── ChunkWriterImpl.java
│           │                       │   ├── IChunkGroupWriter.java
│           │                       │   ├── IChunkWriter.java
│           │                       │   ├── NonAlignedChunkGroupWriterImpl.java
│           │                       │   ├── TableChunkGroupWriterImpl.java
│           │                       │   ├── TimeChunkWriter.java
│           │                       │   └── ValueChunkWriter.java
│           │                       ├── page/
│           │                       │   ├── PageWriter.java
│           │                       │   ├── TimePageWriter.java
│           │                       │   └── ValuePageWriter.java
│           │                       ├── record/
│           │                       │   ├── TSRecord.java
│           │                       │   ├── Tablet.java
│           │                       │   └── datapoint/
│           │                       │       ├── BooleanDataPoint.java
│           │                       │       ├── DataPoint.java
│           │                       │       ├── DateDataPoint.java
│           │                       │       ├── DoubleDataPoint.java
│           │                       │       ├── FloatDataPoint.java
│           │                       │       ├── IntDataPoint.java
│           │                       │       ├── LongDataPoint.java
│           │                       │       └── StringDataPoint.java
│           │                       ├── schema/
│           │                       │   ├── IMeasurementSchema.java
│           │                       │   ├── MeasurementSchema.java
│           │                       │   ├── MeasurementSchemaBuilder.java
│           │                       │   ├── MeasurementSchemaType.java
│           │                       │   ├── Schema.java
│           │                       │   ├── TimeseriesSchema.java
│           │                       │   └── VectorMeasurementSchema.java
│           │                       ├── v4/
│           │                       │   ├── AbstractTableModelTsFileWriter.java
│           │                       │   ├── DeviceTableModelWriter.java
│           │                       │   ├── ITsFileWriter.java
│           │                       │   ├── TableTsBlock2TsFileWriter.java
│           │                       │   ├── TsFileTreeWriter.java
│           │                       │   ├── TsFileTreeWriterBuilder.java
│           │                       │   └── TsFileWriterBuilder.java
│           │                       └── writer/
│           │                           ├── FlushChunkMetadataListener.java
│           │                           ├── ForceAppendTsFileWriter.java
│           │                           ├── IDataWriter.java
│           │                           ├── LocalTsFileOutput.java
│           │                           ├── RestorableTsFileIOWriter.java
│           │                           ├── TsFileIOWriter.java
│           │                           ├── TsFileIOWriterEndFileTest.java
│           │                           ├── TsFileOutput.java
│           │                           └── tsmiterator/
│           │                               ├── DiskTSMIterator.java
│           │                               └── TSMIterator.java
│           └── test/
│               ├── java/
│               │   └── org/
│               │       └── apache/
│               │           └── tsfile/
│               │               ├── common/
│               │               │   ├── LRUCacheTest.java
│               │               │   ├── bitStream/
│               │               │   │   └── TestBitStream.java
│               │               │   ├── block/
│               │               │   │   ├── BinaryArrayColumnEncoderTest.java
│               │               │   │   ├── ByteArrayColumnEncoderTest.java
│               │               │   │   ├── ColumnEncoderTest.java
│               │               │   │   ├── DictionaryColumnEncodingTest.java
│               │               │   │   ├── Int32ArrayColumnEncoderTest.java
│               │               │   │   ├── Int64ArrayColumnEncoderTest.java
│               │               │   │   ├── NullColumnUnitTest.java
│               │               │   │   ├── RunLengthColumnEncoderTest.java
│               │               │   │   ├── TsBlockSerdeTest.java
│               │               │   │   └── TsBlockTest.java
│               │               │   └── conf/
│               │               │       └── TSFileDescriptorTest.java
│               │               ├── compatibility/
│               │               │   └── CompatibilityTest.java
│               │               ├── compress/
│               │               │   ├── CompressTest.java
│               │               │   ├── GZIPTest.java
│               │               │   ├── LZ4Test.java
│               │               │   ├── LZMA2Test.java
│               │               │   ├── SnappyTest.java
│               │               │   └── ZstdTest.java
│               │               ├── constant/
│               │               │   └── TestConstant.java
│               │               ├── encoding/
│               │               │   ├── SDTEncoderTest.java
│               │               │   ├── bitpacking/
│               │               │   │   ├── IntPackerTest.java
│               │               │   │   └── LongPackerTest.java
│               │               │   ├── decoder/
│               │               │   │   ├── BitmapDecoderTest.java
│               │               │   │   ├── CamelDecoderTest.java
│               │               │   │   ├── ChimpDecoderTest.java
│               │               │   │   ├── DictionaryDecoderTest.java
│               │               │   │   ├── FloatDecoderTest.java
│               │               │   │   ├── GorillaDecoderV1Test.java
│               │               │   │   ├── GorillaDecoderV2Test.java
│               │               │   │   ├── IntRleDecoderTest.java
│               │               │   │   ├── IntZigzagDecoderTest.java
│               │               │   │   ├── LongRleDecoderTest.java
│               │               │   │   ├── LongZigzagDecoderTest.java
│               │               │   │   ├── RLBEDecoderTest.java
│               │               │   │   ├── SprintzDecoderTest.java
│               │               │   │   ├── delta/
│               │               │   │   │   ├── DeltaBinaryEncoderIntegerTest.java
│               │               │   │   │   └── DeltaBinaryEncoderLongTest.java
│               │               │   │   └── regular/
│               │               │   │       ├── RegularDataEncoderIntegerTest.java
│               │               │   │       └── RegularDataEncoderLongTest.java
│               │               │   └── encoder/
│               │               │       └── TSEncodingBuilderTest.java
│               │               ├── encrypt/
│               │               │   └── EncryptTest.java
│               │               ├── exception/
│               │               │   └── TsFileExceptionTest.java
│               │               ├── file/
│               │               │   ├── header/
│               │               │   │   └── PageHeaderTest.java
│               │               │   └── metadata/
│               │               │       ├── ChunkMetadataTest.java
│               │               │       ├── IDeviceIDTest.java
│               │               │       ├── MetadataIndexNodeTest.java
│               │               │       ├── TimeseriesMetadataTest.java
│               │               │       ├── TreeDeviceIdColumnValueExtractorTest.java
│               │               │       ├── TsFileMetadataTest.java
│               │               │       ├── statistics/
│               │               │       │   ├── BooleanStatisticsTest.java
│               │               │       │   ├── DoubleStatisticsTest.java
│               │               │       │   ├── FloatStatisticsTest.java
│               │               │       │   ├── IntegerStatisticsTest.java
│               │               │       │   ├── LongStatisticsTest.java
│               │               │       │   ├── StatisticsTest.java
│               │               │       │   └── StringStatisticsTest.java
│               │               │       └── utils/
│               │               │           ├── TestHelper.java
│               │               │           └── Utils.java
│               │               ├── read/
│               │               │   ├── ExpressionTest.java
│               │               │   ├── GetAllDevicesTest.java
│               │               │   ├── MeasurementChunkMetadataListMapIteratorTest.java
│               │               │   ├── ReadInPartitionTest.java
│               │               │   ├── ReadTest.java
│               │               │   ├── TimePlainEncodeReadTest.java
│               │               │   ├── TimeSeriesMetadataReadTest.java
│               │               │   ├── TsFileDeviceIteratorTest.java
│               │               │   ├── TsFileIOWriterFlushTempChunkMetadataTest.java
│               │               │   ├── TsFileReaderTest.java
│               │               │   ├── TsFileRestorableReaderTest.java
│               │               │   ├── TsFileSequenceReaderTest.java
│               │               │   ├── TsFileSequenceReaderTimeseriesMetadataIteratorTest.java
│               │               │   ├── TsFileTreeReaderTest.java
│               │               │   ├── TsFileV4ReadWriteInterfacesTest.java
│               │               │   ├── UnClosedTsFileReaderTest.java
│               │               │   ├── common/
│               │               │   │   ├── BatchDataTest.java
│               │               │   │   ├── ColumnTest.java
│               │               │   │   ├── FieldTest.java
│               │               │   │   ├── PathTest.java
│               │               │   │   └── TimeRangeTest.java
│               │               │   ├── controller/
│               │               │   │   ├── ChunkLoaderTest.java
│               │               │   │   └── IMetadataQuerierByFileImplTest.java
│               │               │   ├── filter/
│               │               │   │   ├── BinaryOperatorsTest.java
│               │               │   │   ├── BooleanOperatorsTest.java
│               │               │   │   ├── ExtractTimeFilterTest.java
│               │               │   │   ├── ExtractValueFilterTest.java
│               │               │   │   ├── FilterSerializeTest.java
│               │               │   │   ├── FilterTestUtil.java
│               │               │   │   ├── GroupByFilterTest.java
│               │               │   │   ├── GroupByMonthFilterTest.java
│               │               │   │   ├── IExpressionOptimizerTest.java
│               │               │   │   ├── MinTimeMaxTimeFilterTest.java
│               │               │   │   ├── NullOperatorsTest.java
│               │               │   │   ├── NumericalOperatorsTest.java
│               │               │   │   ├── OperatorTest.java
│               │               │   │   ├── PredicateRemoveNotRewriterTest.java
│               │               │   │   ├── StatisticsFilterTest.java
│               │               │   │   └── TsBlockFilterTest.java
│               │               │   ├── query/
│               │               │   │   ├── ResultSetTest.java
│               │               │   │   ├── executor/
│               │               │   │   │   └── QueryExecutorTest.java
│               │               │   │   └── timegenerator/
│               │               │   │       ├── NodeTest.java
│               │               │   │       ├── ReadWriteTest.java
│               │               │   │       ├── ReaderByTimestampTest.java
│               │               │   │       ├── TimeGeneratorReadEmptyTest.java
│               │               │   │       ├── TimeGeneratorReadWriteTest.java
│               │               │   │       ├── TimeGeneratorTest.java
│               │               │   │       └── TsFileGeneratorForSeriesReaderByTimestamp.java
│               │               │   └── reader/
│               │               │       ├── AlignedChunkReaderWithoutStatisticsTest.java
│               │               │       ├── AlignedPageReaderPushDownTest.java
│               │               │       ├── ChunkReaderTest.java
│               │               │       ├── ChunkReaderWithoutStatisticsTest.java
│               │               │       ├── FakedBatchReader.java
│               │               │       ├── FakedMultiBatchReader.java
│               │               │       ├── LazyLoadAlignedPagePointReaderTest.java
│               │               │       ├── PageReaderPushDownTest.java
│               │               │       ├── PageReaderTest.java
│               │               │       ├── ReaderTest.java
│               │               │       ├── ReplaceDecoderTest.java
│               │               │       ├── TsFileLastReaderTest.java
│               │               │       ├── TsFileReaderEmptyChunkTest.java
│               │               │       └── chunk/
│               │               │           └── TableChunkReaderTest.java
│               │               ├── tableview/
│               │               │   ├── PerformanceTest.java
│               │               │   ├── TableSchemaTest.java
│               │               │   └── TableViewTest.java
│               │               ├── utils/
│               │               │   ├── BitMapTest.java
│               │               │   ├── BloomFilterTest.java
│               │               │   ├── BytesUtilsTest.java
│               │               │   ├── DateUtilsTest.java
│               │               │   ├── FileGenerator.java
│               │               │   ├── FilePathUtilsTest.java
│               │               │   ├── FileTestUtils.java
│               │               │   ├── FileTestUtilsTest.java
│               │               │   ├── PairTest.java
│               │               │   ├── ReadWriteForEncodingUtilsTest.java
│               │               │   ├── ReadWriteIOUtilsTest.java
│               │               │   ├── ReadWriteStreamUtilsTest.java
│               │               │   ├── ReadWriteToBytesUtilsTest.java
│               │               │   ├── RecordUtils.java
│               │               │   ├── RecordUtilsTest.java
│               │               │   ├── StringContainerTest.java
│               │               │   ├── TimeDurationTest.java
│               │               │   ├── TsFileGeneratorForTest.java
│               │               │   ├── TsFileUtilsTest.java
│               │               │   ├── TsPrimitiveTypeTest.java
│               │               │   └── TypeCastTest.java
│               │               └── write/
│               │                   ├── ChunkRewriteTest.java
│               │                   ├── DefaultSchemaTemplateTest.java
│               │                   ├── MetadataIndexConstructorTest.java
│               │                   ├── PerfTest.java
│               │                   ├── ReadPageInMemTest.java
│               │                   ├── SameMeasurementsWithDifferentDataTypesTest.java
│               │                   ├── TsFileIOWriterTest.java
│               │                   ├── TsFileIntegrityCheckingTool.java
│               │                   ├── TsFileReadWriteTest.java
│               │                   ├── TsFileWriteApiTest.java
│               │                   ├── TsFileWriterTest.java
│               │                   ├── WriteTest.java
│               │                   ├── record/
│               │                   │   └── TabletTest.java
│               │                   ├── schema/
│               │                   │   └── converter/
│               │                   │       └── SchemaBuilderTest.java
│               │                   └── writer/
│               │                       ├── AlignedChunkWriterImplTest.java
│               │                       ├── ForceAppendTsFileWriterTest.java
│               │                       ├── MeasurementSchemaSerializeTest.java
│               │                       ├── PageWriterTest.java
│               │                       ├── RestorableTsFileIOWriterTest.java
│               │                       ├── TableTsBlock2TsFileWriterTest.java
│               │                       ├── TestTsFileOutput.java
│               │                       ├── TimeChunkWriterTest.java
│               │                       ├── TimePageWriterTest.java
│               │                       ├── TsFileIOWriterMemoryControlTest.java
│               │                       ├── ValueChunkWriterTest.java
│               │                       ├── ValuePageWriterTest.java
│               │                       └── VectorMeasurementSchemaStub.java
│               └── resources/
│                   ├── logback.xml
│                   └── v3TsFile
├── jenkins.pom
├── mvnw
├── mvnw.cmd
├── pom.xml
└── python/
    ├── CLAUDE.md
    ├── README-zh.md
    ├── README.md
    ├── VersionUpdater.groovy
    ├── examples/
    │   └── example.py
    ├── pom.xml
    ├── pyproject.toml
    ├── requirements.txt
    ├── setup.py
    ├── tests/
    │   ├── __init__.py
    │   ├── bench_batch_arrow_vs_dataframe.py
    │   ├── bench_write_arrow_vs_dataframe.py
    │   ├── resources/
    │   │   ├── README.md
    │   │   ├── simple_table_t1.tsfile
    │   │   ├── simple_table_t2.tsfile
    │   │   ├── simple_tree.tsfile
    │   │   └── table_with_time_column.tsfile
    │   ├── test_basic.py
    │   ├── test_batch_arrow.py
    │   ├── test_dataframe.py
    │   ├── test_load_tsfile_from_iotdb.py
    │   ├── test_query_by_row.py
    │   ├── test_reader_metadata.py
    │   ├── test_tag_filter.py
    │   ├── test_tag_filter_query.py
    │   ├── test_to_tsfile.py
    │   ├── test_tsfile_dataset.py
    │   ├── test_write.py
    │   ├── test_write_and_read.py
    │   └── test_write_arrow.py
    └── tsfile/
        ├── __init__.pxd
        ├── __init__.py
        ├── constants.py
        ├── dataset/
        │   ├── __init__.py
        │   ├── dataframe.py
        │   ├── formatting.py
        │   ├── merge.py
        │   ├── metadata.py
        │   ├── reader.py
        │   └── timeseries.py
        ├── date_utils.py
        ├── exceptions.py
        ├── field.py
        ├── row_record.py
        ├── schema.py
        ├── tablet.py
        ├── tag_filter.py
        ├── tsfile_cpp.pxd
        ├── tsfile_py_cpp.pxd
        ├── tsfile_py_cpp.pyx
        ├── tsfile_reader.pyx
        ├── tsfile_table_writer.py
        ├── tsfile_writer.pyx
        └── utils.py
Download .txt
Showing preview only (2,343K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (30347 symbols across 2301 files)

FILE: cpp/bench_mark/bench_mark_src/bench_conf.h
  function namespace (line 22) | namespace bench {

FILE: cpp/bench_mark/bench_mark_src/bench_mark.cc
  function register_timeseries (line 31) | std::vector<int> register_timeseries(storage::TsFileWriter& writer,
  function test_writer_benchmark (line 74) | void test_writer_benchmark(storage::TsFileWriter& writer, int loop_num,
  function main (line 145) | int main() {

FILE: cpp/examples/c_examples/demo_read.c
  function ERRNO (line 27) | ERRNO read_tsfile() {

FILE: cpp/examples/c_examples/demo_write.c
  function ERRNO (line 28) | ERRNO write_tsfile() {

FILE: cpp/examples/cpp_examples/demo_read.cpp
  function demo_read (line 27) | int demo_read() {

FILE: cpp/examples/cpp_examples/demo_write.cpp
  function demo_write (line 26) | int demo_write() {

FILE: cpp/examples/examples.cc
  function main (line 23) | int main() {

FILE: cpp/src/common/allocator/alloc_base.h
  function namespace (line 29) | namespace common {

FILE: cpp/src/common/allocator/byte_stream.h
  function namespace (line 34) | namespace common {
  function FORCE_INLINE (line 50) | FORCE_INLINE void store(const T t) {
  function FORCE_INLINE (line 58) | FORCE_INLINE T atomic_faa(const T increament) {
  function FORCE_INLINE (line 68) | FORCE_INLINE T atomic_aaf(const T increament) {
  function FORCE_INLINE (line 84) | FORCE_INLINE int32_t float_to_int(float f) {
  function FORCE_INLINE (line 98) | FORCE_INLINE float int_to_float(int32_t i) {
  function FORCE_INLINE (line 110) | FORCE_INLINE void float_to_bytes(float f, uint8_t bytes[4]) {
  function FORCE_INLINE (line 139) | FORCE_INLINE float bytes_to_float(uint8_t bytes[4]) {
  function FORCE_INLINE (line 157) | FORCE_INLINE int64_t double_to_long(double d) {
  function FORCE_INLINE (line 168) | FORCE_INLINE double long_to_double(int64_t l) {
  function FORCE_INLINE (line 179) | FORCE_INLINE void double_to_bytes(double d, uint8_t bytes[8]) {
  function FORCE_INLINE (line 205) | FORCE_INLINE double bytes_to_double(uint8_t bytes[8]) {
  function class (line 235) | class ByteStream {
  function wrap_from (line 289) | void wrap_from(const char* buf, int32_t buf_len) {
  function clear_wrapped_buf (line 305) | void clear_wrapped_buf() { wrapped_page_.buf_ = nullptr; }
  function FORCE_INLINE (line 314) | FORCE_INLINE void mark_read_pos() { marked_read_pos_ = read_pos_; }
  function destroy (line 320) | void destroy() { reset(); }
  function reset (line 321) | void reset() {
  function shallow_clone_from (line 340) | void shallow_clone_from(ByteStream& other) {
  function FORCE_INLINE (line 350) | FORCE_INLINE void wrapped_buf_advance_read_pos(uint32_t size) {
  function write_buf (line 360) | int write_buf(const uint8_t* buf, const uint32_t len) {
  function read_buf (line 382) | int read_buf(uint8_t* buf, const uint32_t want_len, uint32_t& read_len) {
  function FORCE_INLINE (line 404) | FORCE_INLINE int write_buf(const char* buf, const uint32_t len) {
  function FORCE_INLINE (line 407) | FORCE_INLINE int read_buf(char* buf, const uint32_t want_len,
  function FORCE_INLINE (line 411) | FORCE_INLINE int read_buf(char* buf, const int32_t want_len,
  function purge_prev_pages (line 417) | void purge_prev_pages(int purge_page_count = INT32_MAX) {
  type Buffer (line 435) | struct Buffer {
  function Buffer (line 442) | Buffer acquire_buf() {
  function buffer_used (line 453) | void buffer_used(uint32_t used_bytes) {
  function advance_write_pos (line 466) | int advance_write_pos(uint32_t len) {
  function get_next_buf (line 487) | struct BufferIterator {
  type Consumer (line 523) | struct Consumer {
  function FORCE_INLINE (line 624) | FORCE_INLINE int check_space() {
  function FORCE_INLINE (line 718) | FORCE_INLINE uint32_t get_var_uint_size(
  function FORCE_INLINE (line 731) | FORCE_INLINE void DEBUG_print_byte_stream(const char* print_tag,
  function FORCE_INLINE (line 756) | FORCE_INLINE void DEBUG_hex_dump_buf(const char* print_tag, const char* ...
  function class (line 769) | class SerializationUtil {
  function FORCE_INLINE (line 774) | FORCE_INLINE static int write_ui16(uint16_t ui16, ByteStream& out) {
  function FORCE_INLINE (line 780) | FORCE_INLINE static int write_ui32(uint32_t ui32, ByteStream& out) {
  function FORCE_INLINE (line 788) | FORCE_INLINE static int write_ui64(uint64_t ui64, ByteStream& out) {
  function FORCE_INLINE (line 853) | FORCE_INLINE static int write_int_little_endian_padded_on_bit_width(
  function FORCE_INLINE (line 867) | FORCE_INLINE static int write_int64_little_endian_padded_on_bit_width(
  function FORCE_INLINE (line 925) | FORCE_INLINE static uint8_t read_ui8(char* buffer) {
  function FORCE_INLINE (line 930) | FORCE_INLINE static uint16_t read_ui16(char* buffer) {
  function FORCE_INLINE (line 937) | FORCE_INLINE static uint32_t read_ui32(char* buffer) {
  function FORCE_INLINE (line 946) | FORCE_INLINE static uint64_t read_ui64(char* buffer) {
  function FORCE_INLINE (line 959) | FORCE_INLINE static int write_float(float f, ByteStream& out) {
  function FORCE_INLINE (line 976) | FORCE_INLINE static float read_float(char* buffer) {
  function FORCE_INLINE (line 980) | FORCE_INLINE static int write_double(double d, ByteStream& out) {
  function FORCE_INLINE (line 997) | FORCE_INLINE static double read_double(char* buffer) {
  function FORCE_INLINE (line 1002) | FORCE_INLINE static int write_i8(int8_t i8, ByteStream& out) {
  function FORCE_INLINE (line 1005) | FORCE_INLINE static int write_i16(int16_t i16, ByteStream& out) {
  function FORCE_INLINE (line 1008) | FORCE_INLINE static int write_i32(int32_t i32, ByteStream& out) {
  function FORCE_INLINE (line 1011) | FORCE_INLINE static int write_i64(int64_t i64, ByteStream& out) {
  function FORCE_INLINE (line 1029) | FORCE_INLINE static int do_write_var_uint(uint32_t ui32, ByteStream& out) {
  function FORCE_INLINE (line 1039) | FORCE_INLINE static int do_write_var_uint(uint32_t ui32, char* out_buf,
  function FORCE_INLINE (line 1103) | FORCE_INLINE static int write_var_int(int32_t i32, ByteStream& out) {
  function FORCE_INLINE (line 1123) | FORCE_INLINE static int write_var_uint(uint32_t ui32, ByteStream& out) {
  function FORCE_INLINE (line 1126) | FORCE_INLINE static int write_var_uint(uint32_t ui32, char* out_buf,
  function FORCE_INLINE (line 1139) | FORCE_INLINE static int write_var_str(const std::string& str,
  function FORCE_INLINE (line 1149) | FORCE_INLINE static int write_var_char_ptr(const std::string* str,
  function FORCE_INLINE (line 1167) | FORCE_INLINE static int read_var_char_ptr(std::string*& str,
  function FORCE_INLINE (line 1197) | FORCE_INLINE static int read_var_str(std::string& str, ByteStream& in) {
  function FORCE_INLINE (line 1218) | FORCE_INLINE static int write_str(const std::string& str, ByteStream& ou...
  function FORCE_INLINE (line 1225) | FORCE_INLINE static int read_str(std::string& str, ByteStream& in) {
  function FORCE_INLINE (line 1246) | FORCE_INLINE static int write_str(const String& str, ByteStream& out) {
  function FORCE_INLINE (line 1276) | FORCE_INLINE static int write_mystring(const String& str, ByteStream& ou...
  function FORCE_INLINE (line 1305) | FORCE_INLINE static int write_char(char ch, ByteStream& out) {
  function FORCE_INLINE (line 1313) | FORCE_INLINE bool deserialize_buf_not_enough(int ret) {

FILE: cpp/src/common/allocator/mem_alloc.cc
  type common (line 34) | namespace common {
    function printCallers (line 103) | void printCallers() {
    function mem_free (line 129) | void mem_free(void* ptr) {
    type Entry (line 184) | struct Entry {

FILE: cpp/src/common/allocator/my_string.h
  function namespace (line 29) | namespace common {
  type StringLessThan (line 212) | struct StringLessThan {

FILE: cpp/src/common/allocator/page_arena.cc
  type common (line 23) | namespace common {

FILE: cpp/src/common/allocator/page_arena.h
  function namespace (line 27) | namespace common {

FILE: cpp/src/common/cache/lru_cache.h
  type std (line 52) | typedef std::list<KeyValuePair<Key, Value>> list_type;
  type Map (line 53) | typedef Map map_type;
  function clear (line 66) | void clear() {
  function insert (line 70) | void insert(const Key& k, Value v) {
  function tryGet (line 85) | bool tryGet(const Key& kIn, Value& vOut) { return tryGetCopy(kIn, vOut); }
  function tryGetCopy (line 87) | bool tryGetCopy(const Key& kIn, Value& vOut) {
  function tryGetRef (line 96) | bool tryGetRef(const Key& kIn, Value& vOut) {
  function Value (line 104) | const Value& getRef(const Key& k) { return get_nolock(k); }
  function Value (line 109) | Value get(const Key& k) { return getCopy(k); }
  function Value (line 114) | Value getCopy(const Key& k) { return get_nolock(k); }
  function remove (line 116) | bool remove(const Key& k) {
  function contains (line 125) | bool contains(const Key& k) const { return cache_.find(k) != cache_.end(...
  function prune (line 145) | size_t prune() {

FILE: cpp/src/common/config/config.h
  function namespace (line 26) | namespace common {

FILE: cpp/src/common/constant/tsfile_constant.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/common/container/array.h
  function namespace (line 38) | namespace common {

FILE: cpp/src/common/container/bit_map.cc
  type common (line 24) | namespace common {

FILE: cpp/src/common/container/bit_map.h
  function namespace (line 27) | namespace common {

FILE: cpp/src/common/container/blocking_queue.cc
  type common (line 22) | namespace common {

FILE: cpp/src/common/container/blocking_queue.h
  function namespace (line 26) | namespace common {

FILE: cpp/src/common/container/byte_buffer.h
  function namespace (line 30) | namespace common {

FILE: cpp/src/common/container/hash_func.h
  function namespace (line 32) | namespace common {
  type SliceHashFunc (line 59) | struct SliceHashFunc {
  type TsIDHashFunc (line 81) | struct TsIDHashFunc {
  type NodeIDHashFunc (line 99) | struct NodeIDHashFunc {

FILE: cpp/src/common/container/hash_node.h
  function namespace (line 24) | namespace common {

FILE: cpp/src/common/container/hash_segm.h
  function namespace (line 31) | namespace common {

FILE: cpp/src/common/container/hash_table.h
  function namespace (line 31) | namespace common {

FILE: cpp/src/common/container/list.h
  function namespace (line 26) | namespace common {
  function push_back (line 90) | int push_back(const T& data) {
  function FORCE_INLINE (line 108) | FORCE_INLINE T& front() {
  function remove (line 113) | int remove(T target) {
  function FORCE_INLINE (line 135) | FORCE_INLINE void clear() {

FILE: cpp/src/common/container/murmur_hash3.cc
  type common (line 21) | namespace common {

FILE: cpp/src/common/container/murmur_hash3.h
  function namespace (line 27) | namespace common {
  function FORCE_INLINE (line 61) | FORCE_INLINE static int64_t fmix(int64_t k) {

FILE: cpp/src/common/container/simple_vector.h
  function namespace (line 26) | namespace common {

FILE: cpp/src/common/container/slice.h
  function namespace (line 32) | namespace common {

FILE: cpp/src/common/container/sorted_array.h
  function namespace (line 41) | namespace common {

FILE: cpp/src/common/datatype/date_converter.h
  function namespace (line 28) | namespace common {

FILE: cpp/src/common/datatype/value.h
  function namespace (line 33) | namespace common {
  function FORCE_INLINE (line 69) | FORCE_INLINE void free_memory() {
  function FORCE_INLINE (line 76) | FORCE_INLINE bool is_type(TSDataType type) const { return type == type_; }
  function set_value (line 84) | void set_value(TSDataType type, T val) {
  function FORCE_INLINE (line 133) | FORCE_INLINE Value* make(TSDataType type) {
  function FORCE_INLINE (line 138) | FORCE_INLINE Value* make_literal(int64_t val) {
  function FORCE_INLINE (line 144) | FORCE_INLINE Value* make_literal(double val) {
  function FORCE_INLINE (line 150) | FORCE_INLINE Value* make_literal(char* string) {
  function FORCE_INLINE (line 156) | FORCE_INLINE Value* make_literal(bool val) {
  function FORCE_INLINE (line 162) | FORCE_INLINE Value* make_null_literal() {
  function FORCE_INLINE (line 167) | FORCE_INLINE std::string value_to_string(Value* value) {

FILE: cpp/src/common/db_common.h
  function namespace (line 31) | namespace common {
  function namespace (line 102) | namespace std {
  function FORCE_INLINE (line 113) | FORCE_INLINE const char* get_data_type_name(TSDataType type) {
  function FORCE_INLINE (line 118) | FORCE_INLINE const char* get_encoding_name(TSEncoding encoding) {
  function FORCE_INLINE (line 123) | FORCE_INLINE const char* get_compression_name(CompressionType type) {
  type Ordering (line 127) | enum Ordering { DESC, ASC }

FILE: cpp/src/common/device_id.cc
  type storage (line 34) | namespace storage {

FILE: cpp/src/common/device_id.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/common/global.cc
  type common (line 34) | namespace common {
    function init_config_value (line 42) | void init_config_value() {
    function TSEncoding (line 81) | extern TSEncoding get_value_encoder(TSDataType data_type) {
    function CompressionType (line 111) | extern CompressionType get_default_compressor() {
    function config_set_page_max_point_count (line 115) | void config_set_page_max_point_count(uint32_t page_max_point_count) {
    function config_set_max_degree_of_index_node (line 119) | void config_set_max_degree_of_index_node(uint32_t max_degree_of_index_...
    function config_set_strict_page_size (line 123) | void config_set_strict_page_size(bool strict_page_size) {
    function set_config_value (line 127) | void set_config_value() {}
    function init_common (line 139) | int init_common() {
    function is_timestamp_column_name (line 158) | bool is_timestamp_column_name(const char* time_col_name) {
    function cols_to_json (line 170) | void cols_to_json(ByteStream* byte_stream,
    function print_backtrace (line 217) | void print_backtrace() {

FILE: cpp/src/common/global.h
  function namespace (line 27) | namespace common {

FILE: cpp/src/common/mutex/mutex.h
  function namespace (line 28) | namespace common {

FILE: cpp/src/common/path.cc
  type storage (line 28) | namespace storage {

FILE: cpp/src/common/path.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/common/record.h
  function namespace (line 31) | namespace storage {
  function device_id_ (line 110) | struct TsRecord {
  function add_point (line 142) | inline int TsRecord::add_point(const std::string& measurement_name,
  function add_point (line 150) | inline int TsRecord::add_point(const std::string& measurement_name,

FILE: cpp/src/common/row_record.h
  function namespace (line 29) | namespace storage {
  function T (line 102) | T get_value() {
  function FORCE_INLINE (line 123) | FORCE_INLINE std::tm get_date_value() {
  function FORCE_INLINE (line 132) | FORCE_INLINE common::String* get_string_value() {
  function FORCE_INLINE (line 155) | FORCE_INLINE Field* make(common::TSDataType type) {
  function FORCE_INLINE (line 160) | FORCE_INLINE Field* make_literal(int64_t val) {
  function FORCE_INLINE (line 166) | FORCE_INLINE Field* make_literal(double val) {
  function FORCE_INLINE (line 172) | FORCE_INLINE Field* make_literal(char* string) {
  function FORCE_INLINE (line 178) | FORCE_INLINE Field* make_literal(bool val) {
  function FORCE_INLINE (line 184) | FORCE_INLINE Field* make_null_literal() {
  function class (line 189) | class RowRecord {
  function FORCE_INLINE (line 219) | FORCE_INLINE void reset() {
  function FORCE_INLINE (line 230) | FORCE_INLINE void add_field(Field* field) { fields_->push_back(field); }
  function FORCE_INLINE (line 232) | FORCE_INLINE void set_timestamp(int64_t time) { time_ = time; }
  function FORCE_INLINE (line 234) | FORCE_INLINE int64_t get_timestamp() { return time_; }
  function FORCE_INLINE (line 236) | FORCE_INLINE Field* get_field(uint32_t index) { return (*fields_)[index]; }
  function FORCE_INLINE (line 238) | FORCE_INLINE std::vector<Field*>* get_fields() { return fields_; }
  function FORCE_INLINE (line 240) | FORCE_INLINE uint32_t get_col_num() { return col_num_; }

FILE: cpp/src/common/schema.h
  function namespace (line 36) | namespace storage {
  function namespace (line 42) | namespace storage {
  function serialize_to (line 92) | int serialize_to(common::ByteStream& out) {
  type std (line 157) | typedef std::map<std::string, MeasurementSchema*> MeasurementSchemaMap;
  type std (line 158) | typedef std::map<std::string, MeasurementSchema*>::iterator
  type std (line 160) | typedef std::pair<MeasurementSchemaMapIter, bool>
  type MeasurementSchemaGroup (line 164) | struct MeasurementSchemaGroup {
  function class (line 185) | class TableSchema {
  function find_id_column_order (line 442) | int32_t find_id_column_order(const std::string& column_name) {
  type Schema (line 468) | struct Schema {
  function finalize_table_schemas (line 484) | void finalize_table_schemas() {

FILE: cpp/src/common/seq_tvlist.h
  function namespace (line 31) | namespace storage {
  type Iterator (line 80) | struct Iterator {
  function virtual (line 107) | virtual ~SeqTVList() {}
  function destroy (line 111) | void destroy() OVERRIDE;
  function FORCE_INLINE (line 129) | FORCE_INLINE TV at(int32_t tv_idx) const {
  function FORCE_INLINE (line 136) | FORCE_INLINE int64_t time_at(int32_t tv_idx) const {
  function TEST_binary_search_upper (line 141) | int32_t TEST_binary_search_upper(int64_t time) {
  function TEST_binary_search_lower (line 144) | int32_t TEST_binary_search_lower(int64_t time) {

FILE: cpp/src/common/statistic.h
  function namespace (line 31) | namespace storage {
  function virtual (line 156) | virtual void destroy() {}
  function reset (line 157) | void reset() { count_ = 0; }
  function update (line 159) | void update(int64_t time, bool value) {
  function update (line 162) | void update(int64_t time, int32_t value) {
  function update (line 165) | void update(int64_t time, int64_t value) {
  function update (line 168) | void update(int64_t time, float value) {
  function update (line 171) | void update(int64_t time, double value) {
  function update (line 174) | void update(int64_t time, common::String value) {
  function update (line 177) | void update(int64_t time) { ASSERT(false); }
  function virtual (line 179) | virtual int serialize_to(common::ByteStream& out) {
  function virtual (line 190) | virtual int serialize_typed_stat(common::ByteStream& out) {
  function virtual (line 199) | virtual int deserialize_from(common::ByteStream& in) {
  function virtual (line 211) | virtual int deserialize_typed_stat(common::ByteStream& in) {
  function virtual (line 215) | virtual int merge_with(Statistic* that) {
  function virtual (line 219) | virtual int deep_copy_from(Statistic* stat) {
  function virtual (line 223) | virtual common::TSDataType get_type() {
  function class (line 538) | class BooleanStatistic : public Statistic {
  function class (line 601) | class Int32Statistic : public Statistic {
  function class (line 698) | class DateStatistic : public Int32Statistic {
  function class (line 702) | class Int64Statistic : public Statistic {
  function class (line 791) | class FloatStatistic : public Statistic {
  function class (line 868) | class DoubleStatistic : public Statistic {
  function class (line 947) | class BinaryStatistic : public Statistic
  function class (line 953) | class TimeStatistic : public Statistic {
  function class (line 994) | class TimestampStatistics : public Int64Statistic {
  function class (line 998) | class StringStatistic : public Statistic {
  function destroy (line 1025) | void destroy() {
  function FORCE_INLINE (line 1033) | FORCE_INLINE void reset() {
  function clone_from (line 1042) | void clone_from(const StringStatistic& that) {
  function FORCE_INLINE (line 1053) | FORCE_INLINE void update(int64_t time, common::String value) {
  function FORCE_INLINE (line 1057) | FORCE_INLINE common::TSDataType get_type() { return common::STRING; }
  function serialize_typed_stat (line 1059) | int serialize_typed_stat(common::ByteStream& out) {
  function deserialize_typed_stat (line 1071) | int deserialize_typed_stat(common::ByteStream& in) {
  function merge_with (line 1084) | int merge_with(Statistic* stat) {
  function deep_copy_from (line 1087) | int deep_copy_from(Statistic* stat) {
  function class (line 1096) | class TextStatistic : public Statistic {
  function class (line 1170) | class BlobStatistic : public Statistic {
  function FORCE_INLINE (line 1220) | FORCE_INLINE uint32_t get_typed_statistic_sizeof(common::TSDataType type) {
  function FORCE_INLINE (line 1263) | FORCE_INLINE Statistic* placement_new_statistic(common::TSDataType type,
  function FORCE_INLINE (line 1311) | FORCE_INLINE void clone_statistic(Statistic* from, Statistic* to,
  function class (line 1383) | class StatisticFactory {

FILE: cpp/src/common/tablet.cc
  type storage (line 30) | namespace storage {

FILE: cpp/src/common/tablet.h
  function namespace (line 33) | namespace storage {
  type ValueMatrixEntry (line 115) | struct ValueMatrixEntry {
  function set_table_name (line 234) | void set_table_name(const std::string& table_name) {
  function get_timestamp (line 239) | int64_t get_timestamp(uint32_t row_index) const {
  function is_null (line 242) | bool is_null(uint32_t row_index, uint32_t col_index) const {
  function FORCE_INLINE (line 321) | FORCE_INLINE const std::string& get_column_name(
  function set_column_name (line 326) | void set_column_name(uint32_t column_index, const std::string& name) {
  function set_schema_map (line 334) | void set_schema_map(const std::map<std::string, int>& schema_map) {

FILE: cpp/src/common/thread_pool.h
  function namespace (line 33) | namespace common {
  function wait_all (line 85) | void wait_all() {

FILE: cpp/src/common/tsblock/tsblock.cc
  type common (line 23) | namespace common {
    function merge_tsblock_by_row (line 295) | int merge_tsblock_by_row(TsBlock* sea, TsBlock* river) {

FILE: cpp/src/common/tsblock/tsblock.h
  function namespace (line 33) | namespace common {
  function class (line 129) | class RowAppender {
  function class (line 176) | class ColAppender {
  function FORCE_INLINE (line 187) | FORCE_INLINE bool add_row() {
  function FORCE_INLINE (line 197) | FORCE_INLINE void append(const char* value, uint32_t len) {
  function FORCE_INLINE (line 201) | FORCE_INLINE void append_null() { vec_->set_null(column_row_count_ - 1); }
  function FORCE_INLINE (line 203) | FORCE_INLINE uint32_t get_col_row_count() { return column_row_count_; }
  function FORCE_INLINE (line 204) | FORCE_INLINE uint32_t get_column_index() { return column_index_; }
  function FORCE_INLINE (line 205) | FORCE_INLINE int fill_null(uint32_t end_index) {
  function FORCE_INLINE (line 214) | FORCE_INLINE int fill(const char* value, uint32_t len, uint32_t end_inde...
  function FORCE_INLINE (line 223) | FORCE_INLINE void reset() { column_row_count_ = 0; }
  function class (line 233) | class RowIterator {
  function class (line 283) | class ColIterator {
  function FORCE_INLINE (line 295) | FORCE_INLINE void next() {
  function FORCE_INLINE (line 302) | FORCE_INLINE bool has_null() { return vec_->has_null(); }
  function FORCE_INLINE (line 304) | FORCE_INLINE TSDataType get_data_type() { return vec_->get_vector_type(); }
  function FORCE_INLINE (line 306) | FORCE_INLINE char* read(uint32_t* __restrict len, bool* __restrict null) {
  function FORCE_INLINE (line 310) | FORCE_INLINE char* read(uint32_t* len) { return vec_->read(len); }
  function FORCE_INLINE (line 312) | FORCE_INLINE uint32_t get_column_index() { return column_index_; }

FILE: cpp/src/common/tsblock/tuple_desc.cc
  type common (line 21) | namespace common {
    function get_len (line 66) | uint32_t get_len(TSDataType type) {

FILE: cpp/src/common/tsblock/tuple_desc.h
  function namespace (line 31) | namespace common {

FILE: cpp/src/common/tsblock/vector/fixed_length_vector.h
  function namespace (line 24) | namespace common {

FILE: cpp/src/common/tsblock/vector/variable_length_vector.h
  function namespace (line 24) | namespace common {

FILE: cpp/src/common/tsblock/vector/vector.h
  function namespace (line 28) | namespace common {

FILE: cpp/src/common/tsfile_common.cc
  type storage (line 29) | namespace storage {

FILE: cpp/src/common/tsfile_common.h
  function namespace (line 42) | namespace storage {
  function deserialize_from (line 76) | int deserialize_from(common::ByteStream& in, bool deserialize_stat,
  function estimat_max_page_header_size_without_statistics (line 94) | static int estimat_max_page_header_size_without_statistics() {
  type ChunkMeta (line 195) | struct ChunkMeta {
  function clone_from (line 229) | int clone_from(ChunkMeta& that, common::PageArena* pa) {
  function serialize_to (line 247) | int serialize_to(common::ByteStream& out, bool serialize_statistic) {
  function deserialize_from (line 256) | int deserialize_from(common::ByteStream& in, bool deserialize_stat,
  type ChunkGroupMeta (line 288) | struct ChunkGroupMeta {
  function push (line 299) | int push(ChunkMeta* cm) {
  function class (line 304) | class ITimeseriesIndex {
  function class (line 338) | class TimeseriesIndex : public ITimeseriesIndex {
  function destroy (line 359) | void destroy() {
  function reset (line 363) | void reset()  // FIXME reuse
  function FORCE_INLINE (line 377) | FORCE_INLINE int set_measurement_name(common::String& measurement_name,
  function FORCE_INLINE (line 381) | FORCE_INLINE void set_measurement_name(common::String& measurement_name) {
  function virtual (line 387) | virtual inline common::SimpleList<ChunkMeta*>* get_chunk_meta_list() con...
  function FORCE_INLINE (line 390) | FORCE_INLINE void set_ts_meta_type(char ts_meta_type) {
  function FORCE_INLINE (line 393) | FORCE_INLINE void set_data_type(common::TSDataType data_type) {
  function init_statistic (line 399) | int init_statistic(common::TSDataType data_type) {
  function virtual (line 412) | virtual Statistic* get_statistic() const { return statistic_; }
  function FORCE_INLINE (line 413) | FORCE_INLINE void finish() {
  function serialize_to (line 418) | int serialize_to(common::ByteStream& out) {
  function deserialize_from (line 435) | int deserialize_from(common::ByteStream& in, common::PageArena* pa) {
  function clone_from (line 482) | int clone_from(const TimeseriesIndex& that, common::PageArena* pa) {
  function class (line 575) | class AlignedTimeseriesIndex : public ITimeseriesIndex {
  function class (line 611) | class TSMIterator {
  function virtual (line 663) | virtual std::string to_string() const = 0;
  function IComparable (line 699) | struct StringComparable : IComparable {
  type IMetaIndexEntry (line 728) | struct IMetaIndexEntry {
  function virtual (line 737) | virtual int serialize_to(common::ByteStream& out) { return common::E_OK; }
  function virtual (line 738) | virtual int deserialize_from(common::ByteStream& out,
  function virtual (line 742) | virtual int64_t get_offset() const = 0;
  function virtual (line 751) | virtual void print(std::ostream& os) const {}
  function IMetaIndexEntry (line 760) | struct DeviceMetaIndexEntry : IMetaIndexEntry {
  function IMetaIndexEntry (line 820) | struct MeasurementMetaIndexEntry : IMetaIndexEntry {
  function FORCE_INLINE (line 833) | FORCE_INLINE int init(const std::string& str, const int64_t offset,
  function serialize_to (line 839) | int serialize_to(common::ByteStream& out) override {
  function deserialize_from (line 848) | int deserialize_from(common::ByteStream& in,
  function override (line 859) | const override {
  function override (line 866) | const override {
  function print (line 873) | void print(std::ostream& os) const override {
  type MetaIndexNodeType (line 879) | enum MetaIndexNodeType {
  type MetaIndexNode (line 892) | struct MetaIndexNode {
  function self_deleter (line 912) | static void self_deleter(MetaIndexNode* ptr) {
  function serialize_to (line 923) | int serialize_to(common::ByteStream& out) {
  function deserialize_from (line 952) | int deserialize_from(const char* buf, int len) {
  function deserialize_from (line 957) | int deserialize_from(common::ByteStream& in) {
  function device_deserialize_from (line 993) | int device_deserialize_from(const char* buf, int len) {
  function device_deserialize_from (line 998) | int device_deserialize_from(common::ByteStream& in) {
  function FORCE_INLINE (line 1058) | FORCE_INLINE int push_entry(std::shared_ptr<IMetaIndexEntry> entry) {
  function FORCE_INLINE (line 1065) | FORCE_INLINE void destroy() {
  type TsFileMeta (line 1073) | struct TsFileMeta {
  function get_table_schema (line 1098) | int get_table_schema(const std::string& table_name,

FILE: cpp/src/compress/compressor.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/compress/compressor_factory.h
  function namespace (line 41) | namespace storage {

FILE: cpp/src/compress/gzip_compressor.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/compress/gzip_compressor.h
  function namespace (line 39) | namespace storage {

FILE: cpp/src/compress/lz4_compressor.cc
  type storage (line 25) | namespace storage {

FILE: cpp/src/compress/lz4_compressor.h
  function namespace (line 37) | namespace storage {

FILE: cpp/src/compress/lzo_compressor.cc
  type storage (line 25) | namespace storage {

FILE: cpp/src/compress/lzo_compressor.h
  function namespace (line 37) | namespace storage {

FILE: cpp/src/compress/snappy_compressor.cc
  type storage (line 25) | namespace storage {

FILE: cpp/src/compress/snappy_compressor.h
  function namespace (line 35) | namespace storage {

FILE: cpp/src/compress/uncompressed_compressor.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/cwrapper/arrow_c.cc
  type arrow (line 34) | namespace arrow {
    type ArrowArrayData (line 68) | struct ArrowArrayData {
    type ArrowSchemaData (line 75) | struct ArrowSchemaData {
    type StructArrayData (line 84) | struct StructArrayData {
    function GetNullBitmapSize (line 115) | static size_t GetNullBitmapSize(int64_t length) { return (length + 7) ...
    function BuildNullBitmap (line 120) | static int BuildNullBitmap(common::Vector* vec, uint32_t row_count,
    function ResetArrowArray (line 144) | static void ResetArrowArray(ArrowArray* array) {
    function ReleaseArrowChildren (line 159) | static void ReleaseArrowChildren(ArrowArray** children, size_t n_child...
    function FreeArrowArrayData (line 173) | static void FreeArrowArrayData(ArrowArrayData* data) {
    function ReleaseArrowArray (line 187) | static void ReleaseArrowArray(ArrowArray* array) {
    function ReleaseStructArrowArray (line 196) | static void ReleaseStructArrowArray(ArrowArray* array) {
    function FreeArrowSchemaData (line 208) | static void FreeArrowSchemaData(ArrowSchemaData* data) {
    function ReleaseArrowSchema (line 224) | static void ReleaseArrowSchema(ArrowSchema* schema) {
    function ArrowArrayData (line 241) | static ArrowArrayData* AllocArrowArrayData(int64_t n_buffers) {
    function FinalizeArrowArray (line 258) | static void FinalizeArrowArray(ArrowArray* out_array,
    function BuildFixedLengthArrowArrayC (line 272) | inline int BuildFixedLengthArrowArrayC(common::Vector* vec, uint32_t r...
    function BuildStringArrowArrayC (line 378) | static int BuildStringArrowArrayC(common::Vector* vec, uint32_t row_co...
    function BuildDateArrowArrayC (line 467) | static int BuildDateArrowArrayC(common::Vector* vec, uint32_t row_count,
    function BuildColumnArrowArray (line 525) | static int BuildColumnArrowArray(common::Vector* vec, uint32_t row_count,
    function BuildColumnArrowSchema (line 573) | static int BuildColumnArrowSchema(common::TSDataType data_type,
    function TsBlockToArrowStruct (line 604) | int TsBlockToArrowStruct(common::TsBlock& tsblock, ArrowArray* out_array,
    function ArrowIsValid (line 755) | static bool ArrowIsValid(const ArrowArray* arr, int64_t row) {
    function ArrowFormatToDataType (line 763) | static common::TSDataType ArrowFormatToDataType(const char* format) {
    function ArrowStructToTablet (line 784) | int ArrowStructToTablet(const char* table_name, const ArrowArray* in_a...

FILE: cpp/src/cwrapper/tsfile_cwrapper.cc
  type arrow (line 42) | namespace arrow {
  function init_tsfile_config (line 57) | void init_tsfile_config() {
  function get_global_time_encoding (line 64) | uint8_t get_global_time_encoding() {
  function get_global_time_compression (line 68) | uint8_t get_global_time_compression() {
  function get_datatype_encoding (line 72) | uint8_t get_datatype_encoding(uint8_t data_type) {
  function get_global_compression (line 76) | uint8_t get_global_compression() { return common::get_global_compression...
  function set_global_time_encoding (line 78) | int set_global_time_encoding(uint8_t encoding) {
  function set_global_time_compression (line 82) | int set_global_time_compression(uint8_t compression) {
  function set_datatype_encoding (line 86) | int set_datatype_encoding(uint8_t data_type, uint8_t encoding) {
  function set_global_compression (line 90) | int set_global_compression(uint8_t compression) {
  function WriteFile (line 94) | WriteFile write_file_new(const char* pathname, ERRNO* err_code) {
  function TsFileWriter (line 114) | TsFileWriter tsfile_writer_new(WriteFile file, TableSchema* schema,
  function TsFileWriter (line 151) | TsFileWriter tsfile_writer_new_with_memory_threshold(WriteFile file,
  function TsFileReader (line 185) | TsFileReader tsfile_reader_new(const char* pathname, ERRNO* err_code) {
  function ERRNO (line 197) | ERRNO tsfile_writer_close(TsFileWriter writer) {
  function ERRNO (line 214) | ERRNO tsfile_reader_close(TsFileReader reader) {
  function Tablet (line 220) | Tablet tablet_new(char** column_name_list, TSDataType* data_types,
  function tablet_get_cur_row_size (line 232) | uint32_t tablet_get_cur_row_size(Tablet tablet) {
  function ERRNO (line 236) | ERRNO tablet_add_timestamp(Tablet tablet, uint32_t row_index,
  function ERRNO (line 255) | ERRNO tablet_add_value_by_name_string_with_len(Tablet tablet,
  function ERRNO (line 273) | ERRNO tablet_add_value_by_index_string_with_len(Tablet tablet,
  function TsRecord (line 289) | TsRecord _ts_record_new(const char* device_id, Timestamp timestamp,
  function ERRNO (line 306) | ERRNO _insert_data_into_ts_record_by_name_string_with_len(
  function ERRNO (line 339) | ERRNO tsfile_writer_write(TsFileWriter writer, Tablet tablet) {
  function ResultSet (line 352) | ResultSet tsfile_query_table(TsFileReader reader, const char* table_name,
  function ResultSet (line 367) | ResultSet tsfile_query_table_on_tree(TsFileReader reader, char** columns,
  function ResultSet (line 381) | ResultSet tsfile_reader_query_tree_by_row(TsFileReader reader,
  function ResultSet (line 414) | ResultSet tsfile_reader_query_table_by_row(
  function ResultSet (line 436) | ResultSet tsfile_query_table_batch(TsFileReader reader, const char* tabl...
  function tsfile_result_set_next (line 453) | bool tsfile_result_set_next(ResultSet result_set, ERRNO* err_code) {
  function ERRNO (line 465) | ERRNO tsfile_result_set_get_next_tsblock_as_arrow(ResultSet result_set,
  function tsfile_result_set_is_null_by_name (line 546) | bool tsfile_result_set_is_null_by_name(ResultSet result_set,
  function tsfile_result_set_is_null_by_index (line 552) | bool tsfile_result_set_is_null_by_index(const ResultSet result_set,
  function ResultSetMetaData (line 558) | ResultSetMetaData tsfile_result_set_get_metadata(ResultSet result_set) {
  function TSDataType (line 589) | TSDataType tsfile_result_set_metadata_get_data_type(
  function tsfile_result_set_metadata_get_column_num (line 597) | int tsfile_result_set_metadata_get_column_num(ResultSetMetaData result_s...
  function TableSchema (line 601) | TableSchema tsfile_reader_get_table_schema(TsFileReader reader,
  function TableSchema (line 624) | TableSchema* tsfile_reader_get_all_table_schemas(TsFileReader reader,
  function DeviceSchema (line 652) | DeviceSchema* tsfile_reader_get_all_timeseries_schemas(TsFileReader reader,
  function tsfile_device_id_free_contents (line 705) | void tsfile_device_id_free_contents(DeviceID* d) {
  function TSDataType (line 738) | static TSDataType cpp_stat_type_to_c(common::TSDataType t) {
  function free_timeseries_statistic_heap (line 742) | void free_timeseries_statistic_heap(TimeseriesStatistic* s) {
  function clear_timeseries_statistic (line 772) | void clear_timeseries_statistic(TimeseriesStatistic* s) {
  function fill_timeseries_statistic (line 781) | int fill_timeseries_statistic(storage::Statistic* st,
  function fill_timeline_statistic (line 973) | int fill_timeline_statistic(storage::ITimeseriesIndex* idx,
  function free_device_timeseries_metadata_entries_partial (line 1048) | void free_device_timeseries_metadata_entries_partial(
  function duplicate_ideviceid_to_device_fields (line 1074) | int duplicate_ideviceid_to_device_fields(storage::IDeviceID* id,
  function fill_device_id_from_ideviceid (line 1143) | int fill_device_id_from_ideviceid(storage::IDeviceID* id, DeviceID* out) {
  function clear_metadata_entry_device_only (line 1149) | void clear_metadata_entry_device_only(DeviceTimeseriesMetadataEntry* e) {
  function ERRNO (line 1156) | ERRNO populate_c_metadata_map_from_cpp(
  function tsfile_free_device_id_array (line 1282) | void tsfile_free_device_id_array(DeviceID* devices, uint32_t length) {
  function ERRNO (line 1292) | ERRNO tsfile_reader_get_all_devices(TsFileReader reader, DeviceID** out_...
  function ERRNO (line 1321) | ERRNO tsfile_reader_get_timeseries_metadata_all(
  function ERRNO (line 1333) | ERRNO tsfile_reader_get_timeseries_metadata_for_devices(
  function tsfile_free_device_timeseries_metadata_map (line 1364) | void tsfile_free_device_timeseries_metadata_map(
  function _free_tsfile_ts_record (line 1376) | void _free_tsfile_ts_record(TsRecord* record) {
  function free_tablet (line 1383) | void free_tablet(Tablet* tablet) {
  function free_tsfile_result_set (line 1390) | void free_tsfile_result_set(ResultSet* result_set) {
  function free_result_set_meta_data (line 1397) | void free_result_set_meta_data(ResultSetMetaData result_set_meta_data) {
  function free_device_schema (line 1405) | void free_device_schema(DeviceSchema schema) {
  function free_timeseries_schema (line 1412) | void free_timeseries_schema(TimeseriesSchema schema) {
  function free_table_schema (line 1415) | void free_table_schema(TableSchema schema) {
  function free_column_schema (line 1424) | void free_column_schema(ColumnSchema schema) { free(schema.column_name); }
  function free_write_file (line 1426) | void free_write_file(WriteFile* write_file) {
  function TsFileWriter (line 1433) | TsFileWriter _tsfile_writer_new(const char* pathname, uint64_t memory_th...
  function Tablet (line 1451) | Tablet _tablet_new_with_target_name(const char* device_id,
  function ERRNO (line 1470) | ERRNO _tsfile_writer_register_table(TsFileWriter writer, TableSchema* sc...
  function ERRNO (line 1487) | ERRNO _tsfile_writer_register_timeseries(TsFileWriter writer,
  function ERRNO (line 1502) | ERRNO _tsfile_writer_register_device(TsFileWriter writer,
  function ERRNO (line 1522) | ERRNO _tsfile_writer_write_tablet(TsFileWriter writer, Tablet tablet) {
  function ERRNO (line 1528) | ERRNO _tsfile_writer_write_table(TsFileWriter writer, Tablet tablet) {
  function ERRNO (line 1534) | ERRNO _tsfile_writer_write_arrow_table(TsFileWriter writer,
  function ERRNO (line 1550) | ERRNO _tsfile_writer_write_ts_record(TsFileWriter writer, TsRecord data) {
  function ERRNO (line 1557) | ERRNO _tsfile_writer_close(TsFileWriter writer) {
  function ERRNO (line 1571) | ERRNO _tsfile_writer_flush(TsFileWriter writer) {
  function ResultSet (line 1576) | ResultSet _tsfile_reader_query_device(TsFileReader reader,
  function TagFilterHandle (line 1595) | TagFilterHandle tsfile_tag_filter_create(TsFileReader reader,
  function TagFilterHandle (line 1641) | TagFilterHandle tsfile_tag_filter_between(TsFileReader reader,
  function TagFilterHandle (line 1660) | TagFilterHandle tsfile_tag_filter_and(TagFilterHandle left,
  function TagFilterHandle (line 1667) | TagFilterHandle tsfile_tag_filter_or(TagFilterHandle left,
  function TagFilterHandle (line 1674) | TagFilterHandle tsfile_tag_filter_not(TagFilterHandle filter) {
  function tsfile_tag_filter_free (line 1679) | void tsfile_tag_filter_free(TagFilterHandle filter) {
  function ResultSet (line 1683) | ResultSet tsfile_query_table_with_tag_filter(

FILE: cpp/src/cwrapper/tsfile_cwrapper.h
  type TSDataType (line 31) | typedef enum {
  type TSEncoding (line 47) | typedef enum {
  type CompressionType (line 63) | typedef enum {
  type ColumnCategory (line 75) | typedef enum column_category {
  type ColumnSchema (line 82) | typedef struct column_schema {
  type TableSchema (line 88) | typedef struct table_schema {
  type TimeseriesSchema (line 94) | typedef struct timeseries_schema {
  type DeviceSchema (line 101) | typedef struct device_schema {
  type TsFileStatisticBase (line 117) | typedef struct TsFileStatisticBase {
  type TsFileBoolStatistic (line 125) | typedef struct TsFileBoolStatistic {
  type TsFileIntStatistic (line 132) | typedef struct TsFileIntStatistic {
  type TsFileFloatStatistic (line 141) | typedef struct TsFileFloatStatistic {
  type TsFileStringStatistic (line 150) | typedef struct TsFileStringStatistic {
  type TsFileTextStatistic (line 158) | typedef struct TsFileTextStatistic {
  type TimeseriesStatisticUnion (line 167) | typedef union TimeseriesStatisticUnion {
  type TimeseriesStatistic (line 181) | typedef struct TimeseriesStatistic {
  type TimeseriesMetadata (line 191) | typedef struct TimeseriesMetadata {
  type DeviceID (line 206) | typedef struct DeviceID {
  type DeviceTimeseriesMetadataEntry (line 218) | typedef struct DeviceTimeseriesMetadataEntry {
  type DeviceTimeseriesMetadataMap (line 228) | typedef struct DeviceTimeseriesMetadataMap {
  type ResultSetMetaData (line 236) | typedef struct result_set_meta_data {
  type TsFileConf (line 242) | typedef struct tsfile_conf {
  type ArrowSchema (line 258) | typedef struct arrow_schema {
  type ArrowArray (line 274) | typedef struct arrow_array {
  type ERRNO (line 291) | typedef int32_t ERRNO;
  type Timestamp (line 292) | typedef int64_t Timestamp;
  type TagFilterOp (line 869) | typedef enum {

FILE: cpp/src/encoding/decoder.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/encoding/decoder_factory.h
  function namespace (line 36) | namespace storage {
  function Decoder (line 62) | static Decoder* alloc_value_decoder(common::TSEncoding encoding,
  function free (line 154) | static void free(Decoder* decoder) { common::mem_free(decoder); }

FILE: cpp/src/encoding/dictionary_decoder.h
  function namespace (line 31) | namespace storage {

FILE: cpp/src/encoding/dictionary_encoder.h
  function namespace (line 31) | namespace storage {

FILE: cpp/src/encoding/double_sprintz_decoder.h
  function namespace (line 35) | namespace storage {

FILE: cpp/src/encoding/double_sprintz_encoder.h
  function reset (line 44) | void reset() override {
  function destroy (line 49) | void destroy() override {}
  function get_one_item_max_size (line 51) | int get_one_item_max_size() override {
  function get_max_byte_size (line 55) | int get_max_byte_size() override {
  function encode (line 60) | int encode(bool, common::ByteStream&) override {
  function encode (line 63) | int encode(int32_t, common::ByteStream&) override {
  function encode (line 66) | int encode(int64_t, common::ByteStream&) override {
  function encode (line 69) | int encode(float, common::ByteStream&) override {
  function encode (line 72) | int encode(double value, common::ByteStream& out_stream) override {
  function encode (line 96) | int encode(const common::String, common::ByteStream&) override {

FILE: cpp/src/encoding/encode_utils.h
  function namespace (line 24) | namespace storage {

FILE: cpp/src/encoding/encoder.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/encoding/encoder_factory.h
  function namespace (line 37) | namespace storage {
  function Encoder (line 65) | static Encoder* alloc_time_encoder(common::TSEncoding encoding) {
  function Encoder (line 76) | static Encoder* alloc_value_encoder(common::TSEncoding encoding,
  function free (line 174) | static void free(Encoder* encoder) {

FILE: cpp/src/encoding/fire.h
  function virtual (line 40) | virtual void reset() {
  function class (line 52) | class IntFire : public Fire<int> {
  function class (line 80) | class LongFire : public Fire<int64_t> {
  function reset (line 88) | void reset() override {
  function predict (line 93) | int64_t predict(int64_t value) override {
  function train (line 99) | void train(int64_t pre, int64_t val, int64_t err) override {

FILE: cpp/src/encoding/float_sprintz_decoder.h
  function namespace (line 35) | namespace storage {

FILE: cpp/src/encoding/float_sprintz_encoder.h
  function reset (line 45) | void reset() override {
  function destroy (line 50) | void destroy() override {}
  function get_one_item_max_size (line 52) | int get_one_item_max_size() override {
  function get_max_byte_size (line 56) | int get_max_byte_size() override {
  function encode (line 60) | int encode(bool, common::ByteStream&) override {
  function encode (line 63) | int encode(int32_t, common::ByteStream&) override {
  function encode (line 66) | int encode(int64_t, common::ByteStream&) override {
  function encode (line 69) | int encode(float value, common::ByteStream& out_stream) override {
  function encode (line 93) | int encode(double, common::ByteStream&) override {
  function encode (line 96) | int encode(const common::String, common::ByteStream&) override {

FILE: cpp/src/encoding/gorilla_decoder.h
  function namespace (line 31) | namespace storage {
  function decode (line 263) | float decode(common::ByteStream& in) {
  function cache_next (line 268) | int32_t cache_next(common::ByteStream& in) {
  function class (line 278) | class DoubleGorillaDecoder : public GorillaDecoder<int64_t> {
  type GorillaDecoder (line 301) | typedef GorillaDecoder<int32_t> IntGorillaDecoder;
  type GorillaDecoder (line 302) | typedef GorillaDecoder<int64_t> LongGorillaDecoder;

FILE: cpp/src/encoding/gorilla_encoder.h
  function namespace (line 56) | namespace storage {
  function class (line 297) | class FloatGorillaEncoder : public GorillaEncoder<int32_t> {
  function class (line 326) | class DoubleGorillaEncoder : public GorillaEncoder<int64_t> {
  type GorillaEncoder (line 355) | typedef GorillaEncoder<int32_t> IntGorillaEncoder;
  type GorillaEncoder (line 356) | typedef GorillaEncoder<int64_t> LongGorillaEncoder;

FILE: cpp/src/encoding/int32_packer.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/encoding/int32_rle_decoder.h
  function namespace (line 31) | namespace storage {

FILE: cpp/src/encoding/int32_rle_encoder.h
  function class (line 33) | class Int32RleEncoder : public Encoder {

FILE: cpp/src/encoding/int32_sprintz_decoder.h
  function namespace (line 35) | namespace storage {

FILE: cpp/src/encoding/int32_sprintz_encoder.h
  function reset (line 45) | void reset() override {
  function destroy (line 50) | void destroy() override {}
  function encode (line 52) | int encode(bool value, common::ByteStream& out_stream) override {
  function encode (line 56) | int encode(int64_t value, common::ByteStream& out_stream) override {
  function encode (line 60) | int encode(float value, common::ByteStream& out_stream) override {
  function encode (line 64) | int encode(double value, common::ByteStream& out_stream) override {
  function encode (line 68) | int encode(common::String value, common::ByteStream& out_stream) override {
  function get_one_item_max_size (line 72) | int get_one_item_max_size() override {
  function get_max_byte_size (line 76) | int get_max_byte_size() override {
  function encode (line 80) | int encode(int32_t value, common::ByteStream& out_stream) override {

FILE: cpp/src/encoding/int64_packer.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/encoding/int64_rle_decoder.h
  function namespace (line 31) | namespace storage {

FILE: cpp/src/encoding/int64_rle_encoder.h
  function class (line 33) | class Int64RleEncoder : public Encoder {

FILE: cpp/src/encoding/int64_sprintz_decoder.h
  function namespace (line 35) | namespace storage {

FILE: cpp/src/encoding/int64_sprintz_encoder.h
  function reset (line 42) | void reset() override {
  function destroy (line 47) | void destroy() override {}
  function encode (line 49) | int encode(int32_t value, common::ByteStream& out_stream) override {
  function encode (line 53) | int encode(float value, common::ByteStream& out_stream) override {
  function encode (line 57) | int encode(double value, common::ByteStream& out_stream) override {
  function encode (line 61) | int encode(bool value, common::ByteStream& out_stream) override {
  function encode (line 65) | int encode(common::String value, common::ByteStream& out_stream) override {
  function encode (line 69) | int encode(int64_t value, common::ByteStream& out_stream) override {

FILE: cpp/src/encoding/plain_decoder.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/encoding/plain_encoder.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/encoding/sprintz_decoder.h
  function namespace (line 34) | namespace storage {

FILE: cpp/src/encoding/sprintz_encoder.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/encoding/ts2diff_decoder.h
  function namespace (line 32) | namespace storage {

FILE: cpp/src/encoding/ts2diff_encoder.h
  function namespace (line 36) | namespace storage {

FILE: cpp/src/encoding/zigzag_decoder.h
  function namespace (line 30) | namespace storage {

FILE: cpp/src/encoding/zigzag_encoder.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/file/read_file.cc
  type storage (line 37) | namespace storage {
    type stat (line 69) | struct stat
  function pread (line 136) | ssize_t pread(int fd, void* buf, size_t count, uint64_t offset) {

FILE: cpp/src/file/read_file.h
  function namespace (line 30) | namespace storage {

FILE: cpp/src/file/restorable_tsfile_io_writer.cc
  type storage (line 49) | namespace storage {
    type SelfCheckReader (line 66) | struct SelfCheckReader {
      method SelfCheckReader (line 71) | SelfCheckReader() : fd_(-1), file_size_(-1), own_fd_(true) {}
      method init_from_fd (line 73) | int init_from_fd(int fd) {
      method open (line 95) | int open(const std::string& path) {
      method close (line 123) | void close() {
      method file_size (line 135) | int32_t file_size() const { return file_size_; }
      method read (line 137) | int read(int32_t offset, char* buf, int32_t buf_size, int32_t& read_...
    function pread (line 152) | ssize_t pread(int fd, void* buf, size_t count, uint64_t offset) {
    function parse_chunk_header_and_skip (line 173) | static int parse_chunk_header_and_skip(SelfCheckReader& reader,
    function recover_chunk_statistic (line 221) | static int recover_chunk_statistic(
    function TsFileIOWriter (line 863) | TsFileIOWriter* RestorableTsFileIOWriter::get_tsfile_io_writer() {
    function WriteFile (line 867) | WriteFile* RestorableTsFileIOWriter::get_write_file() {

FILE: cpp/src/file/restorable_tsfile_io_writer.h
  function namespace (line 33) | namespace storage {

FILE: cpp/src/file/tsfile_io_reader.cc
  type storage (line 26) | namespace storage {

FILE: cpp/src/file/tsfile_io_reader.h
  function namespace (line 32) | namespace storage {

FILE: cpp/src/file/tsfile_io_writer.cc
  type storage (line 33) | namespace storage {
    function debug_print_chunk_group_meta (line 305) | void debug_print_chunk_group_meta(ChunkGroupMeta* cgm) {
    function debug_print_chunk_group_meta_list (line 318) | void debug_print_chunk_group_meta_list(

FILE: cpp/src/file/tsfile_io_writer.h
  function namespace (line 34) | namespace storage {
  function class (line 51) | class TsFileIOWriter {
  function FORCE_INLINE (line 109) | FORCE_INLINE std::string get_file_path() { return file_->get_file_path(); }
  function FORCE_INLINE (line 110) | FORCE_INLINE std::shared_ptr<Schema> get_schema() { return schema_; }
  function FORCE_INLINE (line 115) | FORCE_INLINE int sync_file() { return file_->sync(); }
  function FORCE_INLINE (line 116) | FORCE_INLINE int close_file() { return file_->close(); }
  function FORCE_INLINE (line 122) | FORCE_INLINE int write_buf(const char* buf, uint32_t len) {
  function FORCE_INLINE (line 125) | FORCE_INLINE int write_byte(const char byte) {
  function FORCE_INLINE (line 128) | FORCE_INLINE int write_string(const std::string& str) {
  function FORCE_INLINE (line 170) | FORCE_INLINE void swap_list(

FILE: cpp/src/file/write_file.cc
  type storage (line 41) | namespace storage {
    type stat (line 69) | struct stat
  function fsync (line 176) | int fsync(int fd) { return _commit(fd); }

FILE: cpp/src/file/write_file.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/parser/generated/PathLexer.h
  function class (line 25) | class PathLexer : public antlr4::Lexer {

FILE: cpp/src/parser/generated/PathParser.h
  function virtual (line 81) | virtual std::string getGrammarFileName() const override;
  function virtual (line 101) | virtual size_t getRuleIndex() const override;
  function class (line 139) | class SuffixPathContext : public antlr4::ParserRuleContext {
  function class (line 160) | class NodeNameContext : public antlr4::ParserRuleContext {
  function virtual (line 185) | virtual size_t getRuleIndex() const override;

FILE: cpp/src/parser/generated/PathParserBaseListener.h
  function class (line 31) | class PathParserBaseListener : public PathParserListener {

FILE: cpp/src/parser/generated/PathParserBaseVisitor.h
  function class (line 31) | class PathParserBaseVisitor : public PathParserVisitor {
  function virtual (line 37) | virtual antlrcpp::Any visitPrefixPath(
  function virtual (line 42) | virtual antlrcpp::Any visitSuffixPath(
  function virtual (line 47) | virtual antlrcpp::Any visitNodeName(
  function virtual (line 52) | virtual antlrcpp::Any visitNodeNameWithoutWildcard(
  function virtual (line 57) | virtual antlrcpp::Any visitNodeNameSlice(
  function virtual (line 62) | virtual antlrcpp::Any visitIdentifier(
  function virtual (line 67) | virtual antlrcpp::Any visitWildcard(

FILE: cpp/src/parser/generated/PathParserListener.h
  function class (line 30) | class PathParserListener : public antlr4::tree::ParseTreeListener {

FILE: cpp/src/parser/generated/PathParserVisitor.h
  function class (line 30) | class PathParserVisitor : public antlr4::tree::AbstractParseTreeVisitor {

FILE: cpp/src/parser/path_nodes_generator.cpp
  type storage (line 30) | namespace storage {

FILE: cpp/src/parser/path_nodes_generator.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/parser/path_parser_error.h
  function class (line 26) | class PathParseError : public antlr4::BaseErrorListener {
  function syntaxError (line 33) | void syntaxError(antlr4::Recognizer* recognizer,

FILE: cpp/src/parser/path_visitor.cpp
  type storage (line 22) | namespace storage {

FILE: cpp/src/parser/path_visitor.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/reader/aligned_chunk_reader.cc
  type storage (line 28) | namespace storage {

FILE: cpp/src/reader/aligned_chunk_reader.h
  function reset (line 62) | void reset() override;
  function FORCE_INLINE (line 89) | FORCE_INLINE bool chunk_has_only_one_page(

FILE: cpp/src/reader/block/device_ordered_tsblock_reader.cc
  type storage (line 22) | namespace storage {

FILE: cpp/src/reader/block/device_ordered_tsblock_reader.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/block/single_device_tsblock_reader.cc
  type storage (line 22) | namespace storage {

FILE: cpp/src/reader/block/single_device_tsblock_reader.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/block/tsblock_reader.h
  function namespace (line 24) | namespace storage {

FILE: cpp/src/reader/bloom_filter.cc
  type storage (line 27) | namespace storage {
    function math_log (line 31) | double math_log(double in) { return math.log(in); }
    function math_log (line 35) | double math_log(double in) {
    function String (line 171) | String BloomFilter::get_entry_string(const String& device_name,

FILE: cpp/src/reader/bloom_filter.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/reader/chunk_reader.cc
  type storage (line 28) | namespace storage {

FILE: cpp/src/reader/chunk_reader.h
  function class (line 33) | class ChunkReader : public IChunkReader {

FILE: cpp/src/reader/column_mapping.h
  function namespace (line 24) | namespace storage {

FILE: cpp/src/reader/device_meta_iterator.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/reader/device_meta_iterator.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/expression.cc
  type storage (line 25) | namespace storage {
    function Expression (line 49) | Expression* QueryExpression::combine_two_global_time_filter(
    function Expression (line 86) | Expression* QueryExpression::merge_second_tree_to_first_tree(
    function Expression (line 109) | Expression* QueryExpression::push_global_time_filter_to_all_series(
    function Expression (line 128) | Expression* QueryExpression::handle_one_global_time_filter(
    function Expression (line 149) | Expression* QueryExpression::optimize(Expression* expression,

FILE: cpp/src/reader/expression.h
  function namespace (line 29) | namespace storage {
  function class (line 85) | class QueryExpression {

FILE: cpp/src/reader/filter/and_filter.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/filter/between.h
  function namespace (line 26) | namespace storage {
  function satisfy (line 99) | bool satisfy(long time, Object value) {
  function satisfy_start_end_time (line 104) | bool satisfy_start_end_time(long start_time, long end_time) {
  function contain_start_end_time (line 116) | bool contain_start_end_time(long start_time, long end_time) {

FILE: cpp/src/reader/filter/binary_filter.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/filter/filter.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/reader/filter/filter_type.h
  function namespace (line 26) | namespace storage {

FILE: cpp/src/reader/filter/gt_eq.h
  function namespace (line 25) | namespace storage {
  function satisfy (line 48) | bool satisfy(long time, Object value) {
  function satisfy_start_end_time (line 53) | bool satisfy_start_end_time(long start_time, long end_time) {
  function contain_start_end_time (line 61) | bool contain_start_end_time(long start_time, long end_time) {

FILE: cpp/src/reader/filter/in.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/filter/not_eq.h
  function namespace (line 25) | namespace storage {
  function satisfy (line 48) | bool satisfy(long time, Object value) {
  function satisfy_start_end_time (line 53) | bool satisfy_start_end_time(long start_time, long end_time) {
  function contain_start_end_time (line 61) | bool contain_start_end_time(long start_time, long end_time) {

FILE: cpp/src/reader/filter/object.h
  function namespace (line 26) | namespace storage {
  function equals (line 85) | bool equals(const Object& object) {
  function operator (line 107) | bool operator==(const Object& object) const {
  function operator (line 129) | bool operator!=(const Object& object) const {
  function operator (line 151) | bool operator<(const Object& object) const {
  function operator (line 173) | bool operator<=(const Object& object) const {
  function operator (line 195) | bool operator>(const Object& object) const {
  function operator (line 217) | bool operator>=(const Object& object) const {
  function operator (line 258) | bool operator>=(const int64_t& time) const {}
  function operator (line 259) | bool operator<=(const int64_t& time) const {}
  function operator (line 260) | bool operator==(const int64_t& time) const {}
  function operator (line 261) | bool operator>(const int64_t& time) const {}
  function operator (line 262) | bool operator<(const int64_t& time) const {}
  function operator (line 263) | bool operator!=(const int64_t& time) const {}

FILE: cpp/src/reader/filter/or_filter.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/filter/tag_filter.cc
  type storage (line 25) | namespace storage {
    function Filter (line 201) | Filter* TagFilterBuilder::eq(const std::string& columnName,
    function Filter (line 208) | Filter* TagFilterBuilder::neq(const std::string& columnName,
    function Filter (line 215) | Filter* TagFilterBuilder::lt(const std::string& columnName,
    function Filter (line 222) | Filter* TagFilterBuilder::lteq(const std::string& columnName,
    function Filter (line 229) | Filter* TagFilterBuilder::gt(const std::string& columnName,
    function Filter (line 236) | Filter* TagFilterBuilder::gteq(const std::string& columnName,
    function Filter (line 243) | Filter* TagFilterBuilder::reg_exp(const std::string& columnName,
    function Filter (line 250) | Filter* TagFilterBuilder::not_reg_exp(const std::string& columnName,
    function Filter (line 257) | Filter* TagFilterBuilder::between_and(const std::string& columnName,
    function Filter (line 265) | Filter* TagFilterBuilder::not_between_and(const std::string& columnName,
    function Filter (line 273) | Filter* TagFilterBuilder::and_filter(Filter* left, Filter* right) {
    function Filter (line 278) | Filter* TagFilterBuilder::or_filter(Filter* left, Filter* right) {
    function Filter (line 283) | Filter* TagFilterBuilder::not_filter(Filter* filter) {

FILE: cpp/src/reader/filter/tag_filter.h
  type table_schema (line 31) | struct table_schema
  function namespace (line 32) | namespace storage {

FILE: cpp/src/reader/filter/time_filter.cc
  type storage (line 23) | namespace storage {
    function TimeEq (line 25) | TimeEq* TimeFilter::eq(int64_t value) { return new TimeEq(value); }
    function TimeGt (line 27) | TimeGt* TimeFilter::gt(int64_t value) { return new TimeGt(value); }
    function TimeGtEq (line 29) | TimeGtEq* TimeFilter::gt_eq(int64_t value) { return new TimeGtEq(value...
    function TimeLt (line 31) | TimeLt* TimeFilter::lt(int64_t value) { return new TimeLt(value); }
    function TimeLtEq (line 33) | TimeLtEq* TimeFilter::lt_eq(int64_t value) { return new TimeLtEq(value...
    function TimeNotEq (line 35) | TimeNotEq* TimeFilter::not_eqt(int64_t value) { return new TimeNotEq(v...
    function TimeIn (line 37) | TimeIn* TimeFilter::in(std::vector<int64_t>& values, bool not_filter) {
    function TimeBetween (line 41) | TimeBetween* TimeFilter::between(int64_t value1, int64_t value2,

FILE: cpp/src/reader/filter/time_filter.h
  function namespace (line 27) | namespace storage {

FILE: cpp/src/reader/filter/time_operator.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/reader/filter/time_operator.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/filter/unary_filter.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/ichunk_reader.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/reader/imeta_data_querier.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/meta_data_querier.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/reader/meta_data_querier.h
  function class (line 33) | class MetadataQuerier : public IMetadataQuerier {

FILE: cpp/src/reader/qds_with_timegenerator.cc
  type storage (line 26) | namespace storage {
    type DG (line 176) | struct DG {
      method DG (line 177) | explicit DG(int& depth) : depth_(depth) { depth_++; }
      method get_indent (line 179) | std::string get_indent() {
    function destroy_node (line 321) | void destroy_node(Node* node) {
    function RowRecord (line 398) | RowRecord* QDSWithTimeGenerator::get_row_record() { return row_record_; }

FILE: cpp/src/reader/qds_with_timegenerator.h
  function namespace (line 27) | namespace storage {
  function class (line 109) | class QDSWithTimeGenerator : public ResultSet {

FILE: cpp/src/reader/qds_without_timegenerator.cc
  type storage (line 27) | namespace storage {
    function RowRecord (line 289) | RowRecord* QDSWithoutTimeGenerator::get_row_record() { return row_reco...

FILE: cpp/src/reader/qds_without_timegenerator.h
  function namespace (line 30) | namespace storage {

FILE: cpp/src/reader/query_executor.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/reader/result_set.h
  function namespace (line 30) | namespace storage {
  type CaseInsensitiveEqual (line 194) | struct CaseInsensitiveEqual {
  function common (line 216) | inline common::String* ResultSet::get_value(const std::string& full_name) {
  function common (line 224) | inline common::String* ResultSet::get_value(uint32_t column_index) {
  function class (line 250) | class ResultSetIterator {
  function ResultSetIterator (line 304) | inline ResultSetIterator ResultSet::iterator() {
  function MAYBE_UNUSED (line 308) | static MAYBE_UNUSED void print_table_result_set(

FILE: cpp/src/reader/table_query_executor.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/reader/table_query_executor.h
  function namespace (line 32) | namespace storage {

FILE: cpp/src/reader/table_result_set.cc
  type storage (line 23) | namespace storage {
    function RowRecord (line 105) | RowRecord* TableResultSet::get_row_record() { return row_record_; }

FILE: cpp/src/reader/table_result_set.h
  function namespace (line 26) | namespace storage {

FILE: cpp/src/reader/task/device_query_task.cc
  type storage (line 22) | namespace storage {
    function DeviceQueryTask (line 23) | DeviceQueryTask* DeviceQueryTask::create_device_query_task(

FILE: cpp/src/reader/task/device_query_task.h
  function namespace (line 25) | namespace storage {

FILE: cpp/src/reader/task/device_task_iterator.cc
  type storage (line 22) | namespace storage {

FILE: cpp/src/reader/task/device_task_iterator.h
  function namespace (line 26) | namespace storage {

FILE: cpp/src/reader/tsfile_executor.cc
  type storage (line 28) | namespace storage {

FILE: cpp/src/reader/tsfile_executor.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/reader/tsfile_reader.cc
  type storage (line 28) | namespace storage {
    function DeviceTimeseriesMetadataMap (line 386) | DeviceTimeseriesMetadataMap TsFileReader::get_timeseries_metadata(
    function DeviceTimeseriesMetadataMap (line 399) | DeviceTimeseriesMetadataMap TsFileReader::get_timeseries_metadata() {
    function ResultSet (line 412) | ResultSet* TsFileReader::read_timeseries(

FILE: cpp/src/reader/tsfile_reader.h
  function namespace (line 28) | namespace storage {
  function namespace (line 35) | namespace storage {

FILE: cpp/src/reader/tsfile_series_scan_iterator.cc
  type storage (line 24) | namespace storage {
    function TsBlock (line 208) | TsBlock* TsFileSeriesScanIterator::alloc_tsblock() {

FILE: cpp/src/reader/tsfile_series_scan_iterator.h
  function namespace (line 34) | namespace storage {
  function FORCE_INLINE (line 109) | FORCE_INLINE void advance_to_next_chunk() {
  function FORCE_INLINE (line 117) | FORCE_INLINE ChunkMeta* get_current_chunk_meta() {

FILE: cpp/src/reader/tsfile_tree_reader.cc
  type storage (line 22) | namespace storage {
    function DeviceTimeseriesMetadataMap (line 89) | DeviceTimeseriesMetadataMap TsFileTreeReader::get_timeseries_metadata(
    function DeviceTimeseriesMetadataMap (line 94) | DeviceTimeseriesMetadataMap TsFileTreeReader::get_timeseries_metadata() {

FILE: cpp/src/reader/tsfile_tree_reader.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/utils/date_utils.h
  function namespace (line 26) | namespace common {

FILE: cpp/src/utils/db_utils.h
  function namespace (line 36) | namespace common {
  function FORCE_INLINE (line 197) | FORCE_INLINE int64_t get_cur_timestamp() {

FILE: cpp/src/utils/errno_define.h
  function namespace (line 22) | namespace common {

FILE: cpp/src/utils/injection.h
  function namespace (line 26) | namespace common {

FILE: cpp/src/utils/storage_utils.h
  function namespace (line 30) | namespace storage {
  function FORCE_INLINE (line 73) | FORCE_INLINE static void to_lowercase_inplace(std::string& str) {
  function FORCE_INLINE (line 78) | FORCE_INLINE static std::string to_lower(const std::string& str) {

FILE: cpp/src/writer/chunk_writer.cc
  type storage (line 26) | namespace storage {

FILE: cpp/src/writer/chunk_writer.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/writer/page_writer.cc
  type storage (line 29) | namespace storage {

FILE: cpp/src/writer/page_writer.h
  function namespace (line 29) | namespace storage {
  function class (line 91) | class PageWriter {

FILE: cpp/src/writer/time_chunk_writer.cc
  type storage (line 26) | namespace storage {

FILE: cpp/src/writer/time_chunk_writer.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/writer/time_page_writer.cc
  type storage (line 29) | namespace storage {

FILE: cpp/src/writer/time_page_writer.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/writer/tsfile_table_writer.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/writer/tsfile_table_writer.h
  function namespace (line 24) | namespace storage {

FILE: cpp/src/writer/tsfile_tree_writer.cc
  type storage (line 24) | namespace storage {

FILE: cpp/src/writer/tsfile_tree_writer.h
  function namespace (line 28) | namespace storage {

FILE: cpp/src/writer/tsfile_writer.cc
  type storage (line 36) | namespace storage {
    type libtsfile (line 38) | namespace libtsfile {
    function libtsfile_init (line 42) | int libtsfile_init() {
    function libtsfile_destroy (line 55) | void libtsfile_destroy() {
    function set_page_max_point_count (line 64) | void set_page_max_point_count(uint32_t page_max_ponint_count) {
    function set_max_degree_of_index_node (line 67) | void set_max_degree_of_index_node(uint32_t max_degree_of_index_node) {
    function set_strict_page_size (line 71) | void set_strict_page_size(bool strict_page_size) {
    function check_file_exist (line 247) | bool check_file_exist(const std::string& file_path) {
    type MeasurementSchemaMapNamesGetter (line 338) | struct MeasurementSchemaMapNamesGetter {
      method MeasurementSchemaMapNamesGetter (line 340) | explicit MeasurementSchemaMapNamesGetter(
      method FORCE_INLINE (line 347) | FORCE_INLINE uint32_t get_count() const {
      method FORCE_INLINE (line 351) | FORCE_INLINE const std::string& next() {
    type MeasurementNamesFromRecord (line 363) | struct MeasurementNamesFromRecord {
      method MeasurementNamesFromRecord (line 365) | explicit MeasurementNamesFromRecord(const TsRecord& record)
      method FORCE_INLINE (line 367) | FORCE_INLINE uint32_t get_count() const { return record_.points_.siz...
      method FORCE_INLINE (line 369) | FORCE_INLINE const std::string& next() {
      method FORCE_INLINE (line 376) | FORCE_INLINE const std::string& at(size_t idx) const {
    type MeasurementNamesFromTablet (line 382) | struct MeasurementNamesFromTablet {
      method MeasurementNamesFromTablet (line 383) | explicit MeasurementNamesFromTablet(const Tablet& tablet)
      method FORCE_INLINE (line 385) | FORCE_INLINE uint32_t get_count() const {
      method FORCE_INLINE (line 388) | FORCE_INLINE const std::string& next() {
      method FORCE_INLINE (line 395) | FORCE_INLINE const std::string& at(size_t idx) const {

FILE: cpp/src/writer/tsfile_writer.h
  function namespace (line 37) | namespace storage {
  function namespace (line 44) | namespace storage {

FILE: cpp/src/writer/value_chunk_writer.cc
  type storage (line 26) | namespace storage {

FILE: cpp/src/writer/value_chunk_writer.h
  function namespace (line 29) | namespace storage {

FILE: cpp/src/writer/value_page_writer.cc
  type storage (line 29) | namespace storage {

FILE: cpp/src/writer/value_page_writer.h
  function namespace (line 31) | namespace storage {
  function class (line 98) | class ValuePageWriter {
  function FORCE_INLINE (line 119) | FORCE_INLINE int write(int64_t timestamp, bool value, bool isnull) {
  function FORCE_INLINE (line 126) | FORCE_INLINE int write(int64_t timestamp, int32_t value, bool isnull) {
  function FORCE_INLINE (line 134) | FORCE_INLINE int write(int64_t timestamp, int64_t value, bool isnull) {
  function FORCE_INLINE (line 142) | FORCE_INLINE int write(int64_t timestamp, float value, bool isnull) {
  function FORCE_INLINE (line 149) | FORCE_INLINE int write(int64_t timestamp, double value, bool isnull) {
  function FORCE_INLINE (line 156) | FORCE_INLINE int write(int64_t timestamp, common::String value,
  function FORCE_INLINE (line 190) | FORCE_INLINE common::ByteStream& get_col_notnull_bitmap_data() {
  function FORCE_INLINE (line 193) | FORCE_INLINE common::ByteStream& get_value_data() {
  function FORCE_INLINE (line 196) | FORCE_INLINE Statistic* get_statistic() { return statistic_; }
  function ValuePageData (line 197) | ValuePageData get_cur_page_data() { return cur_page_data_; }
  function destroy_page_data (line 198) | void destroy_page_data() { cur_page_data_.destroy(); }
  function clear_page_data (line 200) | void clear_page_data() { cur_page_data_.clear(); }

FILE: cpp/test/common/allocator/alloc_base_test.cc
  type common (line 23) | namespace common {
    function TEST (line 28) | TEST(AllocBaseTest, BaseAllocator) {
    function TEST (line 38) | TEST(AllocBaseTest, AllocSmallSize) {
    function TEST (line 50) | TEST(AllocBaseTest, AllocLargeSize) {
    function TEST (line 64) | TEST(AllocBaseTest, ReallocateToLargerSize) {
    function TEST (line 80) | TEST(AllocBaseTest, ReallocateToSmallerSize) {

FILE: cpp/test/common/allocator/byte_stream_test.cc
  type common (line 26) | namespace common {
    function TEST (line 28) | TEST(FloatConversionTest, FloatToBytesAndBytesToFloat) {
    function TEST (line 36) | TEST(DoubleConversionTest, DoubleToBytesAndBytesToDouble) {
    class ByteStreamTest (line 44) | class ByteStreamTest : public ::testing::Test {
      method SetUp (line 46) | void SetUp() override {
      method TearDown (line 50) | void TearDown() override { delete byte_stream_; }
      method write_to_stream (line 52) | void write_to_stream(const uint8_t* data, uint32_t size) {
      method read_from_stream (line 56) | void read_from_stream(uint8_t* buffer, uint32_t want_len,
      method wrap_external_buffer (line 62) | void wrap_external_buffer(const char* buffer, int32_t size) {
    function TEST_F (line 69) | TEST_F(ByteStreamTest, WriteReadTest) {
    function TEST_F (line 84) | TEST_F(ByteStreamTest, WriteReadLargeQuantities) {
    function TEST_F (line 101) | TEST_F(ByteStreamTest, WrapExternalBufferTest) {
    function TEST_F (line 110) | TEST_F(ByteStreamTest, SizeTest) {
    function TEST_F (line 125) | TEST_F(ByteStreamTest, MarkReadPositionTest) {
    function TEST_F (line 141) | TEST_F(ByteStreamTest, ResetTest) {
    function TEST_F (line 155) | TEST_F(ByteStreamTest, WriteMoreThanPageSizeTest) {
    function TEST_F (line 174) | TEST_F(ByteStreamTest, ReadMoreThanAvailableTest) {
    function TEST_F (line 188) | TEST_F(ByteStreamTest, WrapAndClearTest) {
    class SerializationUtilTest (line 198) | class SerializationUtilTest : public ::testing::Test {
      method SetUp (line 200) | void SetUp() override {
      method TearDown (line 204) | void TearDown() override { delete byte_stream_; }
    function TEST_F (line 209) | TEST_F(SerializationUtilTest, WriteReadUI8) {
    function TEST_F (line 220) | TEST_F(SerializationUtilTest, WriteReadUI16) {
    function TEST_F (line 231) | TEST_F(SerializationUtilTest, WriteReadUI32) {
    function TEST_F (line 242) | TEST_F(SerializationUtilTest, WriteReadUI64) {
    function TEST_F (line 253) | TEST_F(SerializationUtilTest, WriteReadFloat) {
    function TEST_F (line 264) | TEST_F(SerializationUtilTest, WriteReadDouble) {
    function TEST_F (line 275) | TEST_F(SerializationUtilTest, WriteReadString) {
    function TEST_F (line 286) | TEST_F(SerializationUtilTest, WriteReadIntLEPaddedBitWidth_BitWidthToo...
    function TEST_F (line 299) | TEST_F(SerializationUtilTest, WriteReadIntLEPaddedBitWidthBoundaryValu...

FILE: cpp/test/common/allocator/my_string_test.cc
  class StringTest (line 25) | class StringTest : public ::testing::Test {
    method SetUp (line 28) | void SetUp() override {}
    method TearDown (line 29) | void TearDown() override {}
  function TEST_F (line 32) | TEST_F(StringTest, DefaultConstructorAndIsNull) {
  function TEST_F (line 39) | TEST_F(StringTest, DupFromString) {
  function TEST_F (line 50) | TEST_F(StringTest, DupFromStringObject) {
  function TEST_F (line 61) | TEST_F(StringTest, BuildFromStringObjects) {
  function TEST_F (line 74) | TEST_F(StringTest, EqualToStringObjects) {
  function TEST_F (line 83) | TEST_F(StringTest, LessThanStringObjects) {
  function TEST_F (line 93) | TEST_F(StringTest, CompareStringObjects) {

FILE: cpp/test/common/allocator/page_arena_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(PageArenaTest, PageArenaInit) {
    function TEST (line 31) | TEST(PageArenaTest, PageArenaAlloc) {
    function TEST (line 40) | TEST(PageArenaTest, AllocWithinPageSize) {
    function TEST (line 49) | TEST(PageArenaTest, AllocMoreThanPageSize) {
    type MyStruct (line 58) | struct MyStruct {
    function TEST (line 64) | TEST(PageArenaAlignedTest, AlignmentWithBuildinTypes) {

FILE: cpp/test/common/container/array_test.cc
  type common (line 23) | namespace common {
    class ArrayTest (line 25) | class ArrayTest : public ::testing::Test {
      method SetUp (line 27) | void SetUp() override {}
      method TearDown (line 28) | void TearDown() override {}
    function TEST_F (line 31) | TEST_F(ArrayTest, Initialization) {
    function TEST_F (line 38) | TEST_F(ArrayTest, CustomInitialization) {
    function TEST_F (line 45) | TEST_F(ArrayTest, InitAndDestroy) {
    function TEST_F (line 54) | TEST_F(ArrayTest, Append) {
    function TEST_F (line 62) | TEST_F(ArrayTest, Insert) {
    function TEST_F (line 75) | TEST_F(ArrayTest, Remove) {
    function TEST_F (line 88) | TEST_F(ArrayTest, RemoveValue) {
    function TEST_F (line 101) | TEST_F(ArrayTest, Find) {
    function TEST_F (line 118) | TEST_F(ArrayTest, AtAndOperator) {
    function TEST_F (line 129) | TEST_F(ArrayTest, Clear) {
    function TEST_F (line 140) | TEST_F(ArrayTest, CapacityExtend) {
    function TEST_F (line 152) | TEST_F(ArrayTest, CapacityShrink) {

FILE: cpp/test/common/container/bit_map_test.cc
  class BitMapTest (line 23) | class BitMapTest : public ::testing::Test {
    method SetUp (line 25) | void SetUp() override {}
    method TearDown (line 26) | void TearDown() override {}
  function TEST_F (line 29) | TEST_F(BitMapTest, Initialization) {
  function TEST_F (line 36) | TEST_F(BitMapTest, Reset) {
  function TEST_F (line 47) | TEST_F(BitMapTest, SetAnd) {
  function TEST_F (line 57) | TEST_F(BitMapTest, Clear) {
  function TEST_F (line 67) | TEST_F(BitMapTest, ClearMultipleBits) {
  function TEST_F (line 87) | TEST_F(BitMapTest, InitializeAsOne) {

FILE: cpp/test/common/container/byte_buffer_test.cc
  class ByteBufferTest (line 25) | class ByteBufferTest : public ::testing::Test {
    method SetUp (line 29) | void SetUp() override { buffer.init(128); }
    method TearDown (line 31) | void TearDown() override {}
  function TEST_F (line 34) | TEST_F(ByteBufferTest, Initialization) {
  function TEST_F (line 38) | TEST_F(ByteBufferTest, AppendFixedValue) {
  function TEST_F (line 46) | TEST_F(ByteBufferTest, AppendVariableValue) {
  function TEST_F (line 59) | TEST_F(ByteBufferTest, ExtendMemory) {

FILE: cpp/test/common/container/list_test.cc
  type common (line 23) | namespace common {
    class SimpleListTest (line 25) | class SimpleListTest : public ::testing::Test {
      method SetUp (line 27) | void SetUp() override { page_arena_.init(1024, MOD_DEFAULT); }
    function TEST_F (line 31) | TEST_F(SimpleListTest, PushBackAndFront) {
    function TEST_F (line 45) | TEST_F(SimpleListTest, Iterator) {
    function TEST_F (line 64) | TEST_F(SimpleListTest, Remove) {
    function TEST_F (line 84) | TEST_F(SimpleListTest, Clear) {

FILE: cpp/test/common/container/murmur_hash3_test.cc
  type common (line 23) | namespace common {
    class Murmur128HashTest (line 25) | class Murmur128HashTest : public ::testing::Test {
      type TestData (line 27) | struct TestData {
        method TestData (line 32) | TestData(std::string stringVal, uint32_t seed,
    function TEST_F (line 49) | TEST_F(Murmur128HashTest, HashString) {

FILE: cpp/test/common/container/simple_vector_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(SimpleVectorTest, PushBackAndSize) {
    function TEST (line 41) | TEST(SimpleVectorTest, AccessVector) {

FILE: cpp/test/common/container/slice_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(SliceTest, DefaultConstructor) {
    function TEST (line 32) | TEST(SliceTest, StringConstructor) {
    function TEST (line 39) | TEST(SliceTest, CStrConstructor) {
    function TEST (line 46) | TEST(SliceTest, CopyConstructor) {
    function TEST (line 53) | TEST(SliceTest, AssignmentOperator) {
    function TEST (line 62) | TEST(SliceTest, DataAccess) {
    function TEST (line 71) | TEST(SliceTest, ToString) {
    function TEST (line 77) | TEST(SliceTest, ComparisonOperators) {
    function TEST (line 86) | TEST(SliceTest, CompareFunction) {

FILE: cpp/test/common/container/sorted_array_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(SortedArrayTest, Initialization) {
    function TEST (line 34) | TEST(SortedArrayTest, InsertAndSize) {
    function TEST (line 43) | TEST(SortedArrayTest, InsertMultiple) {
    function TEST (line 56) | TEST(SortedArrayTest, InsertDuplicate) {
    function TEST (line 66) | TEST(SortedArrayTest, FindValue) {
    function TEST (line 82) | TEST(SortedArrayTest, RemoveValue) {
    function TEST (line 95) | TEST(SortedArrayTest, RemoveByIndex) {
    function TEST (line 109) | TEST(SortedArrayTest, GetMinMax) {
    function TEST (line 120) | TEST(SortedArrayTest, ClearArray) {
    function TEST (line 132) | TEST(SortedArrayTest, ExtendArray) {
    function TEST (line 143) | TEST(SortedArrayTest, ShrinkArray) {

FILE: cpp/test/common/datatype/date_converter_test.cc
  type common (line 26) | namespace common {
    class DateConverterTest (line 28) | class DateConverterTest : public ::testing::Test {
      method SetUp (line 30) | void SetUp() override {
    function TEST_F (line 42) | TEST_F(DateConverterTest, DateToIntValidDate) {
    function TEST_F (line 48) | TEST_F(DateConverterTest, IntToDateValidDate) {
    function TEST_F (line 57) | TEST_F(DateConverterTest, RoundTripConversion) {
    function TEST_F (line 70) | TEST_F(DateConverterTest, BoundaryConditions) {
    function TEST_F (line 89) | TEST_F(DateConverterTest, InvalidInputs) {
    function TEST_F (line 110) | TEST_F(DateConverterTest, UninitializedFields) {

FILE: cpp/test/common/datatype/value_test.cc
  type common (line 24) | namespace common {
    class ValueTest (line 26) | class ValueTest : public ::testing::Test {}
    function TEST_F (line 28) | TEST_F(ValueTest, ConstructorDestructor) {
    function TEST_F (line 34) | TEST_F(ValueTest, SetValue) {
    function TEST_F (line 53) | TEST_F(ValueTest, IsTypeAndIsLiteral) {
    function TEST_F (line 71) | TEST_F(ValueTest, MakeFunctions) {
    function TEST_F (line 101) | TEST_F(ValueTest, GetTypedDataFromValue) {

FILE: cpp/test/common/device_id_test.cc
  type storage (line 26) | namespace storage {
    function TEST (line 28) | TEST(DeviceIdTest, NormalTest) {
    function TEST (line 34) | TEST(DeviceIdTest, DeviceIdStringFallbackSemantic) {
    function TEST (line 44) | TEST(DeviceIdTest, TabletDeviceId) {

FILE: cpp/test/common/record_test.cc
  type storage (line 26) | namespace storage {
    function TEST (line 28) | TEST(DataPointTest, BoolConstructor) {
    function TEST (line 34) | TEST(DataPointTest, Int32Constructor) {
    function TEST (line 40) | TEST(DataPointTest, Int64Constructor) {
    function TEST (line 46) | TEST(DataPointTest, FloatConstructor) {
    function TEST (line 52) | TEST(DataPointTest, DoubleConstructor) {
    function TEST (line 58) | TEST(DataPointTest, SetInt32) {
    function TEST (line 64) | TEST(DataPointTest, SetInt64) {
    function TEST (line 70) | TEST(DataPointTest, SetFloat) {
    function TEST (line 76) | TEST(DataPointTest, SetDouble) {
    function TEST (line 82) | TEST(TsRecordTest, ConstructorWithDeviceName) {
    function TEST (line 88) | TEST(TsRecordTest, ConstructorWithTimestamp) {
    function TEST (line 95) | TEST(TsRecordTest, AddPoint) {
    function TEST (line 103) | TEST(TsRecordTest, LargeQuantities) {

FILE: cpp/test/common/row_record_test.cc
  type storage (line 27) | namespace storage {
    function TEST (line 29) | TEST(FieldTest, DefaultConstructor) {
    function TEST (line 34) | TEST(FieldTest, TypeConstructor) {
    function TEST (line 39) | TEST(FieldTest, IsType) {
    function TEST (line 45) | TEST(FieldTest, IsLiteral) {
    function TEST (line 56) | TEST(FieldTest, SetValue) {
    function TEST (line 72) | TEST(FieldTest, MakeField) {
    function TEST (line 78) | TEST(FieldTest, MakeLiteralInt64) {
    function TEST (line 85) | TEST(FieldTest, MakeLiteralDouble) {
    function TEST (line 92) | TEST(FieldTest, MakeLiteralBool) {
    function TEST (line 99) | TEST(FieldTest, MakeNullLiteral) {
    function TEST (line 105) | TEST(RowRecordTest, ConstructorWithColNum) {
    function TEST (line 113) | TEST(RowRecordTest, ConstructorWithTimestamp) {
    function TEST (line 122) | TEST(RowRecordTest, AddField) {
    function TEST (line 130) | TEST(RowRecordTest, AddFieldLargeQuantities) {
    function TEST (line 139) | TEST(RowRecordTest, SetAndGetTimestamp) {

FILE: cpp/test/common/schema_test.cc
  type storage (line 23) | namespace storage {
    function TEST (line 24) | TEST(MeasurementSchemaTest, DefaultConstructor) {
    function TEST (line 35) | TEST(MeasurementSchemaTest, JavaCppGap) {
    function TEST (line 55) | TEST(MeasurementSchemaTest, ParameterizedConstructor) {
    function TEST (line 67) | TEST(MeasurementSchemaGroupTest, DefaultConstructor) {
    function TEST (line 75) | TEST(TableSchemaTest, BasicTest) {

FILE: cpp/test/common/statistic_test.cc
  type storage (line 23) | namespace storage {
    function TEST (line 24) | TEST(BooleanStatisticTest, BasicFunctionality) {
    function TEST (line 54) | TEST(Int32StatisticTest, BasicFunctionality) {
    function TEST (line 91) | TEST(Int64StatisticTest, BasicFunctionality) {
    function TEST (line 128) | TEST(FloatStatisticTest, BasicFunctionality) {
    function TEST (line 165) | TEST(DoubleStatisticTest, BasicFunctionality) {
    function TEST (line 201) | TEST(TimeStatisticTest, BasicFunctionality) {

FILE: cpp/test/common/tablet_test.cc
  type storage (line 25) | namespace storage {
    function TEST (line 27) | TEST(TabletTest, BasicFunctionality) {
    function TEST (line 49) | TEST(TabletTest, LargeQuantities) {

FILE: cpp/test/common/tsblock/arrow_tsblock_test.cc
  type arrow (line 30) | namespace arrow {
  function VerifyArrowSchema (line 47) | static void VerifyArrowSchema(
  function VerifyArrowArrayData (line 65) | static void VerifyArrowArrayData(const arrow::ArrowArray* array,
  function TEST (line 73) | TEST(ArrowTsBlockTest, NormalTsBlock_NoNulls) {
  function TEST (line 165) | TEST(ArrowTsBlockTest, TsBlock_WithNulls) {
  function TEST (line 250) | TEST(ArrowTsBlockTest, TsBlock_EdgeCases) {
  function TEST (line 345) | TEST(ArrowStructToTabletTest, SlicedArray_WithOffset) {

FILE: cpp/test/common/tsblock/tslock_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(TsBlockTest, Initialization) {
    function TEST (line 34) | TEST(TsBlockTest, RowAppender_AddRow) {
    function TEST (line 47) | TEST(TsBlockTest, ColAppender_AddRowAndAppend) {
    function TEST (line 66) | TEST(TsBlockTest, RowIterator_ReadAndNext) {
    function TEST (line 107) | TEST(TsBlockTest, ColIterator_ReadAndNext) {

FILE: cpp/test/common/tsblock/tuple_desc_test.cc
  type common (line 26) | namespace common {
    function TEST (line 28) | TEST(TupleDescTest, Initialization) {
    function TEST (line 33) | TEST(TupleDescTest, PushBackAndGet) {
    function TEST (line 46) | TEST(TupleDescTest, RemoveColumn) {
    function TEST (line 59) | TEST(TupleDescTest, CloneFrom) {
    function TEST (line 75) | TEST(TupleDescTest, EqualTo) {
    function TEST (line 91) | TEST(TupleDescTest, LargeQuantities) {

FILE: cpp/test/common/tsblock/vector/fixed_length_vector_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(FixedLengthVectorTest, Constructor) {
    function TEST (line 34) | TEST(FixedLengthVectorTest, Reset) {
    function TEST (line 45) | TEST(FixedLengthVectorTest, AppendAndRead) {
    function TEST (line 61) | TEST(FixedLengthVectorTest, ReadWithLen) {

FILE: cpp/test/common/tsblock/vector/variable_length_vector_test.cc
  type common (line 23) | namespace common {
    function TEST (line 25) | TEST(VariableLengthVectorTest, Constructor) {
    function TEST (line 34) | TEST(VariableLengthVectorTest, Reset) {
    function TEST (line 45) | TEST(VariableLengthVectorTest, AppendAndRead) {
    function TEST (line 61) | TEST(VariableLengthVectorTest, ReadWithLen) {

FILE: cpp/test/common/tsfile_common_test.cc
  type storage (line 24) | namespace storage {
    function TEST (line 25) | TEST(PageHeaderTest, DefaultConstructor) {
    function TEST (line 32) | TEST(PageHeaderTest, Reset) {
    function TEST (line 43) | TEST(ChunkHeaderTest, DefaultConstructor) {
    function TEST (line 55) | TEST(ChunkHeaderTest, Reset) {
    function TEST (line 77) | TEST(ChunkMetaTest, DefaultConstructor) {
    function TEST (line 84) | TEST(ChunkMetaTest, Init) {
    function TEST (line 100) | TEST(ChunkGroupMetaTest, Constructor) {
    function TEST (line 106) | TEST(ChunkGroupMetaTest, Init) {
    function TEST (line 114) | TEST(ChunkGroupMetaTest, Push) {
    class TimeseriesIndexTest (line 123) | class TimeseriesIndexTest : public ::testing::Test {}
    function TEST_F (line 125) | TEST_F(TimeseriesIndexTest, ConstructorAndDestructor) {
    function TEST_F (line 132) | TEST_F(TimeseriesIndexTest, ResetFunction) {
    function TEST_F (line 140) | TEST_F(TimeseriesIndexTest, SerializeAndDeserialize) {
    class TSMIteratorTest (line 161) | class TSMIteratorTest : public ::testing::Test {
      method SetUp (line 163) | void SetUp() override {
      method TearDown (line 184) | void TearDown() override {
    function TEST_F (line 198) | TEST_F(TSMIteratorTest, InitSuccess) {
    function TEST_F (line 203) | TEST_F(TSMIteratorTest, InitEmptyList) {
    function TEST_F (line 210) | TEST_F(TSMIteratorTest, HasNext) {
    function TEST_F (line 216) | TEST_F(TSMIteratorTest, GetNext) {
    class MetaIndexEntryTest (line 239) | class MetaIndexEntryTest : public ::testing::Test {
      method SetUp (line 245) | void SetUp() override {
      method TearDown (line 250) | void TearDown() override { delete out_; }
    function TEST_F (line 253) | TEST_F(MetaIndexEntryTest, InitSuccess) {
    function TEST_F (line 260) | TEST_F(MetaIndexEntryTest, SerializeDeserialize) {
    class MetaIndexNodeTest (line 272) | class MetaIndexNodeTest : public ::testing::Test {
      method MetaIndexNodeTest (line 278) | MetaIndexNodeTest() : node_(&pa_) {}
      method SetUp (line 280) | void SetUp() override {
      method TearDown (line 284) | void TearDown() override { delete out_; }
    function TEST_F (line 287) | TEST_F(MetaIndexNodeTest, GetMeasurementFirstChild) {
    function TEST_F (line 297) | TEST_F(MetaIndexNodeTest, GetDeviceFirstChild) {
    function TEST_F (line 306) | TEST_F(MetaIndexNodeTest, MeasurementSerializeDeserialize) {
    function TEST_F (line 324) | TEST_F(MetaIndexNodeTest, DeviceSerializeDeserialize) {
    class MetaIndexNodeSearchTest (line 343) | class MetaIndexNodeSearchTest : public ::testing::Test {
      method MetaIndexNodeSearchTest (line 354) | MetaIndexNodeSearchTest() : node_(&arena_) {
    function TEST_F (line 366) | TEST_F(MetaIndexNodeSearchTest, ExactSearchFound) {
    function TEST_F (line 378) | TEST_F(MetaIndexNodeSearchTest, ExactSearchNotFound) {
    function TEST_F (line 390) | TEST_F(MetaIndexNodeSearchTest, NonExactSearchFound) {
    function TEST_F (line 403) | TEST_F(MetaIndexNodeSearchTest, NonExactSearchNotFound) {
    class TsFileMetaTest (line 415) | class TsFileMetaTest : public ::testing::Test {
      method SetUp (line 421) | void SetUp() override {
      method TearDown (line 425) | void TearDown() override { delete out_; }
    function TEST_F (line 428) | TEST_F(TsFileMetaTest, SerializeDeserialize) {

FILE: cpp/test/compress/gzip_compressor_test.cc
  class GZIPTest (line 31) | class GZIPTest : public ::testing::Test {
    method SetUp (line 33) | void SetUp() override {}
    method TearDown (line 35) | void TearDown() override {}
    method RandomString (line 37) | std::string RandomString(int length) {
  function TEST_F (line 51) | TEST_F(GZIPTest, TestBytes1) {
  function TEST_F (line 97) | TEST_F(GZIPTest, TestBytes2) {

FILE: cpp/test/compress/lz4_compressor_test.cc
  class LZ4Test (line 31) | class LZ4Test : public ::testing::Test {
    method SetUp (line 33) | void SetUp() override {}
    method TearDown (line 35) | void TearDown() override {}
    method RandomString (line 37) | std::string RandomString(int length) {
  function TEST_F (line 51) | TEST_F(LZ4Test, TestBytes1) {
  function TEST_F (line 97) | TEST_F(LZ4Test, TestBytes2) {

FILE: cpp/test/compress/lzo_compressor_test.cc
  class LZOTest (line 31) | class LZOTest : public ::testing::Test {
    method SetUp (line 33) | void SetUp() override {}
    method TearDown (line 35) | void TearDown() override {}
    method RandomString (line 37) | std::string RandomString(int length) {
  function TEST_F (line 51) | TEST_F(LZOTest, TestBytes1) {
  function TEST_F (line 97) | TEST_F(LZOTest, TestBytes2) {

FILE: cpp/test/compress/snappy_compressor_test.cc
  class SnappyTest (line 31) | class SnappyTest : public ::testing::Test {
    method SetUp (line 33) | void SetUp() override {}
    method TearDown (line 35) | void TearDown() override {}
    method RandomString (line 37) | std::string RandomString(int length) {
  function TEST_F (line 51) | TEST_F(SnappyTest, TestBytes1) {
  function TEST_F (line 97) | TEST_F(SnappyTest, TestBytes2) {

FILE: cpp/test/cwrapper/c_release_test.cc
  type CReleaseTest (line 34) | namespace CReleaseTest {
    class CReleaseTest (line 35) | class CReleaseTest : public testing::Test {}
    function TEST_F (line 37) | TEST_F(CReleaseTest, TestCreateFile) {
    function TEST_F (line 58) | TEST_F(CReleaseTest, TsFileWriterNew) {
    function TEST_F (line 119) | TEST_F(CReleaseTest, TsFileWriterWriteDataAbnormalColumn) {
    function TEST_F (line 226) | TEST_F(CReleaseTest, TsFileWriterMultiDataType) {
    function TEST_F (line 347) | TEST_F(CReleaseTest, TsFileWriterConfTest) {

FILE: cpp/test/cwrapper/cwrapper_metadata_test.cc
  type cwrapper_metadata (line 31) | namespace cwrapper_metadata {
    class CWrapperMetadataTest (line 33) | class CWrapperMetadataTest : public testing::Test {}
    function TEST_F (line 35) | TEST_F(CWrapperMetadataTest, GetAllDevicesAndMetadataWithStatistic) {
    function TEST_F (line 134) | TEST_F(CWrapperMetadataTest, GetTimeseriesMetadataBooleanStatistic) {
    function TEST_F (line 184) | TEST_F(CWrapperMetadataTest, GetTimeseriesMetadataStringStatistic) {
    function TEST_F (line 241) | TEST_F(CWrapperMetadataTest, GetTimeseriesMetadataNullDevicePath) {
    function TEST_F (line 268) | TEST_F(CWrapperMetadataTest, GetTimeseriesMetadataInvalidArgs) {

FILE: cpp/test/cwrapper/cwrapper_test.cc
  type storage (line 31) | namespace storage {
    class TsFileReader (line 32) | class TsFileReader
  type cwrapper (line 43) | namespace cwrapper {
    class CWrapperTest (line 44) | class CWrapperTest : public testing::Test {
      method ASSERT_OK (line 46) | static void ASSERT_OK(ERRNO code, const char* msg = "") {
    function TEST_F (line 51) | TEST_F(CWrapperTest, TestForPythonInterfaceInsert) {
    function TEST_F (line 177) | TEST_F(CWrapperTest, WriterFlushTabletAndReadData) {

FILE: cpp/test/cwrapper/query_by_row_cwrapper_test.cc
  class CWrapperQueryByRowTest (line 41) | class CWrapperQueryByRowTest : public ::testing::Test {
    method write_tree_tsfile (line 43) | static void write_tree_tsfile(const char* filename,
    method write_table_tsfile (line 84) | static void write_table_tsfile(const char* filename,
  function TEST_F (line 130) | TEST_F(CWrapperQueryByRowTest, TreeByRowOffsetLimit) {
  function TEST_F (line 196) | TEST_F(CWrapperQueryByRowTest, TableByRowOffsetLimit) {

FILE: cpp/test/encoding/dictionary_codec_test.cc
  type storage (line 29) | namespace storage {
    class DictionaryTest (line 31) | class DictionaryTest : public ::testing::Test {}
    function TEST_F (line 33) | TEST_F(DictionaryTest, DictionaryEncoder) {
    function TEST_F (line 58) | TEST_F(DictionaryTest, DictionaryEncoderAndDecoder) {
    function TEST_F (line 85) | TEST_F(DictionaryTest, DictionaryEncoderAndDecoderOneItem) {
    function TEST_F (line 102) | TEST_F(DictionaryTest, DictionaryEncoderAndDecoderRepeatedItems) {
    function TEST_F (line 124) | TEST_F(DictionaryTest,

FILE: cpp/test/encoding/gorilla_codec_test.cc
  type storage (line 26) | namespace storage {
    class GorillaCodecTest (line 28) | class GorillaCodecTest : public ::testing::Test {}
    function TEST_F (line 30) | TEST_F(GorillaCodecTest, BasicEncoding) {
    function TEST_F (line 54) | TEST_F(GorillaCodecTest, Int32EncodingDecoding) {
    function TEST_F (line 69) | TEST_F(GorillaCodecTest, Int32EncodingDecodingLargeQuantities) {
    function TEST_F (line 83) | TEST_F(GorillaCodecTest, Int64EncodingDecoding) {
    function TEST_F (line 98) | TEST_F(GorillaCodecTest, Int64EncodingDecodingLargeQuantities) {
    function TEST_F (line 112) | TEST_F(GorillaCodecTest, FloatEncodingDecodingBoundaryValues) {
    function TEST_F (line 161) | TEST_F(GorillaCodecTest, DoubleEncodingDecodingBoundaryValues) {

FILE: cpp/test/encoding/int32_packer_test.cc
  type storage (line 26) | namespace storage {
    function TEST (line 28) | TEST(IntPackerTest, SequentialValues) {
    function TEST (line 44) | TEST(IntPackerStressTest, PackUnpackRandomPositiveValues) {
    function TEST (line 85) | TEST(Int32PackerTest, AllZeroValues) {
    function TEST (line 102) | TEST(Int32PackerTest, BoundaryWidthOneAlternating) {
    function TEST (line 117) | TEST(Int32PackerTest, MaxWidth32Random) {
    function TEST (line 140) | TEST(Int32PackerTest, AllNegative32Random) {
    function TEST (line 164) | TEST(Int32PackerTest, UnpackAllValuesMultipleBlocks) {

FILE: cpp/test/encoding/int32_rle_codec_test.cc
  type storage (line 28) | namespace storage {
    class Int32RleEncoderTest (line 30) | class Int32RleEncoderTest : public ::testing::Test {
      method SetUp (line 32) | void SetUp() override {
      method encode_and_decode (line 36) | void encode_and_decode(const std::vector<int32_t>& input) {
    function TEST_F (line 62) | TEST_F(Int32RleEncoderTest, EncodeAllZeros) {
    function TEST_F (line 68) | TEST_F(Int32RleEncoderTest, EncodeAllMaxValues) {
    function TEST_F (line 74) | TEST_F(Int32RleEncoderTest, EncodeAllMinValues) {
    function TEST_F (line 80) | TEST_F(Int32RleEncoderTest, EncodeRepeatingValue) {
    function TEST_F (line 86) | TEST_F(Int32RleEncoderTest, EncodeIncrementalValues) {
    function TEST_F (line 95) | TEST_F(Int32RleEncoderTest, EncodeAlternatingSigns) {
    function TEST_F (line 104) | TEST_F(Int32RleEncoderTest, EncodeRandomPositiveValues) {
    function TEST_F (line 113) | TEST_F(Int32RleEncoderTest, EncodeRandomNegativeValues) {
    function TEST_F (line 122) | TEST_F(Int32RleEncoderTest, EncodeBoundaryValues) {
    function TEST_F (line 129) | TEST_F(Int32RleEncoderTest, EncodeMultipleFlushes) {
    function TEST_F (line 159) | TEST_F(Int32RleEncoderTest, EncodeFlushWithoutData) {
    function write_rle_segment (line 171) | static void write_rle_segment(common::ByteStream& stream, uint8_t bit_...
    function TEST_F (line 196) | TEST_F(Int32RleEncoderTest, DecodeRleRunCountExactly64) {
    function TEST_F (line 216) | TEST_F(Int32RleEncoderTest, DecodeRleRunCountLarge) {
    function TEST_F (line 240) | TEST_F(Int32RleEncoderTest, DecodeMultipleRleRunsWithLargeCount) {
    function TEST_F (line 266) | TEST_F(Int32RleEncoderTest, ResetAfterDecodeNoCrash) {

FILE: cpp/test/encoding/int64_packer_test.cc
  type storage (line 27) | namespace storage {
    function TEST (line 29) | TEST(Int64PackerTest, SequentialValues) {
    function TEST (line 45) | TEST(Int64PackerTest, PackUnpackSingleBatchRandomPositiveLongs) {
    function get_long_max_bit_width (line 84) | int get_long_max_bit_width(const std::vector<uint64_t>& values) {
    function TEST (line 93) | TEST(Int64PackerTest, PackAllManualBitWidth) {
    function TEST (line 141) | TEST(Int64PackerTest, AllZeroValues) {
    function TEST (line 158) | TEST(Int64PackerTest, BoundaryWidthOneAlternating) {
    function TEST (line 173) | TEST(Int64PackerTest, MaxWidth64Random) {
    function TEST (line 196) | TEST(Int64PackerTest, AllNegative64Random) {
    function TEST (line 220) | TEST(Int64PackerTest, UnpackAllValuesMultipleBlocks) {

FILE: cpp/test/encoding/int64_rle_codec_test.cc
  type storage (line 26) | namespace storage {
    class Int64RleCodecTest (line 28) | class Int64RleCodecTest : public ::testing::Test {
      method SetUp (line 30) | void SetUp() override {
      method encode_and_decode_check (line 34) | void encode_and_decode_check(const std::vector<int64_t>& input) {
    function TEST_F (line 58) | TEST_F(Int64RleCodecTest, EncodeAllZeros) {
    function TEST_F (line 64) | TEST_F(Int64RleCodecTest, EncodeAllMaxValues) {
    function TEST_F (line 70) | TEST_F(Int64RleCodecTest, EncodeAllMinValues) {
    function TEST_F (line 76) | TEST_F(Int64RleCodecTest, EncodeRepeatingSingleValue) {
    function TEST_F (line 82) | TEST_F(Int64RleCodecTest, EncodeIncrementalValues) {
    function TEST_F (line 91) | TEST_F(Int64RleCodecTest, EncodeAlternatingSigns) {
    function TEST_F (line 100) | TEST_F(Int64RleCodecTest, EncodeRandomPositiveValues) {
    function TEST_F (line 109) | TEST_F(Int64RleCodecTest, EncodeRandomNegativeValues) {
    function TEST_F (line 119) | TEST_F(Int64RleCodecTest, EncodeBoundaryValues) {
    function TEST_F (line 126) | TEST_F(Int64RleCodecTest, EncodeFlushWithoutData) {

FILE: cpp/test/encoding/plain_codec_test.cc
  type storage (line 24) | namespace storage {
    function TEST (line 26) | TEST(PlainEncoderDecoderTest, EncodeDecodeBool) {
    function TEST (line 39) | TEST(PlainEncoderDecoderTest, EncodeDecodeInt32) {
    function TEST (line 52) | TEST(PlainEncoderDecoderTest, EncodeDecodeMinusInt32) {
    function TEST (line 63) | TEST(PlainEncoderDecoderTest, EncodeDecodeMinusInt64) {
    function TEST (line 74) | TEST(PlainEncoderDecoderTest, EncodeDecodeInt64) {
    function TEST (line 87) | TEST(PlainEncoderDecoderTest, EncodeDecodeFloat) {
    function TEST (line 100) | TEST(PlainEncoderDecoderTest, EncodeDecodeDouble) {

FILE: cpp/test/encoding/sprintz_codec_test.cc
  function PrepareHybridData (line 49) | void PrepareHybridData() {
  class SprintzCodecTest (line 75) | class SprintzCodecTest : public ::testing::Test {
    method SetUp (line 77) | void SetUp() override {
  function TEST_F (line 82) | TEST_F(SprintzCodecTest, Int32SingleValue) {
  function TEST_F (line 96) | TEST_F(SprintzCodecTest, Int64SingleValue) {
  function TEST_F (line 111) | TEST_F(SprintzCodecTest, Int32EdgeValues) {
  function TEST_F (line 131) | TEST_F(SprintzCodecTest, Int64EdgeValues) {
  function TEST_F (line 151) | TEST_F(SprintzCodecTest, Int32ZeroNumber) {
  function TEST_F (line 170) | TEST_F(SprintzCodecTest, Int64ZeroNumber) {
  function TEST_F (line 189) | TEST_F(SprintzCodecTest, Int32Increasing) {
  function TEST_F (line 207) | TEST_F(SprintzCodecTest, Int64Increasing) {
  function TEST_F (line 226) | TEST_F(SprintzCodecTest, FloatSingleValue) {
  function TEST_F (line 240) | TEST_F(SprintzCodecTest, DoubleSingleValue) {
  function TEST_F (line 254) | TEST_F(SprintzCodecTest, FloatZeroNumber) {
  function TEST_F (line 274) | TEST_F(SprintzCodecTest, DoubleZeroNumber) {
  function TEST_F (line 294) | TEST_F(SprintzCodecTest, FloatIncreasing) {
  function TEST_F (line 313) | TEST_F(SprintzCodecTest, DoubleIncreasing) {
  function TEST_F (line 337) | TEST_F(SprintzCodecTest, FloatExtremeValues) {
  function TEST_F (line 362) | TEST_F(SprintzCodecTest, DoubleExtremeValues) {

FILE: cpp/test/encoding/ts2diff_codec_test.cc
  type storage (line 27) | namespace storage {
    class TS2DIFFCodecTest (line 29) | class TS2DIFFCodecTest : public ::testing::Test {
      method SetUp (line 31) | void SetUp() override {
      method TearDown (line 38) | void TearDown() override {
    function TEST_F (line 62) | TEST_F(TS2DIFFCodecTest, TestIntEncoding1) {
    function TEST_F (line 83) | TEST_F(TS2DIFFCodecTest, TestIntEncoding2) {
    function TEST_F (line 104) | TEST_F(TS2DIFFCodecTest, TestLongEncoding) {
    function TEST_F (line 125) | TEST_F(TS2DIFFCodecTest, TestLongEncoding2) {
    function TEST_F (line 146) | TEST_F(TS2DIFFCodecTest, TestRandomEncoding) {
    function TEST_F (line 173) | TEST_F(TS2DIFFCodecTest, LargeDataTest) {
    function TEST_F (line 209) | TEST_F(TS2DIFFCodecTest, TestEncodingLast) {

FILE: cpp/test/encoding/zigzag_codec_test.cc
  type storage (line 24) | namespace storage {
    class ZigzagEncoderTest (line 26) | class ZigzagEncoderTest : public ::testing::Test {}
    function TEST_F (line 28) | TEST_F(ZigzagEncoderTest, EncodeInt32) {
    function TEST_F (line 51) | TEST_F(ZigzagEncoderTest, EncodeInt64) {
    class ZigzagDecoderTest (line 76) | class ZigzagDecoderTest : public ::testing::Test {}
    function TEST_F (line 78) | TEST_F(ZigzagDecoderTest, DecodeInt32) {
    function TEST_F (line 93) | TEST_F(ZigzagDecoderTest, DecodeInt64) {
    function TEST_F (line 108) | TEST_F(ZigzagDecoderTest, DecodeInt32LargeQuantities) {
    function TEST_F (line 122) | TEST_F(ZigzagDecoderTest, DecodeInt64LargeQuantities) {

FILE: cpp/test/file/restorable_tsfile_io_writer_test.cc
  type storage (line 44) | namespace storage {
    class ResultSet (line 45) | class ResultSet
  function GetWriteCreateFlags (line 55) | static int GetWriteCreateFlags() {
  function GetFileSize (line 63) | static int64_t GetFileSize(const std::string& path) {
  function CorruptFileTail (line 70) | static void CorruptFileTail(const std::string& path, int num_bytes) {
  function CountTreeReaderRows (line 81) | static int CountTreeReaderRows(
  class RestorableTsFileIOWriterTest (line 102) | class RestorableTsFileIOWriterTest : public ::testing::Test {
    method SetUp (line 104) | void SetUp() override {
    method TearDown (line 111) | void TearDown() override {
    method GetCurrentFileSize (line 116) | int64_t GetCurrentFileSize() const { return GetFileSize(file_name_); }
    method CorruptCurrentFileTail (line 117) | void CorruptCurrentFileTail(int num_bytes) {
    method generate_random_string (line 123) | static std::string generate_random_string(int length) {
  function TEST_F (line 145) | TEST_F(RestorableTsFileIOWriterTest, OpenEmptyFile) {
  function TEST_F (line 155) | TEST_F(RestorableTsFileIOWriterTest, OpenBadMagicFile) {
  function TEST_F (line 166) | TEST_F(RestorableTsFileIOWriterTest, OpenCompleteFile) {
  function TEST_F (line 189) | TEST_F(RestorableTsFileIOWriterTest, OpenTruncatedFile) {
  function TEST_F (line 215) | TEST_F(RestorableTsFileIOWriterTest, OpenFileWithOnlyHeader) {
  function TEST_F (line 240) | TEST_F(RestorableTsFileIOWriterTest, TruncateRecoversAndProvidesWriter) {
  function TEST_F (line 274) | TEST_F(RestorableTsFileIOWriterTest,
  function TEST_F (line 313) | TEST_F(RestorableTsFileIOWriterTest, MultiDeviceRecoverAndWriteWithTreeW...
  function TEST_F (line 357) | TEST_F(RestorableTsFileIOWriterTest,
  function TEST_F (line 408) | TEST_F(RestorableTsFileIOWriterTest,
  function TEST_F (line 448) | TEST_F(RestorableTsFileIOWriterTest, AlignedTimeseriesRecoverAndWrite) {
  function TEST_F (line 493) | TEST_F(RestorableTsFileIOWriterTest, TableWriterRecoverAndWrite) {
  function TEST_F (line 586) | TEST_F(RestorableTsFileIOWriterTest, TableWriterRecoverAndWrite1) {
  function TEST_F (line 734) | TEST_F(RestorableTsFileIOWriterTest,
  function TEST_F (line 886) | TEST_F(RestorableTsFileIOWriterTest,

FILE: cpp/test/file/write_file_test.cc
  class WriteFileTest (line 29) | class WriteFileTest : public ::testing::Test {}
  function TEST_F (line 31) | TEST_F(WriteFileTest, CreateFile) {
  function TEST_F (line 51) | TEST_F(WriteFileTest, WriteToFile) {
  function TEST_F (line 79) | TEST_F(WriteFileTest, SyncFile) {
  function TEST_F (line 99) | TEST_F(WriteFileTest, CloseFile) {
  function TEST_F (line 118) | TEST_F(WriteFileTest, TruncateFile) {

FILE: cpp/test/parser/path_name_test.cc
  type storage (line 23) | namespace storage {
    class PathNameTest (line 25) | class PathNameTest : public ::testing::Test {}
    function TEST_F (line 27) | TEST_F(PathNameTest, TestLegalPath) {
    function TEST_F (line 129) | TEST_F(PathNameTest, TestIllegalPathName) {

FILE: cpp/test/reader/bloom_filter_test.cc
  function TEST (line 25) | TEST(BloomfilterTest, BloomFilter) {

FILE: cpp/test/reader/filter/tag_filter_test.cc
  class TagFilterTest (line 28) | class TagFilterTest : public ::testing::Test {
    method SetUp (line 30) | void SetUp() override {
    method TearDown (line 47) | void TearDown() override {
    method createSegments (line 53) | static std::vector<std::string*> createSegments(
    method cleanupSegments (line 68) | static void cleanupSegments(std::vector<std::string*>& segments) {
  function TEST_F (line 79) | TEST_F(TagFilterTest, TagEqFilter) {
  function TEST_F (line 95) | TEST_F(TagFilterTest, TagNeqFilter) {
  function TEST_F (line 112) | TEST_F(TagFilterTest, TagLtFilter) {
  function TEST_F (line 128) | TEST_F(TagFilterTest, TagLteqFilter) {
  function TEST_F (line 148) | TEST_F(TagFilterTest, TagGtFilter) {
  function TEST_F (line 164) | TEST_F(TagFilterTest, TagGteqFilter) {
  function TEST_F (line 184) | TEST_F(TagFilterTest, TagBetweenFilter) {
  function TEST_F (line 212) | TEST_F(TagFilterTest, TagNotBetweenFilter) {
  function TEST_F (line 236) | TEST_F(TagFilterTest, TagAndFilter) {
  function TEST_F (line 258) | TEST_F(TagFilterTest, TagOrFilter) {
  function TEST_F (line 284) | TEST_F(TagFilterTest, TagNotFilter) {
  function TEST_F (line 302) | TEST_F(TagFilterTest, ComplexNestedFilters) {
  function TEST_F (line 327) | TEST_F(TagFilterTest, InvalidColumnName) {
  function TEST_F (line 333) | TEST_F(TagFilterTest, BoundaryConditions) {
  function TEST_F (line 352) | TEST_F(TagFilterTest, TagRegExpBasic) {
  function TEST_F (line 374) | TEST_F(TagFilterTest, TagRegExpComplexLogic) {
  function TEST_F (line 399) | TEST_F(TagFilterTest, TagRegExpEdgeCases) {

FILE: cpp/test/reader/query_by_row_performance_test.cc
  function get_env_int (line 69) | static bool get_env_int(const char* name, int& out) {
  function query_by_row_perf_iters (line 80) | static int query_by_row_perf_iters() {
  function compute_offset_with_env (line 89) | static int compute_offset_with_env(int num_rows, int default_offset) {
  function write_result_if_needed (line 110) | static void write_result_if_needed(const std::string& md) {
  class DISABLED_QueryByRowPerformanceTest (line 118) | class DISABLED_QueryByRowPerformanceTest : public ::testing::Test {
    method SetUp (line 120) | void SetUp() override {
    method TearDown (line 133) | void TearDown() override {
    method generate_random_string (line 138) | static std::string generate_random_string(int length) {
    method write_tree_multi_device_file (line 153) | void write_tree_multi_device_file(
    method write_table_multi_device_file (line 213) | void write_table_multi_device_file(int num_rows_total, int device_count,
  type OffsetLimitCase (line 276) | struct OffsetLimitCase {
  function compute_avg_times (line 303) | static void compute_avg_times(RunByRowFn&& run_by_row, RunManualFn&& run...
  function TEST_F (line 322) | TEST_F(DISABLED_QueryByRowPerformanceTest, TreeModel_SingleSequence) {
  function TEST_F (line 418) | TEST_F(DISABLED_QueryByRowPerformanceTest, TreeModel_MultiSequence) {
  function TEST_F (line 516) | TEST_F(DISABLED_QueryByRowPerformanceTest, TableModel_SingleSequence) {
  function TEST_F (line 612) | TEST_F(DISABLED_QueryByRowPerformanceTest, TableModel_MultiSequence) {

FILE: cpp/test/reader/table_view/tsfile_reader_table_batch_test.cc
  class TsFileTableReaderBatchTest (line 38) | class TsFileTableReaderBatchTest : public ::testing::Test {
    method SetUp (line 40) | void SetUp() override {
    method TearDown (line 52) | void TearDown() override {
    method generate_random_string (line 60) | static std::string generate_random_string(int length) {
    method TableSchema (line 79) | static TableSchema* gen_table_schema_no_tag() {
    method gen_tablet_no_tag (line 94) | static storage::Tablet gen_tablet_no_tag(TableSchema* table_schema,
    method TableSchema (line 115) | static TableSchema* gen_table_schema() {
    method gen_tablet (line 136) | static storage::Tablet gen_tablet(TableSchema* table_schema, int offset,
  function TEST_F (line 176) | TEST_F(TsFileTableReaderBatchTest, BatchQueryWithSmallBatchSize) {
  function TEST_F (line 254) | TEST_F(TsFileTableReaderBatchTest, BatchQueryWithLargeBatchSize) {
  function TEST_F (line 302) | TEST_F(TsFileTableReaderBatchTest, BatchQueryVerifyDataCorrectness) {
  function TEST_F (line 364) | TEST_F(TsFileTableReaderBatchTest, PerformanceComparisonSinglePointVsBat...

FILE: cpp/test/reader/table_view/tsfile_reader_table_test.cc
  class TsFileTableReaderTest (line 37) | class TsFileTableReaderTest : public ::testing::Test {
    method SetUp (line 39) | void SetUp() override {
    method TearDown (line 51) | void TearDown() override {
    method generate_random_string (line 59) | static std::string generate_random_string(int length) {
    method TableSchema (line 78) | static TableSchema* gen_table_schema(int table_num) {
    method gen_tablet (line 99) | static storage::Tablet gen_tablet(TableSchema* table_schema, int offset,
    method test_table_model_query (line 138) | void test_table_model_query(uint32_t points_per_device = 10,
  function TEST_F (line 210) | TEST_F(TsFileTableReaderTest, TableModelQuery) { test_table_model_query(...
  function TEST_F (line 212) | TEST_F(TsFileTableReaderTest, TableModelQueryOneSmallPage) {
  function TEST_F (line 224) | TEST_F(TsFileTableReaderTest, TableModelQueryMemoryBasedSeal) {
  function TEST_F (line 234) | TEST_F(TsFileTableReaderTest, TableModelQueryOneLargePage) {
  function TEST_F (line 241) | TEST_F(TsFileTableReaderTest, TableModelQueryMultiLargePage) {
  function TEST_F (line 248) | TEST_F(TsFileTableReaderTest, TableModelQueryMultiDevices) {
  function TEST_F (line 255) | TEST_F(TsFileTableReaderTest, TableModelQueryWithTimeFilter) {
  function TEST_F (line 259) | TEST_F(TsFileTableReaderTest, TableModelResultMetadata) {
  function TEST_F (line 296) | TEST_F(TsFileTableReaderTest, TableModelGetSchema) {
  function TEST_F (line 356) | TEST_F(TsFileTableReaderTest, TableModelQueryWithMultiTabletsMultiFlush) {
  function TEST_F (line 411) | TEST_F(TsFileTableReaderTest, ReadNonExistColumn) {
  function TEST_F (line 447) | TEST_F(TsFileTableReaderTest, TestDecoder) {
  function test_null_table (line 496) | void test_null_table(WriteFile* write_file, int max_rows,
  function TEST_F (line 577) | TEST_F(TsFileTableReaderTest, TestNullInTable) {
  function TEST_F (line 615) | TEST_F(TsFileTableReaderTest, TestNullInTable2) {
  function TEST_F (line 654) | TEST_F(TsFileTableReaderTest, TestNullInTable3) {
  function TEST_F (line 691) | TEST_F(TsFileTableReaderTest, TestNullInTable4) {
  function TEST_F (line 726) | TEST_F(TsFileTableReaderTest, TestTimeColumnReader) {
  function TEST_F (line 811) | TEST_F(TsFileTableReaderTest, AlignedNullAtBlockBoundaryNoRowLoss) {

FILE: cpp/test/reader/table_view/tsfile_table_query_by_row_test.cc
  class TableQueryByRowTest (line 38) | class TableQueryByRowTest : public ::testing::Test {
    method SetUp (line 40) | void SetUp() override {
    method TearDown (line 53) | void TearDown() override {
    method generate_random_string (line 58) | static std::string generate_random_string(int length) {
    method write_single_device_file (line 73) | void write_single_device_file(int num_rows) {
    method write_multi_device_file (line 106) | void write_multi_device_file(int rows_per_device, int device_count) {
    method write_single_device_dense_multi_chunk (line 145) | void write_single_device_dense_multi_chunk(
    method write_single_device_sparse_multi_chunk_with_equal_missing (line 183) | void write_single_device_sparse_multi_chunk_with_equal_missing(
    method query_all_s1 (line 251) | std::vector<int64_t> query_all_s1(const std::string& table_name,
    method query_by_row_s1 (line 268) | std::vector<int64_t> query_by_row_s1(const std::string& table_name,
    method query_by_row_time_and_s1 (line 286) | std::vector<std::pair<int64_t, int64_t>> query_by_row_time_and_s1(
    method query_manual_time_and_s1 (line 310) | std::vector<std::pair<int64_t, int64_t>> query_manual_time_and_s1(
  function TEST_F (line 349) | TEST_F(TableQueryByRowTest, NoOffsetNoLimit) {
  function TEST_F (line 360) | TEST_F(TableQueryByRowTest, OffsetOnly) {
  function TEST_F (line 374) | TEST_F(TableQueryByRowTest, LimitOnly) {
  function TEST_F (line 388) | TEST_F(TableQueryByRowTest, OffsetAndLimit) {
  function TEST_F (line 403) | TEST_F(TableQueryByRowTest, OffsetBeyondData) {
  function TEST_F (line 412) | TEST_F(TableQueryByRowTest, LimitZero) {
  function TEST_F (line 422) | TEST_F(TableQueryByRowTest, OffsetPlusLimitExceedsTotal) {
  function TEST_F (line 437) | TEST_F(TableQueryByRowTest, MultiDeviceNoOffset) {
  function TEST_F (line 449) | TEST_F(TableQueryByRowTest, MultiDeviceOffsetWithinFirstDevice) {
  function TEST_F (line 465) | TEST_F(TableQueryByRowTest, MultiDeviceOffsetSkipsEntireDevice) {
  function TEST_F (line 482) | TEST_F(TableQueryByRowTest, MultiDeviceOffsetSpansDeviceBoundary) {
  function TEST_F (line 498) | TEST_F(TableQueryByRowTest, MultiDeviceOffsetSkipsAllDevices) {
  function TEST_F (line 509) | TEST_F(TableQueryByRowTest, EquivalenceWithManualSkip) {
  function TEST_F (line 545) | TEST_F(TableQueryByRowTest, MultiDeviceEquivalenceWithManualSkip) {
  function TEST_F (line 581) | TEST_F(TableQueryByRowTest, LargeDatasetOffsetLimit) {
  function TEST_F (line 595) | TEST_F(TableQueryByRowTest, DenseAlignedNullsMustUseTimeRowCount) {
  function TEST_F (line 618) | TEST_F(TableQueryByRowTest, DenseSingleDeviceSsiLevelPushdown) {
  function TEST_F (line 656) | TEST_F(TableQueryByRowTest, DISABLED_QueryByRowFasterThanManualNext) {
  function TEST_F (line 731) | TEST_F(TableQueryByRowTest, TagFilterEq) {

FILE: cpp/test/reader/tree_view/tsfile_reader_tree_test.cc
  class TsFileTreeReaderTest (line 36) | class TsFileTreeReaderTest : public ::testing::Test {
    method SetUp (line 38) | void SetUp() override {
    method TearDown (line 51) | void TearDown() override { libtsfile_destroy(); }
    method generate_random_string (line 56) | static std::string generate_random_string(int length) {
  function TEST_F (line 76) | TEST_F(TsFileTreeReaderTest, BasicTest) {
  function TEST_F (line 110) | TEST_F(TsFileTreeReaderTest, ReadTreeByTable) {
  function TEST_F (line 188) | TEST_F(TsFileTreeReaderTest, ReadTreeByTableIrrergular) {
  function TEST_F (line 291) | TEST_F(TsFileTreeReaderTest, ExtendedRowsAndColumnsTest) {
  function TEST_F (line 437) | TEST_F(TsFileTreeReaderTest, QueryTableOnTreeDeepDevicePath) {
  function TEST_F (line 481) | TEST_F(TsFileTreeReaderTest, QueryTableOnTreeMissingMeasurement) {

FILE: cpp/test/reader/tree_view/tsfile_tree_query_by_row_test.cc
  function write_multi_device_data_tablet (line 40) | int write_multi_device_data_tablet(
  class TreeQueryByRowTest (line 136) | class TreeQueryByRowTest : public ::testing::Test {
    method SetUp (line 138) | void SetUp() override {
    method TearDown (line 151) | void TearDown() override {
    method generate_random_string (line 156) | static std::string generate_random_string(int length) {
    method write_test_file (line 173) | void write_test_file(const std::vector<std::string>& device_ids,
    method collect_timestamps (line 200) | std::vector<int64_t> collect_timestamps(ResultSet* result_set) {
  function TEST_F (line 214) | TEST_F(TreeQueryByRowTest, NoOffsetNoLimit) {
  function TEST_F (line 239) | TEST_F(TreeQueryByRowTest, QueryByRow_SkipsMissingDeviceAndMeasurement) {
  function TEST_F (line 275) | TEST_F(TreeQueryByRowTest, QueryByRow_TabletMultiType_PartialPaths) {
  function TEST_F (line 321) | TEST_F(TreeQueryByRowTest, QueryByRow_MultiSegmentDeviceId) {
  function TEST_F (line 345) | TEST_F(TreeQueryByRowTest, OffsetOnly) {
  function TEST_F (line 371) | TEST_F(TreeQueryByRowTest, LimitOnly) {
  function TEST_F (line 396) | TEST_F(TreeQueryByRowTest, OffsetAndLimit) {
  function TEST_F (line 423) | TEST_F(TreeQueryByRowTest, OffsetExceedsTotalRows) {
  function TEST_F (line 444) | TEST_F(TreeQueryByRowTest, LimitZero) {
  function TEST_F (line 466) | TEST_F(TreeQueryByRowTest, MultiPathMerge) {
  function TEST_F (line 492) | TEST_F(TreeQueryByRowTest, MultiPathOffsetLimit) {
  function TEST_F (line 519) | TEST_F(TreeQueryByRowTest, SingleDeviceMultipleMeasurements) {
  function TEST_F (line 575) | TEST_F(TreeQueryByRowTest, LimitLargerThanAvailable) {
  function TEST_F (line 596) | TEST_F(TreeQueryByRowTest, LargeDatasetOffsetLimit) {
  function TEST_F (line 623) | TEST_F(TreeQueryByRowTest, MultiDeviceMultiMeasurementInterleaved) {
  type PageGuard (line 682) | struct PageGuard {
    method PageGuard (line 684) | explicit PageGuard(uint32_t page_size) {
  function write_single_path_multi_chunk (line 695) | static void write_single_path_multi_chunk(TsFileTreeWriter& writer,
  function TEST_F (line 729) | TEST_F(TreeQueryByRowTest, SinglePath_SkipChunk_OffsetEqualsOneChunk) {
  function TEST_F (line 754) | TEST_F(TreeQueryByRowTest, SinglePath_SkipChunk_OffsetEqualsTwoChunks) {
  function TEST_F (line 780) | TEST_F(TreeQueryByRowTest, SinglePath_OffsetJustBeforeChunkBoundary) {
  function TEST_F (line 805) | TEST_F(TreeQueryByRowTest, SinglePath_OffsetJustAfterChunkBoundary) {
  function TEST_F (line 841) | TEST_F(TreeQueryByRowTest, SinglePath_SkipPage_OffsetEqualsOnePage) {
  function TEST_F (line 866) | TEST_F(TreeQueryByRowTest, SinglePath_SkipPage_OffsetEqualsTwoPages) {
  function TEST_F (line 892) | TEST_F(TreeQueryByRowTest, SinglePath_SkipPage_OffsetJustBeforePageBound...
  function TEST_F (line 921) | TEST_F(TreeQueryByRowTest, SinglePath_LimitStopsMidPage) {
  function TEST_F (line 945) | TEST_F(TreeQueryByRowTest, SinglePath_LimitEqualsOnePage) {
  function TEST_F (line 969) | TEST_F(TreeQueryByRowTest, SinglePath_LimitEqualsOneChunk) {
  function TEST_F (line 994) | TEST_F(TreeQueryByRowTest, SinglePath_SkipTwoChunksThenLimitMidPage) {
  function TEST_F (line 1027) | TEST_F(TreeQueryByRowTest, MultiPath_OffsetLimitWithMultipleChunks) {
  function TEST_F (line 1077) | TEST_F(TreeQueryByRowTest, MultiPath_InterleavedTimestamps_MultipleChunk...
  function TEST_F (line 1124) | TEST_F(TreeQueryByRowTest, MultiPath_OffsetAtMergedChunkBoundary) {
  function TEST_F (line 1188) | TEST_F(TreeQueryByRowTest, MultiPath_TimeHint_SkipsStaleChunk) {
  function TEST_F (line 1262) | TEST_F(TreeQueryByRowTest, MultiPath_TimeHint_SkipsStaleChunk_WithOffset) {
  function TEST_F (line 1314) | TEST_F(TreeQueryByRowTest, DISABLED_QueryByRowFasterThanManualNext) {

FILE: cpp/test/reader/tsfile_reader_test.cc
  class TsFileReaderTest (line 40) | class TsFileReaderTest : public ::testing::Test {
    method SetUp (line 42) | void SetUp() override {
    method TearDown (line 56) | void TearDown() override {
    method generate_random_string (line 66) | static std::string generate_random_string(int length) {
    method field_to_string (line 85) | static std::string field_to_string(storage::Field* value) {
  function TEST_F (line 118) | TEST_F(TsFileReaderTest, ResultSetMetadata) {
  function TEST_F (line 159) | TEST_F(TsFileReaderTest, GetAllDevice) {
  function TEST_F (line 202) | TEST_F(TsFileReaderTest, GetTimeseriesSchema) {
  function TEST_F (line 269) | TEST_F(TsFileReaderTest, GetTimeseriesMetadataTableModelTypeAndDeviceFil...
  function TEST_F (line 402) | TEST_F(TsFileReaderTest,

FILE: cpp/test/utils/db_utils_test.cc
  type common (line 25) | namespace common {
    function TEST (line 27) | TEST(ColumnSchemaTest, Constructor) {
    function TEST (line 35) | TEST(ColumnSchemaTest, ParameterizedConstructor) {
    function TEST (line 43) | TEST(ColumnSchemaTest, OperatorEqual) {
    function TEST (line 49) | TEST(ColumnSchemaTest, OperatorNotEqual) {
    function TEST (line 55) | TEST(ColumnSchemaTest, IsValid) {
    function TEST (line 62) | TEST(UtilTest, GetCurTimestamp) {

FILE: cpp/test/writer/chunk_writer_test.cc
  class ChunkWriterTest (line 32) | class ChunkWriterTest : public ::testing::Test {
    method SetUp (line 37) | void SetUp() override {
    method TearDown (line 46) | void TearDown() override { chunk_writer.destroy(); }
  function TEST_F (line 49) | TEST_F(ChunkWriterTest, InitWithParameters) {
  function TEST_F (line 57) | TEST_F(ChunkWriterTest, WriteBoolean) {
  function TEST_F (line 61) | TEST_F(ChunkWriterTest, WriteInt32) {
  function TEST_F (line 65) | TEST_F(ChunkWriterTest, WriteInt64) {
  function TEST_F (line 69) | TEST_F(ChunkWriterTest, WriteFloat) {
  function TEST_F (line 73) | TEST_F(ChunkWriterTest, WriteDouble) {
  function TEST_F (line 77) | TEST_F(ChunkWriterTest, WriteLargeDataSet) {
  function TEST_F (line 84) | TEST_F(ChunkWriterTest, EndEncodeChunk) {
  function TEST_F (line 90) | TEST_F(ChunkWriterTest, DestroyChunkWriter) {

FILE: cpp/test/writer/page_writer_test.cc
  class PageWriterTest (line 29) | class PageWriterTest : public ::testing::Test {}
  function TEST_F (line 31) | TEST_F(PageWriterTest, WriteBooleanSuccess) {
  function TEST_F (line 38) | TEST_F(PageWriterTest, WriteInt32Success) {
  function TEST_F (line 45) | TEST_F(PageWriterTest, WriteInt64Success) {
  function TEST_F (line 52) | TEST_F(PageWriterTest, WriteFloatSuccess) {
  function TEST_F (line 59) | TEST_F(PageWriterTest, WriteDoubleSuccess) {
  function TEST_F (line 66) | TEST_F(PageWriterTest, WriteLargeDataSet) {
  function TEST_F (line 75) | TEST_F(PageWriterTest, ResetPageWriter) {
  function TEST_F (line 84) | TEST_F(PageWriterTest, DestroyPageWriter) {

FILE: cpp/test/writer/table_view/tsfile_writer_table_test.cc
  class TsFileWriterTableTest (line 35) | class TsFileWriterTableTest : public ::testing::TestWithParam<bool> {
    method SetUp (line 37) | void SetUp() override {
    method TearDown (line 50) | void TearDown() override {
    method generate_random_string (line 58) | static std::string generate_random_string(int length) {
    method TableSchema (line 77) | static TableSchema* gen_table_schema(int table_num, int id_col_num = 5,
    method gen_tablet (line 99) | static storage::Tablet gen_tablet(TableSchema* table_schema, int offset,
  function TEST_P (line 138) | TEST_P(TsFileWriterTableTest, WriteTableTest) {
  function TEST_P (line 149) | TEST_P(TsFileWriterTableTest, WithoutTagAndMultiPage) {
  function TEST_P (line 197) | TEST_P(TsFileWriterTableTest, WriteDisorderTest) {
  function TEST_P (line 247) | TEST_P(TsFileWriterTableTest, WriteTableTestMultiFlush) {
  function TEST_P (line 260) | TEST_P(TsFileWriterTableTest, WriteNonExistColumnTest) {
  function TEST_P (line 288) | TEST_P(TsFileWriterTableTest, WriteNonExistTableTest) {
  function TEST_P (line 300) | TEST_P(TsFileWriterTableTest, WriterWithMemoryThreshold) {
  function TEST_P (line 310) | TEST_P(TsFileWriterTableTest, EmptyTagWrite) {
  function TEST_P (line 366) | TEST_P(TsFileWriterTableTest, WritehDataTypeMisMatch) {
  function TEST_P (line 417) | TEST_P(TsFileWriterTableTest, WriteAndReadSimple) {
  function TEST_P (line 472) | TEST_P(TsFileWriterTableTest, DuplicateColumnName) {
  function TEST_P (line 510) | TEST_P(TsFileWriterTableTest, WriteWithNullAndEmptyTag) {
  function TEST_P (line 642) | TEST_P(TsFileWriterTableTest, MultiDeviceMultiFields) {
  function TEST_P (line 701) | TEST_P(TsFileWriterTableTest, WriteDataWithEmptyField) {
  function TEST_P (line 778) | TEST_P(TsFileWriterTableTest, MultiDatatypes) {
  function TEST_P (line 882) | TEST_P(TsFileWriterTableTest, DiffCodecTypes) {
  function TEST_P (line 990) | TEST_P(TsFileWriterTableTest, EncodingConfigIntegration) {
  function TEST_P (line 1103) | TEST_P(TsFileWriterTableTest, DISABLED_MemStatWriteAndVerify) {

FILE: cpp/test/writer/time_chunk_writer_test.cc
  class TimeChunkWriterTest (line 30) | class TimeChunkWriterTest : public ::testing::Test {
    method SetUp (line 35) | void SetUp() override {
    method TearDown (line 44) | void TearDown() override { time_chunk_writer.destroy(); }
  function TEST_F (line 47) | TEST_F(TimeChunkWriterTest, InitWithParameters) {
  function TEST_F (line 55) | TEST_F(TimeChunkWriterTest, WriteLargeDataSet) {
  function TEST_F (line 62) | TEST_F(TimeChunkWriterTest, EndEncodeChunk) {
  function TEST_F (line 68) | TEST_F(TimeChunkWriterTest, DestroyTimeChunkWriter) {

FILE: cpp/test/writer/time_page_writer_test.cc
  class TimePageWriterTest (line 30) | class TimePageWriterTest : public ::testing::Test {
    method SetUp (line 32) | void SetUp() override {
    method TearDown (line 37) | void TearDown() override { delete page_writer_; }
  function TEST_F (line 42) | TEST_F(TimePageWriterTest, WriteSuccess) {
  function TEST_F (line 49) | TEST_F(TimePageWriterTest, WriteLargeDataSet) {
  function TEST_F (line 58) | TEST_F(TimePageWriterTest, ResetTimePageWriter) {
  function TEST_F (line 67) | TEST_F(TimePageWriterTest, DestroyTimePageWriter) {
  function TEST_F (line 76) | TEST_F(TimePageWriterTest, WritePageHeaderAndData) {

FILE: cpp/test/writer/tsfile_writer_test.cc
  class TsFileWriterTest (line 37) | class TsFileWriterTest : public ::testing::Test {
    method SetUp (line 39) | void SetUp() override {
    method TearDown (line 52) | void TearDown() override {
    method generate_random_string (line 63) | static std::string generate_random_string(int length) {
    method field_to_string (line 81) | static std::string field_to_string(storage::Field* value) {
  class TsFileWriterTestSimple (line 116) | class TsFileWriterTestSimple : public ::testing::Test {}
  function TEST_F (line 118) | TEST_F(TsFileWriterTest, WriteDiffDataType) {
  function TEST_F (line 248) | TEST_F(TsFileWriterTest, RegisterTimeSeries) {
  function TEST_F (line 265) | TEST_F(TsFileWriterTest, WriteMultipleRecords) {
  function TEST_F (line 287) | TEST_F(TsFileWriterTest, WriteDiffrentTypeCombination) {
  function TEST_F (line 341) | TEST_F(TsFileWriterTest, WriteMultipleTabletsMultiFlush) {
  function TEST_F (line 424) | TEST_F(TsFileWriterTest, WriteMultipleTabletsAlignedMultiFlush) {
  function TEST_F (line 508) | TEST_F(TsFileWriterTest, WriteMultipleTabletsInt64) {
  function TEST_F (line 551) | TEST_F(TsFileWriterTest, WriteMultipleTabletsDouble) {
  function TEST_F (line 594) | TEST_F(TsFileWriterTest, FlushMultipleDevice) {
  function TEST_F (line 674) | TEST_F(TsFileWriterTest, AnalyzeTsfileForload) {
  function TEST_F (line 724) | TEST_F(TsFileWriterTest, FlushWithoutWriteAfterRegisterTS) {
  function TEST_F (line 741) | TEST_F(TsFileWriterTest, WriteAlignedTimeseries) {
  function TEST_F (line 832) | TEST_F(TsFileWriterTest, AlignedSealSync_PointCountWithNulls) {
  function TEST_F (line 914) | TEST_F(TsFileWriterTest, AlignedSealSync_TimeMemoryFirst) {
  function TEST_F (line 985) | TEST_F(TsFileWriterTest, AlignedSealSync_ValueMemoryFirst) {
  function TEST_F (line 1046) | TEST_F(TsFileWriterTest, WriteAlignedMultiFlush) {
  function TEST_F (line 1116) | TEST_F(TsFileWriterTest, WriteAlignedPartialData) {
  function TEST_F (line 1187) | TEST_F(TsFileWriterTest, WriteTabletDataTypeMismatch) {

FILE: cpp/test/writer/value_chunk_writer_test.cc
  class ValueChunkWriterTest (line 30) | class ValueChunkWriterTest : public ::testing::Test {
    method SetUp (line 35) | void SetUp() override {
    method TearDown (line 44) | void TearDown() override { value_chunk_writer.destroy(); }
  function TEST_F (line 47) | TEST_F(ValueChunkWriterTest, InitWithParameters) {
  function TEST_F (line 55) | TEST_F(ValueChunkWriterTest, WriteBoolean) {
  function TEST_F (line 60) | TEST_F(ValueChunkWriterTest, WriteInt32) {
  function TEST_F (line 65) | TEST_F(ValueChunkWriterTest, WriteInt64) {
  function TEST_F (line 70) | TEST_F(ValueChunkWriterTest, WriteFloat) {
  function TEST_F (line 75) | TEST_F(ValueChunkWriterTest, WriteDouble) {
  function TEST_F (line 79) | TEST_F(ValueChunkWriterTest, WriteLargeDataSet) {
  function TEST_F (line 86) | TEST_F(ValueChunkWriterTest, EndEncodeChunk) {
  function TEST_F (line 92) | TEST_F(ValueChunkWriterTest, DestroyChunkWriter) {

FILE: cpp/test/writer/value_page_writer_test.cc
  class ValuePageWriterTest (line 29) | class ValuePageWriterTest : public ::testing::Test {}
  function TEST_F (line 31) | TEST_F(ValuePageWriterTest, WriteBooleanSuccess) {
  function TEST_F (line 39) | TEST_F(ValuePageWriterTest, WriteInt32Success) {
  function TEST_F (line 46) | TEST_F(ValuePageWriterTest, WriteInt64Success) {
  function TEST_F (line 53) | TEST_F(ValuePageWriterTest, WriteFloatSuccess) {
  function TEST_F (line 60) | TEST_F(ValuePageWriterTest, WriteDoubleSuccess) {
  function TEST_F (line 67) | TEST_F(ValuePageWriterTest, WriteLargeDataSet) {
  function TEST_F (line 76) | TEST_F(ValuePageWriterTest, ResetValuePageWriter) {
  function TEST_F (line 85) | TEST_F(ValuePageWriterTest, DestroyValuePageWriter) {
  function TEST_F (line 94) | TEST_F(ValuePageWriterTest, WritePageHeaderAndData) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/demo/Linux/main.cpp
  function main (line 22) | int main(int , const char **) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/demo/Mac/antlr4-cpp-demo/main.cpp
  function main (line 22) | int main(int , const char **) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/demo/Windows/antlr4-cpp-demo/main.cpp
  function main (line 26) | int main(int argc, const char * argv[]) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ANTLRErrorListener.h
  function namespace (line 10) | namespace antlrcpp {
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ANTLRErrorStrategy.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ANTLRFileStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ANTLRInputStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/BailErrorStrategy.cpp
  function Token (line 36) | Token* BailErrorStrategy::recoverInline(Parser *recognizer)  {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/BailErrorStrategy.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/BaseErrorListener.h
  function namespace (line 10) | namespace antlrcpp {
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/BufferedTokenStream.cpp
  function TokenSource (line 22) | TokenSource* BufferedTokenStream::getTokenSource() const {
  function Token (line 114) | Token* BufferedTokenStream::get(size_t i) const {
  function Token (line 150) | Token* BufferedTokenStream::LB(size_t k) {
  function Token (line 157) | Token* BufferedTokenStream::LT(ssize_t k) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/BufferedTokenStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/CharStream.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/CommonToken.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/CommonTokenFactory.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/CommonTokenStream.cpp
  function Token (line 23) | Token* CommonTokenStream::LB(size_t k) {
  function Token (line 43) | Token* CommonTokenStream::LT(ssize_t k) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/CommonTokenStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ConsoleErrorListener.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/DefaultErrorStrategy.cpp
  function Token (line 193) | Token* DefaultErrorStrategy::recoverInline(Parser *recognizer) {
  function Token (line 229) | Token* DefaultErrorStrategy::singleTokenDeletion(Parser *recognizer) {
  function Token (line 243) | Token* DefaultErrorStrategy::getMissingSymbol(Parser *recognizer) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/DefaultErrorStrategy.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/DiagnosticErrorListener.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Exceptions.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/FailedPredicateException.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/InputMismatchException.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/IntStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/InterpreterRuleContext.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Lexer.cpp
  function CharStream (line 152) | CharStream* Lexer::getInputStream() {
  function Token (line 160) | Token* Lexer::emit() {
  function Token (line 166) | Token* Lexer::emitEOF() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Lexer.h
  function namespace (line 13) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/LexerInterpreter.h
  function namespace (line 12) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/LexerNoViableAltException.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ListTokenSource.cpp
  function CharStream (line 61) | CharStream *ListTokenSource::getInputStream() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ListTokenSource.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/NoViableAltException.cpp
  function buildConfigsRef (line 16) | Ref<atn::ATNConfigSet> buildConfigsRef(atn::ATNConfigSet *configs, bool ...
  function Token (line 40) | Token* NoViableAltException::getStartToken() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/NoViableAltException.h
  function namespace (line 12) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Parser.cpp
  function Token (line 108) | Token* Parser::match(size_t ttype) {
  function Token (line 127) | Token* Parser::matchWildcard() {
  function IntStream (line 263) | IntStream* Parser::getInputStream() {
  function TokenStream (line 271) | TokenStream* Parser::getTokenStream() {
  function Token (line 281) | Token* Parser::getCurrentToken() {
  function Token (line 298) | Token* Parser::consume() {
  function ParserRuleContext (line 441) | ParserRuleContext* Parser::getInvokingContext(size_t ruleIndex) {
  function ParserRuleContext (line 454) | ParserRuleContext* Parser::getContext() {
  function ParserRuleContext (line 526) | ParserRuleContext* Parser::getRuleContext() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Parser.h
  function namespace (line 15) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ParserInterpreter.cpp
  function ParserRuleContext (line 91) | ParserRuleContext* ParserInterpreter::parse(size_t startRuleIndex) {
  function InterpreterRuleContext (line 154) | InterpreterRuleContext* ParserInterpreter::getRootContext() {
  function InterpreterRuleContext (line 258) | InterpreterRuleContext* ParserInterpreter::createInterpreterRuleContext(...
  function Token (line 304) | Token* ParserInterpreter::recoverInline() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ParserInterpreter.h
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ParserRuleContext.cpp
  function RuleContext (line 68) | RuleContext* ParserRuleContext::addChild(RuleContext *ruleInvocation) {
  function Token (line 126) | Token* ParserRuleContext::getStart() {
  function Token (line 130) | Token* ParserRuleContext::getStop() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ParserRuleContext.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/ProxyErrorListener.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/RecognitionException.cpp
  function RuleContext (line 48) | RuleContext* RecognitionException::getCtx() const {
  function IntStream (line 52) | IntStream* RecognitionException::getInputStream() const {
  function Token (line 56) | Token* RecognitionException::getOffendingToken() const {
  function Recognizer (line 60) | Recognizer* RecognitionException::getRecognizer() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/RecognitionException.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Recognizer.cpp
  function ProxyErrorListener (line 140) | ProxyErrorListener& Recognizer::getErrorListenerDispatch() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Recognizer.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/RuleContext.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/RuleContextWithAltNum.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/RuntimeMetaData.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/TokenFactory.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/TokenSource.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/TokenStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/TokenStreamRewriter.cpp
  function TokenStream (line 103) | TokenStream *TokenStreamRewriter::getTokenStream() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/TokenStreamRewriter.h
  function namespace (line 8) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/UnbufferedCharStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/UnbufferedTokenStream.cpp
  function Token (line 32) | Token* UnbufferedTokenStream::get(size_t i) const
  function Token (line 42) | Token* UnbufferedTokenStream::LT(ssize_t i)
  function TokenSource (line 67) | TokenSource* UnbufferedTokenStream::getTokenSource() const

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/UnbufferedTokenStream.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Vocabulary.cpp
  function Vocabulary (line 27) | Vocabulary Vocabulary::fromTokenNames(const std::vector<std::string> &to...

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/Vocabulary.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/WritableToken.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/antlr4-common.h
  type __int64 (line 57) | typedef __int64 ssize_t;
  type __int32 (line 59) | typedef __int32 ssize_t;
  type std (line 66) | typedef std::basic_string<__int32> i32string;
  type i32string (line 68) | typedef i32string UTF32String;
  type std (line 70) | typedef std::u32string UTF32String;
  function namespace (line 85) | namespace std {
  type std (line 91) | typedef std::u32string UTF32String;
  type std (line 100) | typedef std::u32string UTF32String;

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATN.cpp
  function ATN (line 51) | ATN& ATN::operator = (ATN &other) NOEXCEPT {
  function ATN (line 69) | ATN& ATN::operator = (ATN &&other) NOEXCEPT {
  function DecisionState (line 121) | DecisionState *ATN::getDecisionState(size_t decision) const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATN.h
  function namespace (line 16) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNConfig.h
  function namespace (line 8) | namespace antlr4 {
  function namespace (line 132) | namespace std {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNConfigSet.cpp
  function BitSet (line 100) | BitSet ATNConfigSet::getAlts() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNConfigSet.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNDeserializationOptions.cpp
  function ATNDeserializationOptions (line 24) | const ATNDeserializationOptions& ATNDeserializationOptions::getDefaultOp...

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNDeserializationOptions.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNDeserializer.cpp
  function deserializeInt32 (line 62) | uint32_t deserializeInt32(const std::vector<uint16_t>& data, size_t offs...
  function readUnicodeInt (line 66) | ssize_t readUnicodeInt(const std::vector<uint16_t>& data, int& p) {
  function readUnicodeInt32 (line 70) | ssize_t readUnicodeInt32(const std::vector<uint16_t>& data, int& p) {
  function deserializeSets (line 79) | void deserializeSets(
  function ATN (line 156) | ATN ATNDeserializer::deserialize(const std::vector<uint16_t>& input) {
  function Transition (line 636) | Transition *ATNDeserializer::edgeFactory(const ATN &atn, size_t type, si...
  function ATNState (line 676) | ATNState* ATNDeserializer::stateFactory(size_t type, size_t ruleIndex) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNDeserializer.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNSerializer.h
  function namespace (line 8) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNSimulator.cpp
  function PredictionContextCache (line 33) | PredictionContextCache& ATNSimulator::getSharedContextCache() {
  function ATN (line 43) | ATN ATNSimulator::deserialize(const std::vector<uint16_t> &data) {
  function Transition (line 56) | Transition *ATNSimulator::edgeFactory(const ATN &atn, int type, int src,...
  function ATNState (line 61) | ATNState *ATNSimulator::stateFactory(int type, int ruleIndex) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNSimulator.h
  function namespace (line 13) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNState.cpp
  function Transition (line 68) | Transition *ATNState::removeTransition(size_t index) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ATNType.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/AbstractPredicateTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ActionTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/AmbiguityInfo.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ArrayPredictionContext.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/AtomTransition.cpp
  function IntervalSet (line 21) | IntervalSet AtomTransition::label() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/AtomTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/BasicBlockStartState.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/BasicState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/BlockEndState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/BlockStartState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ContextSensitivityInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/DecisionEventInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/DecisionInfo.h
  function namespace (line 13) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/DecisionState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/EmptyPredictionContext.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/EpsilonTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ErrorInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LL1Analyzer.h
  function namespace (line 13) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerATNConfig.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerATNSimulator.h
  function virtual (line 98) | virtual ~LexerATNSimulator () {(void)0;}

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerActionExecutor.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerActionType.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerChannelAction.cpp
  function LexerActionType (line 21) | LexerActionType LexerChannelAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerChannelAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerCustomAction.cpp
  function LexerActionType (line 27) | LexerActionType LexerCustomAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerCustomAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerIndexedCustomAction.cpp
  function LexerActionType (line 28) | LexerActionType LexerIndexedCustomAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerIndexedCustomAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerModeAction.cpp
  function LexerActionType (line 22) | LexerActionType LexerModeAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerModeAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerMoreAction.cpp
  function LexerActionType (line 23) | LexerActionType LexerMoreAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerMoreAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerPopModeAction.cpp
  function LexerActionType (line 23) | LexerActionType LexerPopModeAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerPopModeAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerPushModeAction.cpp
  function LexerActionType (line 22) | LexerActionType LexerPushModeAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerPushModeAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerSkipAction.cpp
  function LexerActionType (line 23) | LexerActionType LexerSkipAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerSkipAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerTypeAction.cpp
  function LexerActionType (line 22) | LexerActionType LexerTypeAction::getActionType() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LexerTypeAction.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LookaheadEventInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/LoopEndState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/NotSetTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/OrderedATNConfigSet.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ParseInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ParserATNSimulator.cpp
  function ATNConfigSet (line 560) | ATNConfigSet* ParserATNSimulator::removeAllConfigsNotInRuleStopState(ATN...
  function BitSet (line 774) | BitSet ParserATNSimulator::evalSemanticContext(std::vector<dfa::DFAState...
  function BitSet (line 1172) | BitSet ParserATNSimulator::getConflictingAlts(ATNConfigSet *configs) {
  function BitSet (line 1177) | BitSet ParserATNSimulator::getConflictingAltsOrUniqueAlt(ATNConfigSet *c...
  function NoViableAltException (line 1226) | NoViableAltException ParserATNSimulator::noViableAlt(TokenStream *input,...
  function Parser (line 1347) | Parser* ParserATNSimulator::getParser() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ParserATNSimulator.h
  function namespace (line 15) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PlusBlockStartState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PlusLoopbackState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PrecedencePredicateTransition.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PredicateEvalInfo.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PredicateTransition.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PredictionContext.h
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PredictionMode.cpp
  type AltAndContextConfigHasher (line 18) | struct AltAndContextConfigHasher
  type AltAndContextConfigComparer (line 32) | struct AltAndContextConfigComparer {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/PredictionMode.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ProfilingATNSimulator.cpp
  function DFAState (line 65) | DFAState* ProfilingATNSimulator::getExistingTargetState(DFAState *previo...
  function DFAState (line 84) | DFAState* ProfilingATNSimulator::computeTargetState(DFA &dfa, DFAState *...
  function DFAState (line 177) | DFAState* ProfilingATNSimulator::getCurrentState() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/ProfilingATNSimulator.h
  function namespace (line 11) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/RangeTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/RuleStartState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/RuleStopState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/RuleTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/SemanticContext.h
  type Hasher (line 22) | struct Hasher
  type Comparer (line 29) | struct Comparer {
  function virtual (line 116) | virtual size_t hashCode() const override;
  function virtual (line 171) | virtual std::vector<Ref<SemanticContext>> getOperands() const override;

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/SetTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/SingletonPredictionContext.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/StarBlockStartState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/StarLoopEntryState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/StarLoopbackState.cpp
  function StarLoopEntryState (line 13) | StarLoopEntryState *StarLoopbackState::getLoopEntryState() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/StarLoopbackState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/TokensStartState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/Transition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/atn/WildcardTransition.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/dfa/DFA.cpp
  function DFAState (line 63) | DFAState* DFA::getPrecedenceStartState(int precedence) const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/dfa/DFA.h
  function namespace (line 10) | namespace antlrcpp {
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/dfa/DFASerializer.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/dfa/DFAState.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/dfa/LexerDFASerializer.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/InterpreterDataReader.cpp
  function InterpreterData (line 20) | InterpreterData InterpreterDataReader::parseFile(std::string const& file...

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/InterpreterDataReader.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/Interval.cpp
  function Interval (line 79) | Interval Interval::Union(const Interval &other) const {
  function Interval (line 83) | Interval Interval::intersection(const Interval &other) const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/Interval.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/IntervalSet.cpp
  function IntervalSet (line 34) | IntervalSet& IntervalSet::operator=(const IntervalSet& other) {
  function IntervalSet (line 39) | IntervalSet& IntervalSet::operator=(IntervalSet&& other) {
  function IntervalSet (line 44) | IntervalSet IntervalSet::of(ssize_t a) {
  function IntervalSet (line 48) | IntervalSet IntervalSet::of(ssize_t a, ssize_t b) {
  function IntervalSet (line 113) | IntervalSet IntervalSet::Or(const std::vector<IntervalSet> &sets) {
  function IntervalSet (line 121) | IntervalSet& IntervalSet::addAll(const IntervalSet &set) {
  function IntervalSet (line 129) | IntervalSet IntervalSet::complement(ssize_t minElement, ssize_t maxEleme...
  function IntervalSet (line 133) | IntervalSet IntervalSet::complement(const IntervalSet &vocabulary) const {
  function IntervalSet (line 137) | IntervalSet IntervalSet::subtract(const IntervalSet &other) const {
  function IntervalSet (line 141) | IntervalSet IntervalSet::subtract(const IntervalSet &left, const Interva...
  function IntervalSet (line 210) | IntervalSet IntervalSet::Or(const IntervalSet &a) const {
  function IntervalSet (line 217) | IntervalSet IntervalSet::And(const IntervalSet &other) const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/IntervalSet.h
  function namespace (line 11) | namespace antlr4 {
  function namespace (line 188) | namespace std {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/MurmurHash.cpp
  function rotl32 (line 35) | inline uint32_t rotl32 (uint32_t x, int8_t r)
  function rotl64 (line 40) | inline uint64_t rotl64 (uint64_t x, int8_t r)

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/MurmurHash.h
  function class (line 13) | class ANTLR4CPP_PUBLIC MurmurHash {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/misc/Predicate.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Any.h
  function namespace (line 17) | namespace antlrcpp {
  function virtual (line 112) | virtual bool equals(const Any& other) const {
  type Base (line 117) | struct Base {
  function Base (line 130) | Base* clone() const {
  function Base (line 147) | Base* clone() const
  type StorageType (line 157) | typedef StorageType<U> T;
  function Any (line 171) | inline

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Arrays.h
  function equals (line 18) | bool equals(const std::vector<T> &a, const std::vector<T> &b) {
  function equals (line 45) | bool equals(const std::vector<Ref<T>> &a, const std::vector<Ref<T>> &b) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/BitSet.h
  function namespace (line 10) | namespace antlrcpp {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/CPPUtils.cpp
  type antlrcpp (line 8) | namespace antlrcpp {
    function join (line 10) | std::string join(std::vector<std::string> strings, const std::string &...
    function toMap (line 23) | std::map<std::string, size_t> toMap(const std::vector<std::string> &ke...
    function escapeWhitespace (line 31) | std::string escapeWhitespace(std::string str, bool escapeSpaces) {
    function toHexString (line 70) | std::string toHexString(const int t) {
    function arrayToString (line 76) | std::string arrayToString(const std::vector<std::string> &data) {
    function replaceString (line 84) | std::string replaceString(const std::string &s, const std::string &fro...
    function split (line 103) | std::vector<std::string> split(const std::string &s, const std::string...
    function indent (line 131) | std::string indent(const std::string &s, const std::string &indentatio...
    function get_nested (line 148) | std::exception_ptr get_nested(const T &/*e*/) {
    function get_nested (line 158) | std::exception_ptr get_nested(const T &e) {
    function what (line 169) | std::string what(std::exception_ptr eptr) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/CPPUtils.h
  function _cleanUp (line 24) | FinalAction(OnEnd f) : _cleanUp { std::move(f) } {}

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Casts.h
  function namespace (line 11) | namespace antlrcpp {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Declarations.h
  function namespace (line 8) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Guid.cpp
  type antlrcpp (line 45) | namespace antlrcpp {
    function hexDigitToChar (line 103) | uint8_t hexDigitToChar(char ch) {
    function hexPairToChar (line 117) | uint8_t hexPairToChar(char a, char b) {
    function Guid (line 157) | Guid GuidGenerator::newGuid()
    function Guid (line 167) | Guid GuidGenerator::newGuid()
    function Guid (line 198) | Guid GuidGenerator::newGuid()
    function Guid (line 241) | Guid GuidGenerator::newGuid()

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/Guid.h
  function namespace (line 39) | namespace antlrcpp {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/StringUtils.cpp
  type antlrcpp (line 8) | namespace antlrcpp {
    function replaceAll (line 10) | void replaceAll(std::string& str, std::string const& from, std::string...
    function ws2s (line 22) | std::string ws2s(std::wstring const& wstr) {
    function s2ws (line 34) | std::wstring s2ws(const std::string &str) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/support/StringUtils.h
  function namespace (line 14) | namespace antlrcpp {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/AbstractParseTreeVisitor.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ErrorNode.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ErrorNodeImpl.h
  function namespace (line 14) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/IterativeParseTreeWalker.h
  function namespace (line 37) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ParseTree.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ParseTreeListener.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ParseTreeProperty.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ParseTreeVisitor.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/ParseTreeWalker.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/TerminalNode.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/TerminalNodeImpl.cpp
  function Token (line 19) | Token* TerminalNodeImpl::getSymbol() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/TerminalNodeImpl.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/Trees.cpp
  function _findAllNodes (line 141) | static void _findAllNodes(ParseTree *t, size_t index, bool findTokens, s...
  function ParserRuleContext (line 206) | ParserRuleContext* Trees::getRootOfSubtreeEnclosingRegion(ParseTree *t, ...
  function ParseTree (line 226) | ParseTree * Trees::findNodeSuchThat(ParseTree *t, Ref<Predicate> const& ...

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/Trees.h
  function namespace (line 12) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/Chunk.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreeMatch.cpp
  function ParseTree (line 25) | ParseTree* ParseTreeMatch::get(const std::string &label) {
  function ParseTree (line 47) | ParseTree *ParseTreeMatch::getMismatchedNode() {
  function ParseTreePattern (line 55) | const ParseTreePattern& ParseTreeMatch::getPattern() {
  function ParseTree (line 59) | ParseTree * ParseTreeMatch::getTree() {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreeMatch.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreePattern.cpp
  function ParseTreeMatch (line 28) | ParseTreeMatch ParseTreePattern::match(ParseTree *tree) {
  function ParseTreePatternMatcher (line 50) | ParseTreePatternMatcher *ParseTreePattern::getMatcher() const {
  function ParseTree (line 62) | ParseTree* ParseTreePattern::getPatternTree() const {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreePattern.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp
  function ParseTreeMatch (line 75) | ParseTreeMatch ParseTreePatternMatcher::match(ParseTree *tree, const std...
  function ParseTreeMatch (line 80) | ParseTreeMatch ParseTreePatternMatcher::match(ParseTree *tree, const Par...
  function ParseTreePattern (line 86) | ParseTreePattern ParseTreePatternMatcher::compile(const std::string &pat...
  function Lexer (line 124) | Lexer* ParseTreePatternMatcher::getLexer() {
  function Parser (line 128) | Parser* ParseTreePatternMatcher::getParser() {
  function ParseTree (line 132) | ParseTree* ParseTreePatternMatcher::matchImpl(ParseTree *tree, ParseTree...
  function RuleTagToken (line 223) | RuleTagToken* ParseTreePatternMatcher::getRuleTagToken(ParseTree *t) {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/ParseTreePatternMatcher.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/RuleTagToken.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/TagChunk.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/TextChunk.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/pattern/TokenTagToken.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPath.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathLexer.h
  function class (line 9) | class  XPathLexer : public antlr4::Lexer {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathLexerErrorListener.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathRuleAnywhereElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathRuleElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathTokenAnywhereElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathTokenElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/antlr4-cpp-runtime-4/runtime/src/tree/xpath/XPathWildcardElement.h
  function namespace (line 10) | namespace antlr4 {

FILE: cpp/third_party/google_snappy/snappy-internal.h
  function namespace (line 55) | namespace snappy {

FILE: cpp/third_party/google_snappy/snappy-sinksource.cc
  type snappy (line 34) | namespace snappy {

FILE: cpp/third_party/google_snappy/snappy-sinksource.h
  function namespace (line 34) | namespace snappy {

FILE: cpp/third_party/google_snappy/snappy-stubs-internal.cc
  type snappy (line 34) | namespace snappy {

FILE: cpp/third_party/google_snappy/snappy-stubs-internal.h
  function namespace (line 120) | namespace snappy {

FILE: cpp/third_party/google_snappy/snappy.cc
  function MakeEntry (line 120) | inline constexpr int16_t MakeEntry(int16_t len, int16_t offset) {
  function LengthMinusOffset (line 124) | inline constexpr int16_t LengthMinusOffset(int data, int type) {
  function LengthMinusOffset (line 132) | inline constexpr int16_t LengthMinusOffset(uint8_t tag) {
  type index_sequence (line 137) | struct index_sequence {}
  type make_index_sequence (line 140) | struct make_index_sequence : make_index_sequence<N - 1, N - 1, Is...> {}
  type make_index_sequence<0, Is...> (line 143) | struct make_index_sequence<0, Is...> : index_sequence<Is...> {}
  function MakeTable (line 146) | constexpr std::array<int16_t, 256> MakeTable(index_sequence<seq...>) {
  function MaxCompressedLength (line 201) | size_t MaxCompressedLength(size_t source_bytes) {
  function UnalignedCopy64 (line 227) | void UnalignedCopy64(const void* src, void* dst) {
  function UnalignedCopy128 (line 233) | void UnalignedCopy128(const void* src, void* dst) {
  function ConditionalUnalignedCopy128 (line 243) | inline void ConditionalUnalignedCopy128(const char* src, char* dst) {
  function MakePatternMaskBytes (line 289) | inline constexpr std::array<char, sizeof...(indexes)> MakePatternMaskBytes(
  function MakePatternMaskBytesTable (line 297) | inline constexpr std::array<std::array<char, sizeof(V128)>,
  function SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 326) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
  function SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 337) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
  function SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 359) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
  function GetUncompressedLength (line 730) | bool GetUncompressedLength(const char* start, size_t n, size_t* result) {
  function CalculateTableSize (line 742) | uint32_t CalculateTableSize(uint32_t input_size) {
  type internal (line 758) | namespace internal {
  type internal (line 794) | namespace internal {
  function Report (line 1133) | static inline void Report(int token, const char *algorithm, size_t
  function ExtractLowBytes (line 1198) | static inline uint32_t ExtractLowBytes(const uint32_t& v, int n) {
  function LeftShiftOverflows (line 1211) | static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
  function Copy64BytesWithPatternExtension (line 1221) | inline bool Copy64BytesWithPatternExtension(ptrdiff_t dst, size_t offset) {
  function MemCopy64 (line 1231) | void MemCopy64(char* dst, const void* src, size_t size) {
  function MemCopy64 (line 1264) | void MemCopy64(ptrdiff_t dst, const void* src, size_t size) {
  function ClearDeferred (line 1271) | void ClearDeferred(const void** deferred_src, size_t* deferred_length,
  function DeferMemCopy (line 1277) | void DeferMemCopy(const void** deferred_src, size_t* deferred_length,
  function SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 1283) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
  function SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 1306) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
  function ExtractOffset (line 1353) | inline uint32_t ExtractOffset(uint32_t val, size_t tag_type) {
  function DecompressBranchless (line 1384) | std::pair<const uint8_t*, ptrdiff_t> DecompressBranchless(
  class SnappyDecompressor (line 1498) | class SnappyDecompressor {
    method ResetLimit (line 1517) | void ResetLimit(const char* ip) {
    method SnappyDecompressor (line 1523) | explicit SnappyDecompressor(Source* reader)
    method eof (line 1532) | bool eof() const { return eof_; }
    method ReadUncompressedLength (line 1537) | bool ReadUncompressedLength(uint32_t* result) {
    method DecompressAllTags (line 1564) | __attribute__((aligned(32)))
  function CalculateNeeded (line 1688) | constexpr uint32_t CalculateNeeded(uint8_t tag) {
  function VerifyCalculateNeeded (line 1695) | constexpr bool VerifyCalculateNeeded() {
  function InternalUncompress (line 1770) | static bool InternalUncompress(Source* r, Writer* writer) {
  function InternalUncompressAllTags (line 1781) | static bool InternalUncompressAllTags(SnappyDecompressor* decompressor,
  function GetUncompressedLength (line 1795) | bool GetUncompressedLength(Source* source, uint32_t* result) {
  function Compress (line 1800) | size_t Compress(Source* reader, Sink* writer) {
  function Compress (line 1804) | size_t Compress(Source* reader, Sink* writer, CompressionOptions options) {
  class SnappyIOVecReader (line 1888) | class SnappyIOVecReader : public Source {
    method SnappyIOVecReader (line 1890) | SnappyIOVecReader(const struct iovec* iov, size_t total_size)
    method Available (line 1902) | size_t Available() const override { return total_size_remaining_; }
    method Skip (line 1909) | void Skip(size_t n) override {
    method Advance (line 1921) | void Advance() {
    type iovec (line 1937) | struct iovec
  class SnappyIOVecWriter (line 1949) | class SnappyIOVecWriter {
    type iovec (line 1953) | struct iovec
    type iovec (line 1956) | struct iovec
    type iovec (line 1960) | struct iovec
    type iovec (line 1974) | struct iovec
    type iovec (line 1981) | struct iovec
    method SetExpectedLength (line 1994) | inline void SetExpectedLength(size_t len) { output_limit_ = len; }
    method CheckLength (line 1996) | inline bool CheckLength() const { return total_written_ == output_limi...
    method Append (line 1998) | inline bool Append(const char* ip, size_t len, char**) {
    method SetOutputPtr (line 2008) | void SetOutputPtr(char* op) {
    method AppendNoCheck (line 2013) | inline bool AppendNoCheck(const char* ip, size_t len) {
    method TryFastAppend (line 2037) | inline bool TryFastAppend(const char* ip, size_t available, size_t len,
    method AppendFromSelf (line 2053) | inline bool AppendFromSelf(size_t offset, size_t len, char**) {
    method RawUncompressToIOVec (line 2128) | bool RawUncompressToIOVec(const char* compressed, size_t compressed_le...
    method RawUncompressToIOVec (line 2134) | bool RawUncompressToIOVec(Source* compressed, const struct iovec* iov,
    class SnappyArrayWriter (line 2147) | class SnappyArrayWriter {
      method SnappyArrayWriter (line 2157) | inline explicit SnappyArrayWriter(char* dst)
      method SetExpectedLength (line 2163) | inline void SetExpectedLength(size_t len) {
      method CheckLength (line 2169) | inline bool CheckLength() const { return op_ == op_limit_; }
      method SetOutputPtr (line 2176) | void SetOutputPtr(char* op) { op_ = op; }
      method Append (line 2178) | inline bool Append(const char* ip, size_t len, char** op_p) {
      method TryFastAppend (line 2187) | inline bool TryFastAppend(const char* ip, size_t available, size_t len,
      method SNAPPY_ATTRIBUTE_ALWAYS_INLINE (line 2201) | SNAPPY_ATTRIBUTE_ALWAYS_INLINE
      method Produced (line 2222) | inline size_t Produced() const {
      method Flush (line 2226) | inline void Flush() {}
    method RawUncompress (line 2229) | bool RawUncompress(const char* compressed, size_t compressed_length,
    method RawUncompress (line 2235) | bool RawUncompress(Source* compressed, char* uncompressed) {
    method Uncompress (line 2240) | bool Uncompress(const char* compressed, size_t compressed_length,
    class SnappyDecompressionValidator (line 2257) | class SnappyDecompressionValidator {
      method SnappyDecompressionValidator (line 2263) | inline SnappyDecompressionValidator() : expected_(0), produced_(0) {}
      method SetExpectedLength (line 2264) | inline void SetExpectedLength(size_t len) { expected_ = len; }
      method GetOutputPtr (line 2265) | size_t GetOutputPtr() { return produced_; }
      method GetBase (line 2266) | size_t GetBase(ptrdiff_t* op_limit_min_slop) {
      method SetOutputPtr (line 2270) | void SetOutputPtr(size_t op) { produced_ = op; }
      method CheckLength (line 2271) | inline bool CheckLength() const { return expected_ == produced_; }
      method Append (line 2272) | inline bool Append(const char* ip, size_t len, size_t* produced) {
      method TryFastAppend (line 2279) | inline bool TryFastAppend(const char* ip, size_t available, size_t l...
      method AppendFromSelf (line 2289) | inline bool AppendFromSelf(size_t offset, size_t len, size_t* produc...
      method Flush (line 2296) | inline void Flush() {}
    method IsValidCompressedBuffer (line 2299) | bool IsValidCompressedBuffer(const char* compressed, size_t compressed...
    method IsValidCompressed (line 2305) | bool IsValidCompressed(Source* compressed) {
    method RawCompress (line 2310) | void RawCompress(const char* input, size_t input_length, char* compres...
    method RawCompress (line 2316) | void RawCompress(const char* input, size_t input_length, char* compres...
    method RawCompressFromIOVec (line 2326) | void RawCompressFromIOVec(const struct iovec* iov, size_t uncompressed...
    method RawCompressFromIOVec (line 2332) | void RawCompressFromIOVec(const struct iovec* iov, size_t uncompressed...
    method Compress (line 2343) | size_t Compress(const char* input, size_t input_length,
    method Compress (line 2348) | size_t Compress(const char* input, size_t input_length, std::string* c...
    method CompressFromIOVec (line 2360) | size_t CompressFromIOVec(const struct iovec* iov, size_t iov_cnt,
    method CompressFromIOVec (line 2365) | size_t CompressFromIOVec(const struct iovec* iov, size_t iov_cnt,
    class SnappyScatteredWriter (line 2392) | class SnappyScatteredWriter {
      method Size (line 2412) | inline size_t Size() const { return full_size_ + (op_ptr_ - op_base_...
      method SnappyScatteredWriter (line 2418) | inline explicit SnappyScatteredWriter(const Allocator& allocator)
      method SetOutputPtr (line 2430) | void SetOutputPtr(char* op) { op_ptr_ = op; }
      method SetExpectedLength (line 2432) | inline void SetExpectedLength(size_t len) {
      method CheckLength (line 2437) | inline bool CheckLength() const { return Size() == expected_; }
      method Produced (line 2440) | inline size_t Produced() const { return Size(); }
      method Append (line 2442) | inline bool Append(const char* ip, size_t len, char** op_p) {
      method TryFastAppend (line 2458) | inline bool TryFastAppend(const char* ip, size_t available, size_t l...
      method AppendFromSelf (line 2473) | inline bool AppendFromSelf(size_t offset, size_t len, char** op_p) {
      method Flush (line 2500) | inline void Flush() { allocator_.Flush(Produced()); }
    class SnappySinkAllocator (line 2566) | class SnappySinkAllocator {
      method SnappySinkAllocator (line 2568) | explicit SnappySinkAllocator(Sink* dest) : dest_(dest) {}
      method Flush (line 2581) | void Flush(size_t size) {
      type Datablock (line 2593) | struct Datablock {
        method Datablock (line 2596) | Datablock(char* p, size_t s) : data(p), size(s) {}
      method Deleter (line 2599) | static void Deleter(void* arg, const char* bytes, size_t size) {
    method UncompressAsMuchAsPossible (line 2613) | size_t UncompressAsMuchAsPossible(Source* compressed, Sink* uncompress...
    method Uncompress (line 2620) | bool Uncompress(Source* compressed, Sink* uncompressed) {

FILE: cpp/third_party/google_snappy/snappy.h
  function namespace (line 49) | namespace snappy {
  type iovec (line 114) | struct iovec
  type iovec (line 116) | struct iovec
  type iovec (line 169) | struct iovec
  type iovec (line 171) | struct iovec
  type iovec (line 199) | struct iovec
  type iovec (line 209) | struct iovec

FILE: cpp/third_party/lz4/lz4.c
  function LZ4_isAligned (line 329) | static int LZ4_isAligned(const void* ptr, size_t alignment) {
  type BYTE (line 340) | typedef uint8_t BYTE;
  type U16 (line 341) | typedef uint16_t U16;
  type U32 (line 342) | typedef uint32_t U32;
  type S32 (line 343) | typedef int32_t S32;
  type U64 (line 344) | typedef uint64_t U64;
  type uptrval (line 345) | typedef uintptr_t uptrval;
  type BYTE (line 350) | typedef unsigned char BYTE;
  type U16 (line 351) | typedef unsigned short U16;
  type U32 (line 352) | typedef unsigned int U32;
  type S32 (line 353) | typedef signed int S32;
  type U64 (line 354) | typedef unsigned long long U64;
  type uptrval (line 355) | typedef size_t uptrval;
  type U64 (line 359) | typedef U64 reg_t;
  type reg_t (line 361) | typedef size_t reg_t;
  type limitedOutput_directive (line 364) | typedef enum {
  function LZ4_isLittleEndian (line 399) | static unsigned LZ4_isLittleEndian(void) {
  function U16 (line 410) | static U16 LZ4_read16(const void* memPtr) { return *(const U16*)memPtr; }
  function U32 (line 411) | static U32 LZ4_read32(const void* memPtr) { return *(const U32*)memPtr; }
  function reg_t (line 412) | static reg_t LZ4_read_ARCH(const void* memPtr) { return *(const reg_t*)m...
  function LZ4_write16 (line 414) | static void LZ4_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; }
  function LZ4_write32 (line 415) | static void LZ4_write32(void* memPtr, U32 value) { *(U32*)memPtr = value; }
  type LZ4_unalign16 (line 422) | typedef struct {
  type LZ4_unalign32 (line 425) | typedef struct {
  type LZ4_unalignST (line 428) | typedef struct {
  function U16 (line 432) | static U16 LZ4_read16(const void* ptr) {
  function U32 (line 435) | static U32 LZ4_read32(const void* ptr) {
  function reg_t (line 438) | static reg_t LZ4_read_ARCH(const void* ptr) {
  function LZ4_write16 (line 442) | static void LZ4_write16(void* memPtr, U16 value) {
  function LZ4_write32 (line 445) | static void LZ4_write32(void* memPtr, U32 value) {
  function U16 (line 451) | static U16 LZ4_read16(const void* memPtr) {
  function U32 (line 457) | static U32 LZ4_read32(const void* memPtr) {
  function reg_t (line 463) | static reg_t LZ4_read_ARCH(const void* memPtr) {
  function LZ4_write16 (line 469) | static void LZ4_write16(void* memPtr, U16 value) {
  function LZ4_write32 (line 473) | static void LZ4_write32(void* memPtr, U32 value) {
  function U16 (line 479) | static U16 LZ4_readLE16(const void* memPtr) {
  function LZ4_writeLE16 (line 488) | static void LZ4_writeLE16(void* memPtr, U16 value) {
  function LZ4_FORCE_INLINE (line 500) | LZ4_FORCE_INLINE
  function LZ4_FORCE_INLINE (line 533) | LZ4_FORCE_INLINE void LZ4_memcpy_using_offset_base(BYTE* dstPtr,
  function LZ4_FORCE_INLINE (line 560) | LZ4_FORCE_INLINE void LZ4_wildCopy32(void* dstPtr, const void* srcPtr,
  function LZ4_FORCE_INLINE (line 577) | LZ4_FORCE_INLINE void LZ4_memcpy_using_offset(BYTE* dstPtr, const BYTE* ...
  function LZ4_NbCommonBytes (line 624) | static unsigned LZ4_NbCommonBytes(reg_t val) {
  function LZ4_count (line 741) | LZ4_FORCE_INLINE
  type tableType_t (line 790) | typedef enum { clearedTable = 0, byPtr, byU32, byU16 } tableType_t;
  type dict_directive (line 815) | typedef enum {
  type dictIssue_directive (line 821) | typedef enum { noDictIssue = 0, dictSmall } dictIssue_directive;
  function LZ4_versionNumber (line 826) | int LZ4_versionNumber(void) { return LZ4_VERSION_NUMBER; }
  function LZ4_compressBound (line 828) | int LZ4_compressBound(int isize) { return LZ4_COMPRESSBOUND(isize); }
  function LZ4_sizeofState (line 829) | int LZ4_sizeofState(void) { return sizeof(LZ4_stream_t); }
  function LZ4_FORCE_INLINE (line 854) | LZ4_FORCE_INLINE U32 LZ4_hash4(U32 sequence, tableType_t const tableType) {
  function LZ4_FORCE_INLINE (line 862) | LZ4_FORCE_INLINE U32 LZ4_hash5(U64 sequence, tableType_t const tableType) {
  function LZ4_FORCE_INLINE (line 873) | LZ4_FORCE_INLINE U32 LZ4_hashPosition(const void* const p,
  function LZ4_FORCE_INLINE (line 880) | LZ4_FORCE_INLINE void LZ4_clearHash(U32 h, void* tableBase,
  function LZ4_FORCE_INLINE (line 906) | LZ4_FORCE_INLINE void LZ4_putIndexOnHash(U32 idx, U32 h, void* tableBase,
  function LZ4_FORCE_INLINE (line 930) | LZ4_FORCE_INLINE void LZ4_putPositionOnHash(const BYTE* p, U32 h,
  function LZ4_FORCE_INLINE (line 939) | LZ4_FORCE_INLINE void LZ4_putPosition(const BYTE* p, void* tableBase,
  function LZ4_FORCE_INLINE (line 951) | LZ4_FORCE_INLINE U32 LZ4_getIndexOnHash(U32 h, const void* tableBase,
  function BYTE (line 968) | static const BYTE* LZ4_getPositionOnHash(U32 h, const void* tableBase,
  function LZ4_FORCE_INLINE (line 978) | LZ4_FORCE_INLINE const BYTE* LZ4_getPosition(const BYTE* p,
  function LZ4_FORCE_INLINE (line 985) | LZ4_FORCE_INLINE void LZ4_prepareTable(LZ4_stream_t_internal* const cctx,
  function LZ4_FORCE_INLINE (line 1030) | LZ4_FORCE_INLINE int LZ4_compress_generic_validated(
  function LZ4_FORCE_INLINE (line 1524) | LZ4_FORCE_INLINE int LZ4_compress_generic(
  function LZ4_compress_fast_extState (line 1559) | int LZ4_compress_fast_extState(void* state, const char* source, char* dest,
  function LZ4_compress_fast_extState_fastReset (line 1608) | int LZ4_compress_fast_extState_fastReset(void* state, const char* src,
  function LZ4_compress_fast (line 1667) | int LZ4_compress_fast(const char* src, char* dest, int srcSize, int dstC...
  function LZ4_compress_default (line 1687) | int LZ4_compress_default(const char* src, char* dst, int srcSize,
  function LZ4_compress_destSize_extState (line 1695) | static int LZ4_compress_destSize_extState(LZ4_stream_t* state, const cha...
  function LZ4_compress_destSize (line 1724) | int LZ4_compress_destSize(const char* src, char* dst, int* srcSizePtr,
  function LZ4_stream_t (line 1749) | LZ4_stream_t* LZ4_createStream(void) {
  function LZ4_stream_t_alignment (line 1759) | static size_t LZ4_stream_t_alignment(void) {
  function LZ4_stream_t (line 1771) | LZ4_stream_t* LZ4_initStream(void* buffer, size_t size) {
  function LZ4_resetStream (line 1786) | void LZ4_resetStream(LZ4_stream_t* LZ4_stream) {
  function LZ4_resetStream_fast (line 1791) | void LZ4_resetStream_fast(LZ4_stream_t* ctx) {
  function LZ4_freeStream (line 1796) | int LZ4_freeStream(LZ4_stream_t* LZ4_stream) {
  function LZ4_loadDict (line 1805) | int LZ4_loadDict(LZ4_stream_t* LZ4_dict, const char* dictionary, int dic...
  function LZ4_attach_dictionary (line 1849) | void LZ4_attach_dictionary(LZ4_stream_t* workingStream,
  function LZ4_renormDictT (line 1877) | static void LZ4_renormDictT(LZ4_stream_t_internal* LZ4_dict, int nextSiz...
  function LZ4_compress_fast_continue (line 1898) | int LZ4_compress_fast_continue(LZ4_stream_t* LZ4_stream, const char* sou...
  function LZ4_compress_forceExtDict (line 2008) | int LZ4_compress_forceExtDict(LZ4_stream_t* LZ4_dict, const char* source,
  function LZ4_saveDict (line 2040) | int LZ4_saveDict(LZ4_stream_t* LZ4_dict, char* safeBuffer, int dictSize) {
  type earlyEnd_directive (line 2070) | typedef enum { decode_full_block = 0, partial_decode = 1 } earlyEnd_dire...
  function read_long_length_no_check (line 2079) | static size_t read_long_length_no_check(const BYTE** pp) {
  function LZ4_FORCE_INLINE (line 2100) | LZ4_FORCE_INLINE int LZ4_decompress_unsafe_generic(
  type Rvl_t (line 2221) | typedef size_t Rvl_t;
  function LZ4_FORCE_INLINE (line 2223) | LZ4_FORCE_INLINE Rvl_t read_variable_length(const BYTE** ip, const BYTE*...
  function LZ4_FORCE_O2 (line 2764) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2772) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2780) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2789) | LZ4_FORCE_O2 /* Exported, an obsolete API function. */
  function LZ4_FORCE_O2 (line 2798) | LZ4_FORCE_O2
  function LZ4_decompress_fast_withPrefix64k (line 2811) | int LZ4_decompress_fast_withPrefix64k(const char* source, char* dest,
  function LZ4_FORCE_O2 (line 2817) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2827) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2837) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2847) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2857) | LZ4_FORCE_O2
  function LZ4_FORCE_INLINE (line 2870) | LZ4_FORCE_INLINE
  function LZ4_streamDecode_t (line 2884) | LZ4_streamDecode_t* LZ4_createStreamDecode(void) {
  function LZ4_freeStreamDecode (line 2890) | int LZ4_freeStreamDecode(LZ4_streamDecode_t* LZ4_stream) {
  function LZ4_setStreamDecode (line 2905) | int LZ4_setStreamDecode(LZ4_streamDecode_t* LZ4_streamDecode,
  function LZ4_decoderRingBufferSize (line 2931) | int LZ4_decoderRingBufferSize(int maxBlockSize) {
  function LZ4_FORCE_O2 (line 2946) | LZ4_FORCE_O2
  function LZ4_FORCE_O2 (line 2991) | LZ4_FORCE_O2 int LZ4_decompress_fast_continue(
  function LZ4_decompress_safe_usingDict (line 3039) | int LZ4_decompress_safe_usingDict(const char* source, char* dest,
  function LZ4_decompress_safe_partial_usingDict (line 3059) | int LZ4_decompress_safe_partial_usingDict(const char* source, char* dest,
  function LZ4_decompress_fast_usingDict (line 3082) | int LZ4_decompress_fast_usingDict(const char* source, char* dest,
  function LZ4_compress_limitedOutput (line 3098) | int LZ4_compress_limitedOutput(const char* source, char* dest, int input...
  function LZ4_compress (line 3102) | int LZ4_compress(const char* src, char* dest, int srcSize) {
  function LZ4_compress_limitedOutput_withState (line 3105) | int LZ4_compress_limitedOutput_withState(void* state, const char* src,
  function LZ4_compress_withState (line 3109) | int LZ4_compress_withState(void* state, const char* src, char* dst,
  function LZ4_compress_limitedOutput_continue (line 3114) | int LZ4_compress_limitedOutput_continue(LZ4_stream_t* LZ4_stream,
  function LZ4_compress_continue (line 3120) | int LZ4_compress_continue(LZ4_stream_t* LZ4_stream, const char* source,
  function LZ4_uncompress (line 3132) | int LZ4_uncompress(const char* source, char* dest, int outputSize) {
  function LZ4_uncompress_unknownOutputSize (line 3135) | int LZ4_uncompress_unknownOutputSize(const char* source, char* dest, int...
  function LZ4_sizeofStreamState (line 3142) | int LZ4_sizeofStreamState(void) { return sizeof(LZ4_stream_t); }
  function LZ4_resetStreamState (line 3144) | int LZ4_resetStreamState(void* state, char* inputBuffer) {

FILE: cpp/third_party/lz4/lz4.h
  type LZ4_stream_t (line 360) | typedef union LZ4_stream_u LZ4_stream_t;
  type LZ4_streamDecode_t (line 473) | typedef union LZ4_streamDecode_u LZ4_streamDecode_t;
  type LZ4_i8 (line 773) | typedef int8_t LZ4_i8;
  type LZ4_byte (line 774) | typedef uint8_t LZ4_byte;
  type LZ4_u16 (line 775) | typedef uint16_t LZ4_u16;
  type LZ4_u32 (line 776) | typedef uint32_t LZ4_u32;
  type LZ4_i8 (line 778) | typedef signed char LZ4_i8;
  type LZ4_byte (line 779) | typedef unsigned char LZ4_byte;
  type LZ4_u16 (line 780) | typedef unsigned short LZ4_u16;
  type LZ4_u32 (line 781) | typedef unsigned int LZ4_u32;
  type LZ4_stream_t_internal (line 790) | typedef struct LZ4_stream_t_internal LZ4_stream_t_internal;
  type LZ4_stream_t_internal (line 791) | struct LZ4_stream_t_internal {
  type LZ4_streamDecode_t_internal (line 831) | typedef struct {

FILE: cpp/third_party/lzokay/lzokay.cpp
  type lzokay (line 11) | namespace lzokay {
    function get_le16 (line 22) | static uint16_t get_le16(const uint8_t* p) {
    function get_le16 (line 33) | static uint16_t get_le16(const uint8_t* p) {
    function EResult (line 92) | EResult decompress(const uint8_t* src, std::size_t src_size,
    type State (line 294) | struct State {
      method get_byte (line 307) | void get_byte(uint8_t* buf) {
      method pos2off (line 326) | uint32_t pos2off(uint32_t pos) const {
    class DictImpl (line 331) | class DictImpl : public DictBase {
      type Match3Impl (line 333) | struct Match3Impl : DictBase::Match3 {
        method make_key (line 334) | static uint32_t make_key(const uint8_t* data) {
        method get_head (line 338) | uint16_t get_head(uint32_t key) const {
        method init (line 342) | void init() {
        method remove (line 346) | void remove(uint32_t pos, const uint8_t* b) {
        method advance (line 350) | void advance(State& s, uint32_t& match_pos, uint32_t& match_count,...
        method skip_advance (line 359) | void skip_advance(State& s, const uint8_t* b) {
      type Match2Impl (line 368) | struct Match2Impl : DictBase::Match2 {
        method make_key (line 369) | static uint32_t make_key(const uint8_t* data) {
        method init (line 373) | void init() {
        method add (line 377) | void add(uint16_t pos, const uint8_t* b) {
        method remove (line 381) | void remove(uint32_t pos, const uint8_t* b) {
        method search (line 387) | bool search(State& s, uint32_t& lb_pos, uint32_t& lb_len,
      method init (line 402) | void init(State& s, const uint8_t* src, std::size_t src_size) {
      method reset_next_input_entry (line 426) | void reset_next_input_entry(State& s, Match3Impl& match3, Match2Impl...
      method advance (line 436) | void advance(State& s, uint32_t& lb_off, uint32_t& lb_len,
    function find_better_match (line 510) | static void find_better_match(const uint32_t best_off[MaxMatchByLength...
    function EResult (line 528) | static EResult encode_literal_run(uint8_t*& outp, const uint8_t* outp_...
    function EResult (line 548) | static EResult encode_lookback_match(uint8_t*& outp, const uint8_t* ou...
    function EResult (line 597) | EResult compress(const uint8_t* src, std::size_t src_size,

FILE: cpp/third_party/lzokay/lzokay.hpp
  type lzokay (line 6) | namespace lzokay {
    type EResult (line 8) | enum class EResult {
    class DictBase (line 17) | class DictBase {
      type Match3 (line 25) | struct Match3 {
      type Match2 (line 32) | struct Match2 {
      type Data (line 36) | struct Data {
      
Copy disabled (too large) Download .json
Condensed preview — 3152 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (71,604K chars).
[
  {
    "path": ".asf.yaml",
    "chars": 1577,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": ".clang-format",
    "chars": 6098,
    "preview": "---\nLanguage:        Cpp\n# BasedOnStyle:  Google\nAccessModifierOffset: -1\nAlignAfterOpenBracket: Align\nAlignArrayOfStruc"
  },
  {
    "path": ".gitattributes",
    "chars": 807,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 1127,
    "preview": "# ----------------------------------------------------------------------------\n# Licensed to the Apache Software Foundat"
  },
  {
    "path": ".github/workflows/code-coverage.yml",
    "chars": 1599,
    "preview": "name: Code Coverage\non:\n  push:\n    branches:\n      - develop\n      - rc/*\n    paths-ignore:\n      - 'docs/**'\n  pull_re"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 3333,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/site-build.yaml",
    "chars": 2410,
    "preview": "name: Site Build\n\non:\n  push:\n    branches:\n      - develop\n    paths:\n      - 'docs/**'\n  pull_request:\n    branches:\n "
  },
  {
    "path": ".github/workflows/unit-test-cpp.yml",
    "chars": 4574,
    "preview": "# This workflow will build a Java project with Maven\n# For more information see: https://help.github.com/actions/languag"
  },
  {
    "path": ".github/workflows/unit-test-java.yml",
    "chars": 2577,
    "preview": "# This workflow will build a Java project with Maven\n# For more information see: https://help.github.com/actions/languag"
  },
  {
    "path": ".github/workflows/unit-test-python.yml",
    "chars": 3934,
    "preview": "# This workflow will build a Java project with Maven\n# For more information see: https://help.github.com/actions/languag"
  },
  {
    "path": ".github/workflows/wheels.yml",
    "chars": 9240,
    "preview": "name: Build TsFile wheels(multi-platform)\n\non:\n  push:\n    branches:\n      - \"rc/**\"\n  workflow_dispatch:\n\njobs:\n  build"
  },
  {
    "path": ".gitignore",
    "chars": 972,
    "preview": "/.mvn/.gradle-enterprise/\n/.mvn/.develocity/\n/.mvn/wrapper/maven-wrapper.jar\n**/target/**\n/java/tsfile/test.tsfile\n\n\n# i"
  },
  {
    "path": ".mvn/develocity.xml",
    "chars": 1972,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more "
  },
  {
    "path": ".mvn/extensions.xml",
    "chars": 1449,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more "
  },
  {
    "path": ".mvn/wrapper/maven-wrapper.properties",
    "chars": 1020,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "CLAUDE.md",
    "chars": 3277,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "Jenkinsfile",
    "chars": 5498,
    "preview": "#!groovy\n\n/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  S"
  },
  {
    "path": "LICENSE",
    "chars": 18499,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "NOTICE",
    "chars": 755,
    "preview": "Apache TsFile\nCopyright 2023-2025 The Apache Software Foundation.\n\nThis product includes software developed at\nThe Apach"
  },
  {
    "path": "README-zh.md",
    "chars": 4131,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "README.md",
    "chars": 7351,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "RELEASE_NOTES.md",
    "chars": 11557,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "checkstyle.xml",
    "chars": 13878,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE module PUBLIC \"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\" \"htt"
  },
  {
    "path": "codecov.yml",
    "chars": 1298,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "cpp/.clang-format",
    "chars": 6070,
    "preview": "---\nLanguage:        Cpp\n# BasedOnStyle:  Google\nAccessModifierOffset: -1\nAlignAfterOpenBracket: Align\nAlignArrayOfStruc"
  },
  {
    "path": "cpp/.gitignore",
    "chars": 72,
    "preview": "build/\n.idea/\n.cproject\n.project\n.settings/\n.vscode/\ncmake-build-debug/\n"
  },
  {
    "path": "cpp/CLAUDE.md",
    "chars": 3949,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "cpp/CMakeLists.txt",
    "chars": 6231,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/README-zh.md",
    "chars": 3685,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "cpp/README.md",
    "chars": 5363,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "cpp/VersionUpdater.groovy",
    "chars": 2160,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/bench_mark/CMakeLists.txt",
    "chars": 1135,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/bench_mark/bench_mark_src/CMakeLists.txt",
    "chars": 2197,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/bench_mark/bench_mark_src/bench_conf.h",
    "chars": 982,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/bench_mark/bench_mark_src/bench_mark.cc",
    "chars": 6913,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/bench_mark/bench_mark_src/bench_mark.h",
    "chars": 808,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/bench_mark/build.sh",
    "chars": 1399,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "cpp/build.sh",
    "chars": 4184,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "cpp/cmake/CopyToDir.cmake",
    "chars": 2007,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/cmake/ToolChain.cmake",
    "chars": 1569,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/examples/CMakeLists.txt",
    "chars": 1765,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/examples/README.md",
    "chars": 2132,
    "preview": "<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one\n    or more contributor license agreements.  See th"
  },
  {
    "path": "cpp/examples/build.sh",
    "chars": 992,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "cpp/examples/c_examples/CMakeLists.txt",
    "chars": 902,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/examples/c_examples/c_examples.h",
    "chars": 1300,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/c_examples/demo_read.c",
    "chars": 4314,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/c_examples/demo_write.c",
    "chars": 3514,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/cpp_examples/CMakeLists.txt",
    "chars": 910,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/examples/cpp_examples/cpp_examples.h",
    "chars": 1646,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/cpp_examples/demo_read.cpp",
    "chars": 4192,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/cpp_examples/demo_write.cpp",
    "chars": 2794,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/examples/examples.cc",
    "chars": 1161,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/pom.xml",
    "chars": 12215,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contr"
  },
  {
    "path": "cpp/src/CMakeLists.txt",
    "chars": 4575,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/CMakeLists.txt",
    "chars": 1769,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/allocator/CMakeLists.txt",
    "chars": 1067,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/allocator/alloc_base.h",
    "chars": 3434,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/allocator/byte_stream.h",
    "chars": 44407,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/allocator/mem_alloc.cc",
    "chars": 7262,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/allocator/my_string.h",
    "chars": 6462,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/allocator/page_arena.cc",
    "chars": 2068,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/allocator/page_arena.h",
    "chars": 2985,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/cache/lru_cache.h",
    "chars": 5234,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/config/CMakeLists.txt",
    "chars": 767,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/config/config.h",
    "chars": 2770,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/constant/CMakeLists.txt",
    "chars": 764,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/constant/tsfile_constant.h",
    "chars": 1996,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/CMakeLists.txt",
    "chars": 961,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/container/array.h",
    "chars": 8151,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/bit_map.cc",
    "chars": 1451,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/bit_map.h",
    "chars": 4143,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/blocking_queue.cc",
    "chars": 1708,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/blocking_queue.h",
    "chars": 1273,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/byte_buffer.h",
    "chars": 4320,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/hash_func.h",
    "chars": 2756,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/hash_node.h",
    "chars": 2207,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/hash_segm.h",
    "chars": 1649,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/hash_table.h",
    "chars": 31453,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/list.h",
    "chars": 4581,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/murmur_hash3.cc",
    "chars": 4572,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/murmur_hash3.h",
    "chars": 2592,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/simple_vector.h",
    "chars": 1751,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/slice.h",
    "chars": 4592,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/container/sorted_array.h",
    "chars": 8952,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/datatype/date_converter.h",
    "chars": 3381,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/datatype/value.h",
    "chars": 7024,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/db_common.h",
    "chars": 5626,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/device_id.cc",
    "chars": 14345,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/device_id.h",
    "chars": 7045,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/global.cc",
    "chars": 8012,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/global.h",
    "chars": 6996,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/logger/elog.h",
    "chars": 1132,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/mutex/CMakeLists.txt",
    "chars": 767,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/mutex/mutex.h",
    "chars": 1948,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/path.cc",
    "chars": 2706,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/path.h",
    "chars": 1587,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/record.h",
    "chars": 4641,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/row_record.h",
    "chars": 7434,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/schema.h",
    "chars": 19154,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/seq_tvlist.h",
    "chars": 5169,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/seq_tvlist.inc",
    "chars": 4940,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/statistic.h",
    "chars": 58101,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tablet.cc",
    "chars": 22270,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tablet.h",
    "chars": 14066,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/thread_pool.h",
    "chars": 3720,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/CMakeLists.txt",
    "chars": 952,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/common/tsblock/tsblock.cc",
    "chars": 10580,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/tsblock.h",
    "chars": 10240,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/tuple_desc.cc",
    "chars": 2885,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/tuple_desc.h",
    "chars": 4585,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/vector/fixed_length_vector.h",
    "chars": 2618,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/vector/variable_length_vector.h",
    "chars": 2852,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsblock/vector/vector.h",
    "chars": 3182,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsfile_common.cc",
    "chars": 14085,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/common/tsfile_common.h",
    "chars": 41058,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/CMakeLists.txt",
    "chars": 2363,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/compress/compressor.cc",
    "chars": 808,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/compressor.h",
    "chars": 1793,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/compressor_factory.h",
    "chars": 3177,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/gzip_compressor.cc",
    "chars": 8987,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/gzip_compressor.h",
    "chars": 4296,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/lz4_compressor.cc",
    "chars": 4448,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/lz4_compressor.h",
    "chars": 2280,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/lzo_compressor.cc",
    "chars": 4383,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/lzo_compressor.h",
    "chars": 2108,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/snappy_compressor.cc",
    "chars": 3889,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/snappy_compressor.h",
    "chars": 2092,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/compress/uncompressed_compressor.h",
    "chars": 1982,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/CMakeLists.txt",
    "chars": 1069,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/cwrapper/arrow_c.cc",
    "chars": 37475,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/errno_define_c.h",
    "chars": 2492,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/tsfile_cwrapper.cc",
    "chars": 64661,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/tsfile_cwrapper.h",
    "chars": 36879,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/tsfile_cwrapper_expression.cc",
    "chars": 8351,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/cwrapper/tsfile_cwrapper_expression.h",
    "chars": 3003,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/CMakeLists.txt",
    "chars": 1021,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/encoding/decoder.h",
    "chars": 1672,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/decoder_factory.h",
    "chars": 5914,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/dictionary_decoder.h",
    "chars": 3479,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/dictionary_encoder.h",
    "chars": 3981,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/double_sprintz_decoder.h",
    "chars": 7845,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/double_sprintz_encoder.h",
    "chars": 5676,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/encode_utils.h",
    "chars": 3675,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/encoder.h",
    "chars": 1986,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/encoder_factory.h",
    "chars": 6544,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/fire.h",
    "chars": 3411,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/float_sprintz_decoder.h",
    "chars": 8471,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/float_sprintz_encoder.h",
    "chars": 5586,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/gorilla_decoder.h",
    "chars": 15346,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/gorilla_encoder.h",
    "chars": 16599,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int32_packer.h",
    "chars": 5756,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int32_rle_decoder.h",
    "chars": 10254,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int32_rle_encoder.h",
    "chars": 6982,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int32_sprintz_decoder.h",
    "chars": 6473,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int32_sprintz_encoder.h",
    "chars": 5799,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int64_packer.h",
    "chars": 5737,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int64_rle_decoder.h",
    "chars": 9995,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int64_rle_encoder.h",
    "chars": 6987,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int64_sprintz_decoder.h",
    "chars": 6274,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/int64_sprintz_encoder.h",
    "chars": 5668,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/plain_decoder.h",
    "chars": 2528,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/plain_encoder.h",
    "chars": 2363,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/sprintz_decoder.h",
    "chars": 2066,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/sprintz_encoder.h",
    "chars": 2116,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/ts2diff_decoder.h",
    "chars": 11681,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/ts2diff_encoder.h",
    "chars": 13511,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/zigzag_decoder.h",
    "chars": 7108,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/encoding/zigzag_encoder.h",
    "chars": 6801,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/CMakeLists.txt",
    "chars": 1132,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/file/read_file.cc",
    "chars": 4869,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/read_file.h",
    "chars": 1950,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/restorable_tsfile_io_writer.cc",
    "chars": 30136,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/restorable_tsfile_io_writer.h",
    "chars": 4422,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/tsfile_io_reader.cc",
    "chars": 36903,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/tsfile_io_reader.h",
    "chars": 5856,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/tsfile_io_writer.cc",
    "chars": 32668,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/tsfile_io_writer.h",
    "chars": 9692,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/write_file.cc",
    "chars": 4460,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/file/write_file.h",
    "chars": 1819,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/CMakeLists.txt",
    "chars": 1039,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": "cpp/src/parser/PathLexer.g4",
    "chars": 3713,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/PathParser.g4",
    "chars": 1470,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathLexer.cpp",
    "chars": 43515,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathLexer.h",
    "chars": 3378,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParser.cpp",
    "chars": 32767,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParser.h",
    "chars": 9304,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserBaseListener.cpp",
    "chars": 892,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserBaseListener.h",
    "chars": 2986,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserBaseVisitor.cpp",
    "chars": 891,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserBaseVisitor.h",
    "chars": 2310,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserListener.cpp",
    "chars": 888,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserListener.h",
    "chars": 2329,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserVisitor.cpp",
    "chars": 887,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/generated/PathParserVisitor.h",
    "chars": 1948,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/path_nodes_generator.cpp",
    "chars": 1911,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/path_nodes_generator.h",
    "chars": 1075,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/path_parser_error.h",
    "chars": 3072,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/path_visitor.cpp",
    "chars": 3824,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/parser/path_visitor.h",
    "chars": 1679,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "cpp/src/reader/CMakeLists.txt",
    "chars": 1116,
    "preview": "#[[\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE f"
  }
]

// ... and 2952 more files (download for full content)

About this extraction

This page contains the full source code of the apache/tsfile GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3152 files (66.7 MB), approximately 17.7M tokens, and a symbol index with 30347 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!