From 2ecda7a8e89782cdbf00f2c443062c80142ce483 Mon Sep 17 00:00:00 2001 From: lxy264173 Date: Mon, 31 Aug 2026 14:15:30 +0800 Subject: [PATCH 1/3] fix: align format options and listagg semantics with Java --- include/paimon/defs.h | 3 +- src/paimon/common/utils/string_utils.cpp | 56 +++++- src/paimon/common/utils/string_utils.h | 5 + src/paimon/common/utils/string_utils_test.cpp | 16 ++ .../append/append_compact_coordinator.cpp | 22 +-- src/paimon/core/core_options.cpp | 10 +- src/paimon/core/core_options.h | 4 +- src/paimon/core/core_options_test.cpp | 24 ++- .../global_index/global_index_scan_impl.cpp | 4 +- .../core/index/index_file_handler_test.cpp | 12 +- .../compact/aggregate/field_listagg_agg.h | 21 ++- .../aggregate/field_listagg_agg_test.cpp | 40 ++++- .../append_only_file_store_write.cpp | 6 +- .../core/operation/expire_snapshots_test.cpp | 6 +- .../core/operation/file_store_commit.cpp | 24 +-- .../operation/file_store_commit_impl_test.cpp | 160 +++++++++--------- .../core/operation/file_store_commit_test.cpp | 4 +- .../core/operation/file_store_write.cpp | 8 +- .../key_value_file_store_scan_test.cpp | 3 +- .../operation/key_value_file_store_write.cpp | 6 +- .../key_value_file_store_write_test.cpp | 2 +- .../core/operation/orphan_files_cleaner.cpp | 22 +-- src/paimon/core/table/source/table_scan.cpp | 15 +- .../table/system/global_system_tables.cpp | 20 ++- .../table/system/metadata_system_tables.cpp | 19 ++- .../format/parquet/parquet_format_defs.h | 2 +- .../parquet/parquet_writer_builder_test.cpp | 14 ++ test/inte/blob_table_inte_test.cpp | 88 +++++----- test/inte/clean_inte_test.cpp | 16 +- test/inte/data_evolution_table_test.cpp | 18 +- test/inte/global_index_test.cpp | 30 ++-- test/inte/nested_column_pruning_inte_test.cpp | 2 +- test/inte/pk_compaction_inte_test.cpp | 2 +- test/inte/read_inte_test.cpp | 26 +-- test/inte/realtime_write_inte_test.cpp | 8 +- test/inte/scan_and_read_inte_test.cpp | 2 +- test/inte/write_and_read_inte_test.cpp | 16 +- test/inte/write_inte_test.cpp | 60 +++---- ...est-ed03e3fd-3ff4-4d88-9d5d-683700f78967-0 | Bin 2720 -> 2290 bytes ...est-f2299c3d-c3f1-400f-ad3d-124e3a342389-0 | Bin 2747 -> 2285 bytes ...ist-12b37c17-d02f-4409-8993-ac01a56210bf-0 | Bin 1182 -> 1112 bytes ...ist-12b37c17-d02f-4409-8993-ac01a56210bf-1 | Bin 1197 -> 1117 bytes ...ist-83964df9-8a98-4f91-a4e9-05f3e07be3f9-0 | Bin 250 -> 1006 bytes ...ist-83964df9-8a98-4f91-a4e9-05f3e07be3f9-1 | Bin 1182 -> 1112 bytes .../schema/schema-0 | 4 +- .../schema/schema-1 | 4 +- .../branch/branch-rt/schema/schema-0 | 4 +- .../branch/branch-rt/schema/schema-1 | 4 +- ...est-6090bcc3-a5a6-4c51-bc5e-7af6498e5b99-0 | Bin 2659 -> 2218 bytes ...est-b204b605-41df-407f-85d9-722bef2754f4-0 | Bin 3159 -> 2387 bytes ...ist-1c1bf05e-c1d0-4513-bc39-b2cb7e2d4973-0 | Bin 370 -> 1006 bytes ...ist-1c1bf05e-c1d0-4513-bc39-b2cb7e2d4973-1 | Bin 1458 -> 1123 bytes ...ist-779da483-08f4-4271-8a62-d6576f56bc80-0 | Bin 370 -> 1006 bytes ...ist-779da483-08f4-4271-8a62-d6576f56bc80-1 | Bin 1443 -> 1125 bytes .../schema/schema-0 | 4 +- .../schema/schema-1 | 4 +- ...est-6f30e9a0-53e1-4030-bf82-1e9b1d62d43f-0 | Bin 2886 -> 2235 bytes ...est-6f30e9a0-53e1-4030-bf82-1e9b1d62d43f-1 | Bin 2887 -> 2240 bytes ...est-bebb1b9f-3785-400b-8f58-8e6902f5016e-0 | Bin 2890 -> 2245 bytes ...est-bebb1b9f-3785-400b-8f58-8e6902f5016e-1 | Bin 3284 -> 2295 bytes ...ist-32868327-8690-4675-8593-f8c6ade64177-0 | Bin 1574 -> 1121 bytes ...ist-32868327-8690-4675-8593-f8c6ade64177-1 | Bin 1527 -> 1113 bytes ...ist-32868327-8690-4675-8593-f8c6ade64177-2 | Bin 1677 -> 1152 bytes ...ist-32868327-8690-4675-8593-f8c6ade64177-3 | Bin 1529 -> 1106 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-0 | Bin 392 -> 1006 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-1 | Bin 1527 -> 1106 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-2 | Bin 1527 -> 1106 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-3 | Bin 392 -> 1006 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-4 | Bin 1527 -> 1106 bytes ...ist-d73b867c-362b-4128-b7cb-d3a7ffb7992c-5 | Bin 1531 -> 1113 bytes .../pk_compact_lookup/schema/schema-0 | 4 +- ...est-167e8d7d-d3ea-4e3b-81d5-fda85c774c29-0 | Bin 2987 -> 2402 bytes ...est-167e8d7d-d3ea-4e3b-81d5-fda85c774c29-1 | Bin 3024 -> 2420 bytes ...est-daf4fd15-fe55-4216-8668-bac0b6a93781-0 | Bin 2697 -> 2219 bytes ...ist-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-0 | Bin 316 -> 1006 bytes ...ist-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-1 | Bin 1261 -> 1114 bytes ...ist-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-2 | Bin 1261 -> 1114 bytes ...ist-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-3 | Bin 1257 -> 1114 bytes ...ist-c62379f7-6e8b-4a39-af6b-1ec7baecf2e9-0 | Bin 1322 -> 1122 bytes ...ist-c62379f7-6e8b-4a39-af6b-1ec7baecf2e9-1 | Bin 1239 -> 1108 bytes .../pk_table_with_mor/schema/schema-0 | 4 +- .../pk_table_with_mor/schema/schema-1 | 4 +- .../pk_table_with_mor/schema/schema-2 | 4 +- .../pk_table_with_mor/schema/schema-3 | 4 +- .../pk_table_with_mor/schema/schema-4 | 4 +- ...est-7008d4c0-b1b0-4237-ac6d-845b887efc92-0 | Bin 2382 -> 2207 bytes ...est-7008d4c0-b1b0-4237-ac6d-845b887efc92-1 | Bin 2841 -> 2447 bytes ...est-97ddb443-4cd9-42e9-9871-4d51d4fa1b49-0 | Bin 2688 -> 2339 bytes ...est-eb34bdd2-2c23-49af-b5aa-537a596d8fe3-0 | Bin 2385 -> 2209 bytes ...est-ed67f349-7c6f-4f51-8723-274a060042d1-0 | Bin 2638 -> 2295 bytes ...ist-2663284f-7bac-441a-bfa1-d11bb24af95d-0 | Bin 1173 -> 1121 bytes ...ist-2663284f-7bac-441a-bfa1-d11bb24af95d-1 | Bin 1171 -> 1121 bytes ...ist-55a3b658-08e3-40aa-b692-29dc1e3ebbdc-0 | Bin 250 -> 1006 bytes ...ist-55a3b658-08e3-40aa-b692-29dc1e3ebbdc-1 | Bin 1173 -> 1121 bytes ...ist-739ea106-ac05-4953-a13f-c7260482dbf1-0 | Bin 1370 -> 1182 bytes ...ist-739ea106-ac05-4953-a13f-c7260482dbf1-1 | Bin 1177 -> 1118 bytes ...ist-739ea106-ac05-4953-a13f-c7260482dbf1-2 | Bin 1428 -> 1210 bytes ...ist-739ea106-ac05-4953-a13f-c7260482dbf1-3 | Bin 1189 -> 1118 bytes ...ist-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-0 | Bin 1334 -> 1153 bytes ...ist-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-1 | Bin 1179 -> 1118 bytes .../append_09.db/append_09/schema/schema-0 | 2 +- 101 files changed, 513 insertions(+), 333 deletions(-) diff --git a/include/paimon/defs.h b/include/paimon/defs.h index e05faefd8..98dc8eb82 100644 --- a/include/paimon/defs.h +++ b/include/paimon/defs.h @@ -164,7 +164,8 @@ struct PAIMON_EXPORT Options { /// Default value is 8MB. static const char MANIFEST_TARGET_FILE_SIZE[]; - /// "manifest.format" - Specify the message format of manifest files. + /// "manifest.format" - Deprecated compatibility option for reading legacy manifests. + /// Avro is the only writable manifest format; non-Avro formats are read-only. /// Default value is avro. static const char MANIFEST_FORMAT[]; diff --git a/src/paimon/common/utils/string_utils.cpp b/src/paimon/common/utils/string_utils.cpp index 869e184d0..5aed0b994 100644 --- a/src/paimon/common/utils/string_utils.cpp +++ b/src/paimon/common/utils/string_utils.cpp @@ -37,6 +37,14 @@ bool IsTrimCharacter(unsigned char c) { return c <= 0x20; } +bool IsJavaWhitespace(uint32_t code_point) { + return (code_point >= 0x0009 && code_point <= 0x000d) || + (code_point >= 0x001c && code_point <= 0x0020) || code_point == 0x1680 || + (code_point >= 0x2000 && code_point <= 0x2006) || + (code_point >= 0x2008 && code_point <= 0x200a) || code_point == 0x2028 || + code_point == 0x2029 || code_point == 0x205f || code_point == 0x3000; +} + char ToAsciiLower(unsigned char c) { return c >= 'A' && c <= 'Z' ? static_cast(c + ('a' - 'A')) : static_cast(c); } @@ -85,18 +93,54 @@ bool StringUtils::EndsWith(const std::string& str, const std::string& suffix) { size_t s2 = suffix.size(); return (s1 >= s2) && (str.compare(s1 - s2, s2, suffix) == 0); } -bool StringUtils::IsNullOrWhitespaceOnly(const std::string& str) { - if (str.empty()) { - return true; - } - for (char c : str) { - if (!std::isspace(static_cast(c))) { + +bool StringUtils::IsBlank(std::string_view str) { + size_t offset = 0; + while (offset < str.size()) { + const uint8_t first = static_cast(str[offset]); + uint32_t code_point = 0; + size_t length = 0; + if (first <= 0x7f) { + code_point = first; + length = 1; + } else if (first >= 0xc2 && first <= 0xdf) { + code_point = first & 0x1f; + length = 2; + } else if (first >= 0xe0 && first <= 0xef) { + code_point = first & 0x0f; + length = 3; + } else if (first >= 0xf0 && first <= 0xf4) { + code_point = first & 0x07; + length = 4; + } else { + return false; + } + if (offset + length > str.size()) { + return false; + } + for (size_t i = 1; i < length; ++i) { + const uint8_t continuation = static_cast(str[offset + i]); + if ((continuation & 0xc0) != 0x80) { + return false; + } + code_point = (code_point << 6) | (continuation & 0x3f); + } + if ((length == 3 && code_point < 0x800) || (length == 4 && code_point < 0x10000) || + (code_point >= 0xd800 && code_point <= 0xdfff) || code_point > 0x10ffff) { + return false; + } + if (!IsJavaWhitespace(code_point)) { return false; } + offset += length; } return true; } +bool StringUtils::IsNullOrWhitespaceOnly(const std::string& str) { + return IsBlank(str); +} + void StringUtils::Trim(std::string* str) { auto first = std::find_if_not(str->begin(), str->end(), [](unsigned char c) { return IsTrimCharacter(c); }); diff --git a/src/paimon/common/utils/string_utils.h b/src/paimon/common/utils/string_utils.h index 7681a8d9e..32025de0c 100644 --- a/src/paimon/common/utils/string_utils.h +++ b/src/paimon/common/utils/string_utils.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -96,6 +97,10 @@ class PAIMON_EXPORT StringUtils { static bool EndsWith(const std::string& str, const std::string& suffix); + /// Returns true if the string is empty or contains only characters recognized by Java + /// Character.isWhitespace. + static bool IsBlank(std::string_view str); + static bool IsNullOrWhitespaceOnly(const std::string& str); static void Trim(std::string* str); diff --git a/src/paimon/common/utils/string_utils_test.cpp b/src/paimon/common/utils/string_utils_test.cpp index a4f230781..874eb7a09 100644 --- a/src/paimon/common/utils/string_utils_test.cpp +++ b/src/paimon/common/utils/string_utils_test.cpp @@ -21,6 +21,7 @@ #include #include +#include #include "gtest/gtest.h" #include "paimon/status.h" @@ -209,6 +210,21 @@ TEST_F(StringUtilsTest, TestIsNullOrWhitespaceOnly) { auto ret = StringUtils::IsNullOrWhitespaceOnly(str); ASSERT_TRUE(ret); } + ASSERT_TRUE(StringUtils::IsNullOrWhitespaceOnly(u8"\u3000\u2000")); +} + +TEST_F(StringUtilsTest, TestIsBlank) { + const std::vector blank_strings = { + "", " ", " ", "\t", "\n", "\r", + "\r\n", " \t\n\r ", u8"\u1680", u8"\u2000", u8"\u3000", u8" \t\u3000\u2000\n"}; + for (const std::string& blank : blank_strings) { + ASSERT_TRUE(StringUtils::IsBlank(blank)) << blank; + } + + ASSERT_FALSE(StringUtils::IsBlank("user1")); + ASSERT_FALSE(StringUtils::IsBlank(" user1 ")); + ASSERT_FALSE(StringUtils::IsBlank(u8"\u00a0")); + ASSERT_FALSE(StringUtils::IsBlank(std::string("\xc0\x80", 2))); } TEST_F(StringUtilsTest, TestToLowerCase) { diff --git a/src/paimon/core/append/append_compact_coordinator.cpp b/src/paimon/core/append/append_compact_coordinator.cpp index b6afc15c4..b6dd4a0d6 100644 --- a/src/paimon/core/append/append_compact_coordinator.cpp +++ b/src/paimon/core/append/append_compact_coordinator.cpp @@ -133,17 +133,17 @@ Result> CreateFileStoreScan( const std::shared_ptr& path_factory, const std::shared_ptr& scan_filter, const std::shared_ptr& executor, const std::shared_ptr& pool) { - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_list, - ManifestList::Create(core_options.GetFileSystem(), core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetCache(), pool)); - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_file, - ManifestFile::Create(core_options.GetFileSystem(), core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetManifestTargetFileSize(), pool, core_options, - partition_schema)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_list, + ManifestList::Create(core_options.GetFileSystem(), manifest_format, + core_options.GetManifestCompression(), path_factory, + core_options.GetCache(), pool)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_file, + ManifestFile::Create(core_options.GetFileSystem(), manifest_format, + core_options.GetManifestCompression(), path_factory, + core_options.GetManifestTargetFileSize(), pool, + core_options, partition_schema)); PAIMON_ASSIGN_OR_RAISE( std::unique_ptr scan, AppendOnlyFileStoreScan::Create(snapshot_manager, schema_manager, manifest_list, diff --git a/src/paimon/core/core_options.cpp b/src/paimon/core/core_options.cpp index 71ba73deb..be86d200f 100644 --- a/src/paimon/core/core_options.cpp +++ b/src/paimon/core/core_options.cpp @@ -610,7 +610,7 @@ struct CoreOptions::Impl { // Parse manifest file configurations: format, compression, merge, and compaction thresholds. Status ParseManifestOptions(const ConfigParser& parser) { - // Parse manifest.format - manifest file format, default "avro" + // Parse manifest.format for reading legacy manifests; only avro is writable. PAIMON_RETURN_NOT_OK(parser.ParseObject( Options::MANIFEST_FORMAT, /*default_identifier=*/"avro", &manifest_file_format)); // Parse manifest.compression - manifest file compression, default "zstd" @@ -1143,7 +1143,13 @@ std::string CoreOptions::GetPartitionDefaultName() const { return impl_->partition_default_name; } -std::shared_ptr CoreOptions::GetManifestFormat() const { +Result> CoreOptions::GetManifestFormat(bool write) const { + const std::string& identifier = impl_->manifest_file_format->Identifier(); + if (write && identifier != "avro") { + return Status::Invalid(fmt::format( + "manifest.format '{}' is read-only; only 'avro' can be used for writing manifests", + identifier)); + } return impl_->manifest_file_format; } diff --git a/src/paimon/core/core_options.h b/src/paimon/core/core_options.h index 345958e1a..29d6097f5 100644 --- a/src/paimon/core/core_options.h +++ b/src/paimon/core/core_options.h @@ -93,7 +93,9 @@ class PAIMON_EXPORT CoreOptions { int64_t GetCompactionFileSize(bool has_primary_key) const; std::string GetPartitionDefaultName() const; - std::shared_ptr GetManifestFormat() const; + /// Return the configured manifest format for the requested access mode. + /// Non-Avro formats are supported only for reading legacy manifests. + Result> GetManifestFormat(bool write) const; const std::string& GetManifestCompression() const; int32_t GetManifestMergeMinCount() const; int64_t GetManifestFullCompactionThresholdSize() const; diff --git a/src/paimon/core/core_options_test.cpp b/src/paimon/core/core_options_test.cpp index c424b9cfe..150f4a1d2 100644 --- a/src/paimon/core/core_options_test.cpp +++ b/src/paimon/core/core_options_test.cpp @@ -37,7 +37,9 @@ namespace paimon::test { TEST(CoreOptionsTest, TestDefaultValue) { ASSERT_OK_AND_ASSIGN(CoreOptions core_options, CoreOptions::FromMap({})); - ASSERT_EQ(core_options.GetManifestFormat()->Identifier(), "avro"); + ASSERT_OK_AND_ASSIGN(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + ASSERT_EQ(manifest_format->Identifier(), "avro"); ASSERT_EQ(core_options.GetFileFormat()->Identifier(), "parquet"); ASSERT_EQ(nullptr, core_options.GetChangelogFileFormat()); ASSERT_EQ(core_options.GetWriteFileFormat(0)->Identifier(), "parquet"); @@ -193,6 +195,23 @@ TEST(CoreOptionsTest, TestDefaultValue) { ASSERT_EQ(BucketFunctionType::DEFAULT, core_options.GetBucketFunctionType()); } +TEST(CoreOptionsTest, GetManifestFormatForReadAndWrite) { + ASSERT_OK_AND_ASSIGN(CoreOptions default_options, CoreOptions::FromMap({})); + ASSERT_OK(default_options.GetManifestFormat(/*write=*/true)); + + ASSERT_OK_AND_ASSIGN(CoreOptions avro_options, + CoreOptions::FromMap({{Options::MANIFEST_FORMAT, "AvRo"}})); + ASSERT_OK(avro_options.GetManifestFormat(/*write=*/true)); + + ASSERT_OK_AND_ASSIGN(CoreOptions legacy_options, + CoreOptions::FromMap({{Options::MANIFEST_FORMAT, "orc"}})); + ASSERT_OK_AND_ASSIGN(std::shared_ptr legacy_manifest_format, + legacy_options.GetManifestFormat(/*write=*/false)); + ASSERT_EQ(legacy_manifest_format->Identifier(), "orc"); + ASSERT_NOK_WITH_MSG(legacy_options.GetManifestFormat(/*write=*/true), + "manifest.format 'orc' is read-only"); +} + TEST(CoreOptionsTest, TestFromMap) { std::map options = { {Options::FILE_SYSTEM, "Local"}, @@ -339,7 +358,8 @@ TEST(CoreOptionsTest, TestFromMap) { ASSERT_EQ(core_options.GetWriteFileFormat(1)->Identifier(), "orc"); ASSERT_EQ(core_options.GetWriteFileFormat(3)->Identifier(), "parquet"); - auto manifest_format = core_options.GetManifestFormat(); + ASSERT_OK_AND_ASSIGN(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); ASSERT_EQ(manifest_format->Identifier(), "avro"); ASSERT_EQ(3, core_options.GetBucket()); diff --git a/src/paimon/core/global_index/global_index_scan_impl.cpp b/src/paimon/core/global_index/global_index_scan_impl.cpp index e4b3e7b75..10c7079b0 100644 --- a/src/paimon/core/global_index/global_index_scan_impl.cpp +++ b/src/paimon/core/global_index/global_index_scan_impl.cpp @@ -82,9 +82,11 @@ Result> GlobalIndexScanImpl::Create( std::shared_ptr path_factory = file_store_path_factory->CreateGlobalIndexFileFactory(); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/false)); PAIMON_ASSIGN_OR_RAISE( std::unique_ptr index_manifest_file, - IndexManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), + IndexManifestFile::Create(options.GetFileSystem(), manifest_format, options.GetManifestCompression(), file_store_path_factory, options.GetBucket(), pool, options)); auto index_file_handler = std::make_unique( diff --git a/src/paimon/core/index/index_file_handler_test.cpp b/src/paimon/core/index/index_file_handler_test.cpp index a23591f94..305579e27 100644 --- a/src/paimon/core/index/index_file_handler_test.cpp +++ b/src/paimon/core/index/index_file_handler_test.cpp @@ -70,11 +70,13 @@ class IndexFileHandlerTest : public testing::Test { global_index_external_path, /*index_file_in_data_file_dir=*/core_options.IndexFileInDataFileDir(), memory_pool_)); - PAIMON_ASSIGN_OR_RAISE(std::unique_ptr index_manifest_file, - IndexManifestFile::Create( - core_options.GetFileSystem(), core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetBucket(), memory_pool_, core_options)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + PAIMON_ASSIGN_OR_RAISE( + std::unique_ptr index_manifest_file, + IndexManifestFile::Create(core_options.GetFileSystem(), manifest_format, + core_options.GetManifestCompression(), path_factory, + core_options.GetBucket(), memory_pool_, core_options)); auto path_factories = std::make_shared(path_factory); return std::make_unique( core_options.GetFileSystem(), std::move(index_manifest_file), path_factories, diff --git a/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg.h b/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg.h index a6d7ed5c4..a6dc04b7c 100644 --- a/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg.h +++ b/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg.h @@ -20,10 +20,12 @@ #include #include +#include #include #include #include "paimon/common/data/data_define.h" +#include "paimon/common/utils/string_utils.h" #include "paimon/core/core_options.h" #include "paimon/core/mergetree/compact/aggregate/field_aggregator.h" @@ -60,15 +62,18 @@ class FieldListaggAgg : public FieldAggregator { const VariantType& input_field) override { bool accumulator_null = DataDefine::IsVariantNull(accumulator); bool input_null = DataDefine::IsVariantNull(input_field); - if (accumulator_null || input_null) { - return accumulator_null ? input_field : accumulator; + if (input_null) { + return accumulator; } - std::string_view acc_str = DataDefine::GetStringView(accumulator); std::string_view in_str = DataDefine::GetStringView(input_field); - if (in_str.empty()) { + if (StringUtils::IsBlank(in_str)) { return accumulator; } - if (acc_str.empty()) { + if (accumulator_null) { + return input_field; + } + std::string_view acc_str = DataDefine::GetStringView(accumulator); + if (StringUtils::IsBlank(acc_str)) { return input_field; } @@ -95,9 +100,7 @@ class FieldListaggAgg : public FieldAggregator { size_t pos = remaining.find(delimiter_); std::string_view token = (pos == std::string_view::npos) ? remaining : remaining.substr(0, pos); - if (!token.empty()) { - seen.insert(token); - } + seen.insert(token); if (pos == std::string_view::npos) { break; } @@ -113,7 +116,7 @@ class FieldListaggAgg : public FieldAggregator { size_t pos = remaining.find(delimiter_); std::string_view token = (pos == std::string_view::npos) ? remaining : remaining.substr(0, pos); - if (!token.empty() && seen.insert(token).second) { + if (!StringUtils::IsBlank(token) && seen.insert(token).second) { result.append(delimiter_); result.append(token); } diff --git a/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg_test.cpp b/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg_test.cpp index 3578cdaac..1efac34ed 100644 --- a/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg_test.cpp +++ b/src/paimon/core/mergetree/compact/aggregate/field_listagg_agg_test.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "arrow/type_fwd.h" #include "gtest/gtest.h" @@ -88,13 +89,41 @@ TEST_F(FieldListaggAggTest, TestEmptyString) { auto ret = agg->Agg(std::string_view(""), std::string_view("world")).value(); ASSERT_EQ(DataDefine::GetVariantValue(ret), "world"); } - // both empty -> return input (which is empty) + // blank input -> return accumulator (which is empty) { auto ret = agg->Agg(std::string_view(""), std::string_view("")).value(); ASSERT_EQ(DataDefine::GetVariantValue(ret), ""); } } +TEST_F(FieldListaggAggTest, TestBlankStrings) { + ASSERT_OK_AND_ASSIGN(auto agg, MakeAgg()); + + const std::vector blank_strings = {"", + " ", + " ", + "\t", + "\n", + "\r", + "\r\n", + " \t\n\r ", + u8"\u3000", + u8"\u2000", + u8" \t\u3000\u2000\n"}; + for (const std::string& blank : blank_strings) { + auto ret = agg->Agg(std::string_view("user1"), std::string_view(blank)).value(); + ASSERT_EQ(DataDefine::GetVariantValue(ret), "user1"); + } + + // A blank accumulator must not add a leading delimiter. + auto ret = agg->Agg(std::string_view(u8"\u3000\t"), std::string_view("user1")).value(); + ASSERT_EQ(DataDefine::GetVariantValue(ret), "user1"); + + // A blank input must not turn a null accumulator into a non-null value. + ret = agg->Agg(NullType(), std::string_view(u8" \t\u3000")).value(); + ASSERT_TRUE(DataDefine::IsVariantNull(ret)); +} + TEST_F(FieldListaggAggTest, TestMultipleAccumulation) { ASSERT_OK_AND_ASSIGN(auto agg, MakeAgg()); @@ -113,6 +142,15 @@ TEST_F(FieldListaggAggTest, TestDistinct) { ASSERT_EQ(DataDefine::GetVariantValue(ret), "a;b;c"); } +TEST_F(FieldListaggAggTest, TestDistinctIgnoresBlankTokens) { + ASSERT_OK_AND_ASSIGN(auto agg, MakeAgg(",", true)); + + auto ret = + agg->Agg(std::string_view("user1"), std::string_view(u8" ,user2,\t,\u3000,user1,\u2000")) + .value(); + ASSERT_EQ(DataDefine::GetVariantValue(ret), "user1,user2"); +} + TEST_F(FieldListaggAggTest, TestDistinctNoDuplicates) { ASSERT_OK_AND_ASSIGN(auto agg, MakeAgg(" ", true)); diff --git a/src/paimon/core/operation/append_only_file_store_write.cpp b/src/paimon/core/operation/append_only_file_store_write.cpp index f660093a2..2a5affa16 100644 --- a/src/paimon/core/operation/append_only_file_store_write.cpp +++ b/src/paimon/core/operation/append_only_file_store_write.cpp @@ -120,14 +120,16 @@ Status AppendOnlyFileStoreWrite::RefreshCommittedSnapshot(int64_t snapshot_id) { Result> AppendOnlyFileStoreWrite::CreateFileStoreScan( const std::shared_ptr& scan_filter) const { + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options_.GetManifestFormat(/*write=*/false)); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr manifest_list, - ManifestList::Create(options_.GetFileSystem(), options_.GetManifestFormat(), + ManifestList::Create(options_.GetFileSystem(), manifest_format, options_.GetManifestCompression(), file_store_path_factory_, options_.GetCache(), pool_)); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr manifest_file, - ManifestFile::Create(options_.GetFileSystem(), options_.GetManifestFormat(), + ManifestFile::Create(options_.GetFileSystem(), manifest_format, options_.GetManifestCompression(), file_store_path_factory_, options_.GetManifestTargetFileSize(), pool_, options_, partition_schema_)); diff --git a/src/paimon/core/operation/expire_snapshots_test.cpp b/src/paimon/core/operation/expire_snapshots_test.cpp index ffdd30feb..364d2b502 100644 --- a/src/paimon/core/operation/expire_snapshots_test.cpp +++ b/src/paimon/core/operation/expire_snapshots_test.cpp @@ -75,14 +75,16 @@ class ExpireSnapshotsTest : public testing::Test { test_data_path_ = "tmp"; path_factory_ = CreateFactory(test_data_path_); + ASSERT_OK_AND_ASSIGN(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/false)); ASSERT_OK_AND_ASSIGN( manifest_list_, - ManifestList::Create(fs_, options.GetManifestFormat(), options.GetManifestCompression(), + ManifestList::Create(fs_, manifest_format, options.GetManifestCompression(), path_factory_, options.GetCache(), mem_pool_)); ASSERT_OK_AND_ASSIGN( manifest_file_, - ManifestFile::Create(fs_, options.GetManifestFormat(), options.GetManifestCompression(), + ManifestFile::Create(fs_, manifest_format, options.GetManifestCompression(), path_factory_, options.GetManifestTargetFileSize(), mem_pool_, options, partition_schema_)); } diff --git a/src/paimon/core/operation/file_store_commit.cpp b/src/paimon/core/operation/file_store_commit.cpp index ad0942ade..dbe4d2c22 100644 --- a/src/paimon/core/operation/file_store_commit.cpp +++ b/src/paimon/core/operation/file_store_commit.cpp @@ -127,6 +127,8 @@ Result> FileStoreCommit::Create( assert(options.GetFileSystem()); assert(options.GetFileFormat()); PAIMON_RETURN_NOT_OK(FileStoreCommitImpl::ValidateCommitOptions(options)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/true)); PAIMON_ASSIGN_OR_RAISE(bool is_object_store, FileSystem::IsObjectStore(root_path)); if (is_object_store && !ctx->UseRESTCatalogCommit() && @@ -152,24 +154,22 @@ Result> FileStoreCommit::Create( global_index_external_path, options.IndexFileInDataFileDir(), ctx->GetMemoryPool())); auto snapshot_manager = std::make_shared(options.GetFileSystem(), root_path); - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_list, - ManifestList::Create(options.GetFileSystem(), options.GetManifestFormat(), - options.GetManifestCompression(), path_factory, options.GetCache(), - ctx->GetMemoryPool())); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_list, + ManifestList::Create(options.GetFileSystem(), manifest_format, + options.GetManifestCompression(), path_factory, + options.GetCache(), ctx->GetMemoryPool())); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr partition_schema, FieldMapping::GetPartitionSchema(arrow_schema, table_schema.value()->PartitionKeys())); - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_file, - ManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), - options.GetManifestCompression(), path_factory, - options.GetManifestTargetFileSize(), ctx->GetMemoryPool(), options, - partition_schema)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_file, + ManifestFile::Create(options.GetFileSystem(), manifest_format, + options.GetManifestCompression(), path_factory, + options.GetManifestTargetFileSize(), + ctx->GetMemoryPool(), options, partition_schema)); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr index_manifest_file, - IndexManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), + IndexManifestFile::Create(options.GetFileSystem(), manifest_format, options.GetManifestCompression(), path_factory, options.GetBucket(), ctx->GetMemoryPool(), options)); diff --git a/src/paimon/core/operation/file_store_commit_impl_test.cpp b/src/paimon/core/operation/file_store_commit_impl_test.cpp index b1b8677f8..e4422ffbc 100644 --- a/src/paimon/core/operation/file_store_commit_impl_test.cpp +++ b/src/paimon/core/operation/file_store_commit_impl_test.cpp @@ -379,7 +379,7 @@ class FileStoreCommitImplTest : public testing::Test { TEST_F(FileStoreCommitImplTest, TestCommit) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -408,7 +408,7 @@ TEST_F(FileStoreCommitImplTest, TestRESTCatalogCommit) { TimezoneGuard guard("Asia/Shanghai"); CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .UseRESTCatalogCommit(true) @@ -466,7 +466,7 @@ TEST_F(FileStoreCommitImplTest, TestRESTCatalogCommit) { TEST_F(FileStoreCommitImplTest, TestSnapshotSequenceMaxPropertyMergedOnCommit) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::WRITE_SEQUENCE_NUMBER_INIT_MODE, "snapshot") @@ -514,7 +514,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryTenTimes) FileSystemFactory::Get("gmock_fs", table_path, {})); CommitContextBuilder context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::COMMIT_MAX_RETRIES, "10") .AddOption(Options::COMMIT_MIN_RETRY_WAIT, "1ms") @@ -548,7 +548,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryTenTimes) } TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryOnce) { - std::string test_data_path = paimon::test::GetDataDir() + "/orc/append_09.db/append_09/"; + std::string test_data_path = paimon::test::GetDataDir() + "/parquet/append_09.db/append_09/"; auto dir = UniqueTestDirectory::Create(); std::string table_path = dir->Str(); ASSERT_TRUE(TestUtil::CopyDirectory(test_data_path, table_path)); @@ -556,7 +556,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryOnce) { FileSystemFactory::Get("gmock_fs", table_path, {})); CommitContextBuilder context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::COMMIT_MIN_RETRY_WAIT, "1ms") .AddOption(Options::COMMIT_MAX_RETRY_WAIT, "1ms") @@ -591,7 +591,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryOnce) { std::vector> msgs = GetCommitMessages(paimon::test::GetDataDir() + - "/orc/append_09.db/append_09/commit_messages/commit_messages-01", + "/parquet/append_09.db/append_09/commit_messages/commit_messages-01", /*version=*/3); ASSERT_GT(msgs.size(), 0); ASSERT_OK(commit->Commit(msgs)); @@ -606,7 +606,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithConflictSnapshotAndRetryOnce) { } TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActuallySucceed) { - std::string test_data_path = paimon::test::GetDataDir() + "/orc/append_09.db/append_09/"; + std::string test_data_path = paimon::test::GetDataDir() + "/parquet/append_09.db/append_09/"; auto dir = UniqueTestDirectory::Create(); std::string table_path = dir->Str(); ASSERT_TRUE(TestUtil::CopyDirectory(test_data_path, table_path)); @@ -614,7 +614,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActua FileSystemFactory::Get("gmock_fs", table_path, {})); CommitContextBuilder context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .WithFileSystem(fs) .Finish()); @@ -632,7 +632,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActua std::vector> msgs = GetCommitMessages(paimon::test::GetDataDir() + - "/orc/append_09.db/append_09/commit_messages/commit_messages-01", + "/parquet/append_09.db/append_09/commit_messages/commit_messages-01", /*version=*/3); ASSERT_GT(msgs.size(), 0); ASSERT_NOK(commit->Commit(msgs, /*commit_identifier=*/1)); @@ -642,7 +642,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActua CommitContextBuilder context_builder_2(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context_2, - context_builder_2.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder_2.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .WithFileSystem(fs) .Finish()); @@ -657,7 +657,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActua })); std::vector> msgs_2 = GetCommitMessages(paimon::test::GetDataDir() + - "/orc/append_09.db/append_09/commit_messages/commit_messages-02", + "/parquet/append_09.db/append_09/commit_messages/commit_messages-02", /*version=*/3); ASSERT_OK(commit_2->Commit(msgs_2, /*commit_identifier=*/2)); ASSERT_OK_AND_ASSIGN(exist, file_system_->Exists(new_snapshot_7)); @@ -667,7 +667,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithAtomicWriteSnapshotTimeoutAndActua TEST_F(FileStoreCommitImplTest, TestCommitWithSameMsgs) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "5kb") .AddOption(Options::MANIFEST_MERGE_MIN_COUNT, "2") .AddOption(Options::FILE_SYSTEM, "local") @@ -731,7 +731,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithSameMsgs) { TEST_F(FileStoreCommitImplTest, TestCommitMultipleTimes) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -803,7 +803,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitMultipleTimes) { TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatest) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -861,7 +861,7 @@ TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatest) { TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestNoLatestSnapshotReturnsError) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -873,7 +873,7 @@ TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestNoLatestSnapshotReturnsErr TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestTargetNotExistReturnsError) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -908,7 +908,7 @@ TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestDeletionVectorOnlyChange) CommitContextBuilder context_builder(dv_table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -978,7 +978,7 @@ TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestConcurrentConflictReturnsF FileSystemFactory::Get("gmock_fs", table_path_, {})); CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .WithFileSystem(fs) .Finish()); @@ -1021,7 +1021,7 @@ TEST_F(FileStoreCommitImplTest, TestRollbackToAsLatestConcurrentConflictReturnsF TEST_F(FileStoreCommitImplTest, TestCommitAndOverwriteWithNoPartitionKey) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1067,7 +1067,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitAndOverwriteWithNoPartitionKey) { TEST_F(FileStoreCommitImplTest, TestCommitSuccessAfterIOException) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1125,7 +1125,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitSuccessAfterIOException) { TEST_F(FileStoreCommitImplTest, TestCleanUpTmpManifests) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1243,7 +1243,7 @@ TEST_F(FileStoreCommitImplTest, TestCleanUpTmpManifests) { TEST_F(FileStoreCommitImplTest, TestCommitWithIgnoreEmptyCommit) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1262,7 +1262,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithIgnoreEmptyCommit) { TEST_F(FileStoreCommitImplTest, TestTryOverwrite) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1293,7 +1293,7 @@ TEST_F(FileStoreCommitImplTest, TestTryOverwrite) { TEST_F(FileStoreCommitImplTest, TestTryOverwriteFromNothing) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1328,7 +1328,7 @@ TEST_F(FileStoreCommitImplTest, TestTryOverwriteFromNothing) { TEST_F(FileStoreCommitImplTest, TestTryOverwriteWithProperties) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1356,7 +1356,7 @@ TEST_F(FileStoreCommitImplTest, TestTryOverwriteWithProperties) { TEST_F(FileStoreCommitImplTest, TestTryOverwriteThenCommit) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1408,7 +1408,7 @@ TEST_F(FileStoreCommitImplTest, TestTryOverwriteThenCommit) { TEST_F(FileStoreCommitImplTest, TestDropPartitionAndExpireSnapshot) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::SNAPSHOT_NUM_RETAINED_MIN, "1") @@ -1456,7 +1456,7 @@ TEST_F(FileStoreCommitImplTest, TestDropPartitionAndExpireSnapshot) { TEST_F(FileStoreCommitImplTest, TestDropMultiPartitionAndExpireSnapshot) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::SNAPSHOT_NUM_RETAINED_MIN, "1") @@ -1504,7 +1504,7 @@ TEST_F(FileStoreCommitImplTest, TestDropMultiPartitionAndExpireSnapshot) { TEST_F(FileStoreCommitImplTest, TestTruncateTable) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1538,7 +1538,7 @@ TEST_F(FileStoreCommitImplTest, TestTruncateTable) { TEST_F(FileStoreCommitImplTest, TestAbortDeletesDataAndIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -1587,7 +1587,7 @@ TEST_F(FileStoreCommitImplTest, TestAbortDeletesDataAndIndexFiles) { TEST_F(FileStoreCommitImplTest, AbortIgnoresMissingFilesAndFailsForNonImplMessage) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -1613,7 +1613,7 @@ TEST_F(FileStoreCommitImplTest, AbortIgnoresDeleteFailures) { // propagate the failure. CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -1654,7 +1654,7 @@ TEST_F(FileStoreCommitImplTest, TestTruncateEmptyTable) { // materialized. CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1680,7 +1680,7 @@ TEST_F(FileStoreCommitImplTest, TestTruncateEmptyTable) { TEST_F(FileStoreCommitImplTest, TestCreateManifestCommittable) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -1701,7 +1701,7 @@ TEST_F(FileStoreCommitImplTest, TestCreateManifestCommittable) { TEST_F(FileStoreCommitImplTest, TestCollectChanges) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::BUCKET, "10") @@ -1745,7 +1745,7 @@ TEST_F(FileStoreCommitImplTest, TestCollectChanges) { TEST_F(FileStoreCommitImplTest, TestFilterCommitted) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1777,7 +1777,7 @@ TEST_F(FileStoreCommitImplTest, TestFilterCommitted) { TEST_F(FileStoreCommitImplTest, TestFilterCommittedWithMultipleCommittables) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1818,7 +1818,7 @@ TEST_F(FileStoreCommitImplTest, TestFilterCommittedWithMultipleCommittables) { TEST_F(FileStoreCommitImplTest, TestFilterCommittedRejectsDuplicateIdentifiers) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1850,7 +1850,7 @@ TEST_F(FileStoreCommitImplTest, TestFilterCommittedRejectsDuplicateIdentifiers) TEST_F(FileStoreCommitImplTest, FilterAndCommit) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1898,7 +1898,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndCommit) { TEST_F(FileStoreCommitImplTest, FilterAndCommitWithNotExistFile) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1921,7 +1921,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndCommitWithNotExistFile) { TEST_F(FileStoreCommitImplTest, FilterAndCommitWithCompactedChangelogFakePath) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1956,7 +1956,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndCommitWithCompactedChangelogFakePath) { TEST_F(FileStoreCommitImplTest, FilterAndCommitSkipCompactBeforeFileCheck) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -1990,7 +1990,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndCommitSkipCompactBeforeFileCheck) { TEST_F(FileStoreCommitImplTest, TestOverwriteNonSpecifyPartition) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2030,7 +2030,7 @@ TEST_F(FileStoreCommitImplTest, TestOverwriteNonSpecifyPartition) { TEST_F(FileStoreCommitImplTest, TestCommitWithIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2061,7 +2061,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithIndexFiles) { TEST_F(FileStoreCommitImplTest, TestCommitWithGlobalIndexFilesChecksConflicts) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::ROW_TRACKING_ENABLED, "true") @@ -2094,7 +2094,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithGlobalIndexFilesChecksConflicts) { TEST_F(FileStoreCommitImplTest, TestCommitWithCompactIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -2127,7 +2127,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithCompactIndexFiles) { TEST_F(FileStoreCommitImplTest, TestCommitWithDeletedIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2165,7 +2165,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithDeletedIndexFiles) { TEST_F(FileStoreCommitImplTest, TestCommitWithCompactDeletedIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .IgnoreEmptyCommit(true) @@ -2205,7 +2205,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithCompactDeletedIndexFiles) { TEST_F(FileStoreCommitImplTest, TestOverwriteWithCompactIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2239,7 +2239,7 @@ TEST_F(FileStoreCommitImplTest, TestOverwriteWithCompactIndexFiles) { TEST_F(FileStoreCommitImplTest, TestFilterAndOverwrite) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2295,7 +2295,7 @@ TEST_F(FileStoreCommitImplTest, TestFilterAndOverwrite) { TEST_F(FileStoreCommitImplTest, TestFilterAndOverwriteWithCompactIndexFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2334,7 +2334,7 @@ TEST_F(FileStoreCommitImplTest, TestFilterAndOverwriteWithCompactIndexFiles) { TEST_F(FileStoreCommitImplTest, TestOverwriteWithSpecifyPartition) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2369,7 +2369,7 @@ TEST_F(FileStoreCommitImplTest, TestOverwriteWithSpecifyPartition) { TEST_F(FileStoreCommitImplTest, TestOverwriteWithSameFile) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2400,7 +2400,7 @@ TEST_F(FileStoreCommitImplTest, TestOverwriteWithSameFile) { TEST_F(FileStoreCommitImplTest, TestAppendDiscardDuplicateFiles) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::COMMIT_DISCARD_DUPLICATE_FILES, "true") @@ -2433,7 +2433,7 @@ TEST_F(FileStoreCommitImplTest, TestAppendDiscardDuplicateFiles) { TEST_F(FileStoreCommitImplTest, TestCommitWithIOException) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2466,7 +2466,7 @@ TEST_F(FileStoreCommitImplTest, TestCommitWithIOException) { io_hook->Reset(i, IOHook::Mode::RETURN_ERROR); CommitContextBuilder context_builder2(tmp_table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context2, - context_builder2.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder2.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2497,7 +2497,7 @@ TEST_F(FileStoreCommitImplTest, TestObjectStoreAllowedWithRESTCatalogCommit) { CommitContextBuilder builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN( auto ctx, - builder.AddOption(Options::MANIFEST_FORMAT, "orc").UseRESTCatalogCommit(true).Finish()); + builder.AddOption(Options::MANIFEST_FORMAT, "avro").UseRESTCatalogCommit(true).Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(ctx))); auto msgs = @@ -2560,10 +2560,18 @@ TEST_F(FileStoreCommitImplTest, ValidateCommitOptionsAllowsManifestDeleteFileDro } } +TEST_F(FileStoreCommitImplTest, CreateRejectsReadOnlyManifestFormat) { + CommitContextBuilder context_builder(table_path_, "commit_user_1"); + ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, + context_builder.AddOption(Options::MANIFEST_FORMAT, "orc").Finish()); + ASSERT_NOK_WITH_MSG(FileStoreCommit::Create(std::move(commit_context)), + "manifest.format 'orc' is read-only"); +} + TEST_F(FileStoreCommitImplTest, TestGetAllFilesKeepsValueStats) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::MANIFEST_DELETE_FILE_DROP_STATS, "true") .AddOption(Options::FILE_SYSTEM, "local") @@ -2593,7 +2601,7 @@ TEST_F(FileStoreCommitImplTest, TestGetAllFilesKeepsValueStats) { TEST_F(FileStoreCommitImplTest, TestOverwriteDropsDeleteFileStats) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::MANIFEST_DELETE_FILE_DROP_STATS, "true") .AddOption(Options::FILE_SYSTEM, "local") @@ -2669,7 +2677,7 @@ TEST_F(FileStoreCommitImplTest, TestOverwriteDropsDeleteFileStats) { TEST_F(FileStoreCommitImplTest, DropPartitionWithEmptyPartitionsFails) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -2680,7 +2688,7 @@ TEST_F(FileStoreCommitImplTest, DropPartitionWithEmptyPartitionsFails) { TEST_F(FileStoreCommitImplTest, FilterAndCommitMultipleIdentifiersAndEmptyInput) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2720,7 +2728,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndCommitMultipleIdentifiersAndEmptyInput) TEST_F(FileStoreCommitImplTest, CheckFilesExistenceFailsForNonImplCommitMessage) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -2736,7 +2744,7 @@ TEST_F(FileStoreCommitImplTest, CheckFilesExistenceFailsForNonImplCommitMessage) TEST_F(FileStoreCommitImplTest, CheckFilesExistenceCollectsIndexFilePaths) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -2765,7 +2773,7 @@ TEST_F(FileStoreCommitImplTest, CheckFilesExistenceCollectsIndexFilePaths) { TEST_F(FileStoreCommitImplTest, OverwriteStaticPartitionValidatesFileOwnership) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::DYNAMIC_PARTITION_OVERWRITE, "false") @@ -2794,7 +2802,7 @@ TEST_F(FileStoreCommitImplTest, OverwriteStaticPartitionValidatesFileOwnership) TEST_F(FileStoreCommitImplTest, OverwriteWithChangelogFilesLogsWarning) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2840,7 +2848,7 @@ TEST_F(FileStoreCommitImplTest, OverwriteUpgradesNonOverlappingPrimaryKeyFiles) CommitContextBuilder builder(pk_table_path, "test_user"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - builder.AddOption(Options::MANIFEST_FORMAT, "orc") + builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::OVERWRITE_UPGRADE, "true") .Finish()); @@ -2891,7 +2899,7 @@ TEST_F(FileStoreCommitImplTest, OverwriteUpgradesNonOverlappingPrimaryKeyFiles) TEST_F(FileStoreCommitImplTest, CommitWithAppendCommitCheckConflict) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AppendCommitCheckConflict(true) @@ -2915,7 +2923,7 @@ TEST_F(FileStoreCommitImplTest, SnapshotSequenceMaxFallsBackToManifestScan) { { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2931,7 +2939,7 @@ TEST_F(FileStoreCommitImplTest, SnapshotSequenceMaxFallsBackToManifestScan) { // the max sequence number is recomputed by scanning the base manifests. CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::WRITE_SEQUENCE_NUMBER_INIT_MODE, "snapshot") @@ -2961,7 +2969,7 @@ TEST_F(FileStoreCommitImplTest, SnapshotSequenceMaxFallsBackToManifestScan) { TEST_F(FileStoreCommitImplTest, FilterAndOverwriteWithSpecifiedPartition) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -2988,7 +2996,7 @@ TEST_F(FileStoreCommitImplTest, FilterAndOverwriteWithSpecifiedPartition) { TEST_F(FileStoreCommitImplTest, TryUpgradeReturnsInputWhenOverwriteUpgradeDisabled) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::OVERWRITE_UPGRADE, "false") .Finish()); @@ -3022,7 +3030,7 @@ TEST_F(FileStoreCommitImplTest, TryUpgradeReturnsInputWhenEntryLevelAboveZero) { CommitContextBuilder builder(pk_table_path, "test_user"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - builder.AddOption(Options::MANIFEST_FORMAT, "orc") + builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .AddOption(Options::OVERWRITE_UPGRADE, "true") .Finish()); @@ -3043,7 +3051,7 @@ TEST_F(FileStoreCommitImplTest, TryUpgradeReturnsInputWhenEntryLevelAboveZero) { TEST_F(FileStoreCommitImplTest, CheckSameBucketFromSnapshotReturnsOkForEmptyDelta) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -3067,7 +3075,7 @@ TEST_F(FileStoreCommitImplTest, CheckSameBucketFromSnapshotReturnsOkForEmptyDelt TEST_F(FileStoreCommitImplTest, MaxSequenceNumberReturnsNulloptForEmptyManifests) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); @@ -3082,7 +3090,7 @@ TEST_F(FileStoreCommitImplTest, MaxSequenceNumberReturnsNulloptForEmptyManifests TEST_F(FileStoreCommitImplTest, RowIdCheckConflictSetsCheckSnapshotAndReturnsSelf) { CommitContextBuilder context_builder(table_path_, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); ASSERT_OK_AND_ASSIGN(auto commit, FileStoreCommit::Create(std::move(commit_context))); diff --git a/src/paimon/core/operation/file_store_commit_test.cpp b/src/paimon/core/operation/file_store_commit_test.cpp index b43e32158..270407714 100644 --- a/src/paimon/core/operation/file_store_commit_test.cpp +++ b/src/paimon/core/operation/file_store_commit_test.cpp @@ -77,7 +77,7 @@ TEST(FileStoreCommitTest, TestCreate) { CommitContextBuilder context_builder(table_path, "commit_user"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); @@ -115,7 +115,7 @@ TEST(FileStoreCommitTest, TestAppendDvIndexShouldUseOverwriteCommitKind) { CommitContextBuilder context_builder(table_path, "commit_user"); ASSERT_OK_AND_ASSIGN(std::unique_ptr commit_context, - context_builder.AddOption(Options::MANIFEST_FORMAT, "orc") + context_builder.AddOption(Options::MANIFEST_FORMAT, "avro") .AddOption(Options::MANIFEST_TARGET_FILE_SIZE, "8mb") .AddOption(Options::FILE_SYSTEM, "local") .Finish()); diff --git a/src/paimon/core/operation/file_store_write.cpp b/src/paimon/core/operation/file_store_write.cpp index 6807ae35e..bf64a5dad 100644 --- a/src/paimon/core/operation/file_store_write.cpp +++ b/src/paimon/core/operation/file_store_write.cpp @@ -174,9 +174,11 @@ Result> FileStoreWrite::Create(std::unique_ptr dv_maintainer_factory; if (need_dv_maintainer_factory) { + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/true)); PAIMON_ASSIGN_OR_RAISE( std::unique_ptr index_manifest_file, - IndexManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), + IndexManifestFile::Create(options.GetFileSystem(), manifest_format, options.GetManifestCompression(), file_store_path_factory, options.GetBucket(), ctx->GetMemoryPool(), options)); auto index_file_handler = std::make_shared( @@ -235,9 +237,11 @@ Result> FileStoreWrite::Create(std::unique_ptr dv_maintainer_factory; if (options.DeletionVectorsEnabled()) { + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/true)); PAIMON_ASSIGN_OR_RAISE( std::unique_ptr index_manifest_file, - IndexManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), + IndexManifestFile::Create(options.GetFileSystem(), manifest_format, options.GetManifestCompression(), file_store_path_factory, options.GetBucket(), ctx->GetMemoryPool(), options)); auto index_file_handler = std::make_shared( diff --git a/src/paimon/core/operation/key_value_file_store_scan_test.cpp b/src/paimon/core/operation/key_value_file_store_scan_test.cpp index f9fd2ea2f..59f2dc139 100644 --- a/src/paimon/core/operation/key_value_file_store_scan_test.cpp +++ b/src/paimon/core/operation/key_value_file_store_scan_test.cpp @@ -91,7 +91,8 @@ class KeyValueFileStoreScanTest : public testing::Test { core_options.DataFilePrefix(), core_options.LegacyPartitionNameEnabled(), external_paths, global_index_external_path, core_options.IndexFileInDataFileDir(), pool_)); - auto manifest_file_format = core_options.GetManifestFormat(); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_file_format, + core_options.GetManifestFormat(/*write=*/false)); auto snapshot_manager = std::make_shared(fs, table_path); PAIMON_ASSIGN_OR_RAISE( diff --git a/src/paimon/core/operation/key_value_file_store_write.cpp b/src/paimon/core/operation/key_value_file_store_write.cpp index 09755984d..c555b29c3 100644 --- a/src/paimon/core/operation/key_value_file_store_write.cpp +++ b/src/paimon/core/operation/key_value_file_store_write.cpp @@ -78,14 +78,16 @@ KeyValueFileStoreWrite::KeyValueFileStoreWrite( Result> KeyValueFileStoreWrite::CreateFileStoreScan( const std::shared_ptr& scan_filter) const { + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options_.GetManifestFormat(/*write=*/false)); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr manifest_list, - ManifestList::Create(options_.GetFileSystem(), options_.GetManifestFormat(), + ManifestList::Create(options_.GetFileSystem(), manifest_format, options_.GetManifestCompression(), file_store_path_factory_, options_.GetCache(), pool_)); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr manifest_file, - ManifestFile::Create(options_.GetFileSystem(), options_.GetManifestFormat(), + ManifestFile::Create(options_.GetFileSystem(), manifest_format, options_.GetManifestCompression(), file_store_path_factory_, options_.GetManifestTargetFileSize(), pool_, options_, partition_schema_)); diff --git a/src/paimon/core/operation/key_value_file_store_write_test.cpp b/src/paimon/core/operation/key_value_file_store_write_test.cpp index 35d938af7..074c9433f 100644 --- a/src/paimon/core/operation/key_value_file_store_write_test.cpp +++ b/src/paimon/core/operation/key_value_file_store_write_test.cpp @@ -437,7 +437,7 @@ TEST_F(KeyValueFileStoreWriteTest, TestWriterRestoreKeepsValueStats) { std::map options = { {Options::BUCKET, "1"}, {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::MANIFEST_DELETE_FILE_DROP_STATS, "true"}}; ASSERT_OK_AND_ASSIGN(auto catalog, Catalog::Create(dir->Str(), options)); ASSERT_OK(catalog->CreateDatabase("foo", {}, /*ignore_if_exists=*/false)); diff --git a/src/paimon/core/operation/orphan_files_cleaner.cpp b/src/paimon/core/operation/orphan_files_cleaner.cpp index ac69d5a37..2c4fab118 100644 --- a/src/paimon/core/operation/orphan_files_cleaner.cpp +++ b/src/paimon/core/operation/orphan_files_cleaner.cpp @@ -194,20 +194,20 @@ Result> OrphanFilesCleaner::Create( global_index_external_path, options.IndexFileInDataFileDir(), ctx->GetMemoryPool())); auto snapshot_manager = std::make_shared(options.GetFileSystem(), ctx->GetRootPath()); - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_list, - ManifestList::Create(options.GetFileSystem(), options.GetManifestFormat(), - options.GetManifestCompression(), path_factory, options.GetCache(), - ctx->GetMemoryPool())); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + options.GetManifestFormat(/*write=*/false)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_list, + ManifestList::Create(options.GetFileSystem(), manifest_format, + options.GetManifestCompression(), path_factory, + options.GetCache(), ctx->GetMemoryPool())); PAIMON_ASSIGN_OR_RAISE( std::shared_ptr partition_schema, FieldMapping::GetPartitionSchema(arrow_schema, table_schema.value()->PartitionKeys())); - PAIMON_ASSIGN_OR_RAISE( - std::shared_ptr manifest_file, - ManifestFile::Create(options.GetFileSystem(), options.GetManifestFormat(), - options.GetManifestCompression(), path_factory, - options.GetManifestTargetFileSize(), ctx->GetMemoryPool(), options, - partition_schema)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_file, + ManifestFile::Create(options.GetFileSystem(), manifest_format, + options.GetManifestCompression(), path_factory, + options.GetManifestTargetFileSize(), + ctx->GetMemoryPool(), options, partition_schema)); return std::make_unique( ctx->GetMemoryPool(), ctx->GetExecutor(), arrow_schema, ctx->GetRootPath(), options, snapshot_manager, schema->PartitionKeys(), manifest_file, manifest_list, diff --git a/src/paimon/core/table/source/table_scan.cpp b/src/paimon/core/table/source/table_scan.cpp index 8111a94e3..06209f7e1 100644 --- a/src/paimon/core/table/source/table_scan.cpp +++ b/src/paimon/core/table/source/table_scan.cpp @@ -90,7 +90,8 @@ class TableScanImpl { const std::shared_ptr& executor, const std::shared_ptr& memory_pool, const ScanContext* context) { auto fs = core_options.GetFileSystem(); - auto manifest_file_format = core_options.GetManifestFormat(); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_file_format, + core_options.GetManifestFormat(/*write=*/false)); std::string branch = BranchManager::NormalizeBranch(core_options.GetBranch()); auto snapshot_manager = std::make_shared(fs, context->GetPath(), branch); // TODO(liancheng.lsz): support fallback branch in scan @@ -172,11 +173,13 @@ class TableScanImpl { static Result> CreateIndexFileHandler( const CoreOptions& core_options, const std::shared_ptr& path_factory, const std::shared_ptr& memory_pool) { - PAIMON_ASSIGN_OR_RAISE(std::unique_ptr index_manifest_file, - IndexManifestFile::Create( - core_options.GetFileSystem(), core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetBucket(), memory_pool, core_options)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + PAIMON_ASSIGN_OR_RAISE( + std::unique_ptr index_manifest_file, + IndexManifestFile::Create(core_options.GetFileSystem(), manifest_format, + core_options.GetManifestCompression(), path_factory, + core_options.GetBucket(), memory_pool, core_options)); return std::make_unique( core_options.GetFileSystem(), std::move(index_manifest_file), std::make_shared(path_factory), diff --git a/src/paimon/core/table/system/global_system_tables.cpp b/src/paimon/core/table/system/global_system_tables.cpp index 6523588e8..16c25ed02 100644 --- a/src/paimon/core/table/system/global_system_tables.cpp +++ b/src/paimon/core/table/system/global_system_tables.cpp @@ -211,11 +211,13 @@ Result AggregateFileStats(const std::shared_ptr core_options.DataFilePrefix(), core_options.LegacyPartitionNameEnabled(), external_paths, global_index_external_path, core_options.IndexFileInDataFileDir(), pool)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); - PAIMON_ASSIGN_OR_RAISE(std::unique_ptr manifest_list, - ManifestList::Create(fs, core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetCache(), pool)); + PAIMON_ASSIGN_OR_RAISE( + std::unique_ptr manifest_list, + ManifestList::Create(fs, manifest_format, core_options.GetManifestCompression(), + path_factory, core_options.GetCache(), pool)); std::vector manifests; PAIMON_RETURN_NOT_OK(manifest_list->ReadDataManifests(*snapshot, &manifests)); @@ -223,11 +225,11 @@ Result AggregateFileStats(const std::shared_ptr PAIMON_ASSIGN_OR_RAISE( std::shared_ptr partition_schema, FieldMapping::GetPartitionSchema(arrow_schema, table_schema.PartitionKeys())); - PAIMON_ASSIGN_OR_RAISE(std::unique_ptr manifest_file, - ManifestFile::Create(fs, core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetManifestTargetFileSize(), pool, - core_options, partition_schema)); + PAIMON_ASSIGN_OR_RAISE( + std::unique_ptr manifest_file, + ManifestFile::Create(fs, manifest_format, core_options.GetManifestCompression(), + path_factory, core_options.GetManifestTargetFileSize(), pool, + core_options, partition_schema)); std::vector entries; for (const auto& manifest : manifests) { diff --git a/src/paimon/core/table/system/metadata_system_tables.cpp b/src/paimon/core/table/system/metadata_system_tables.cpp index 093994317..7096a65e9 100644 --- a/src/paimon/core/table/system/metadata_system_tables.cpp +++ b/src/paimon/core/table/system/metadata_system_tables.cpp @@ -228,10 +228,12 @@ Result> ReadDataManifests( const MetadataSystemTableContext& context, const Snapshot& snapshot, const std::shared_ptr& path_factory, const CoreOptions& core_options, const std::shared_ptr& pool) { - PAIMON_ASSIGN_OR_RAISE(std::unique_ptr manifest_list, - ManifestList::Create(context.fs, core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetCache(), pool)); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + PAIMON_ASSIGN_OR_RAISE( + std::unique_ptr manifest_list, + ManifestList::Create(context.fs, manifest_format, core_options.GetManifestCompression(), + path_factory, core_options.GetCache(), pool)); std::vector manifests; // TODO(suxiaogang223): Align Java ReadAllManifests semantics by including changelog // manifests. ReadAllManifests currently delegates to ReadChangelogManifests, which returns @@ -249,10 +251,11 @@ Result> CreateManifestFile( PAIMON_ASSIGN_OR_RAISE( std::shared_ptr partition_schema, FieldMapping::GetPartitionSchema(arrow_schema, context.table_schema->PartitionKeys())); - return ManifestFile::Create(context.fs, core_options.GetManifestFormat(), - core_options.GetManifestCompression(), path_factory, - core_options.GetManifestTargetFileSize(), pool, core_options, - partition_schema); + PAIMON_ASSIGN_OR_RAISE(std::shared_ptr manifest_format, + core_options.GetManifestFormat(/*write=*/false)); + return ManifestFile::Create(context.fs, manifest_format, core_options.GetManifestCompression(), + path_factory, core_options.GetManifestTargetFileSize(), pool, + core_options, partition_schema); } Result> ReadLatestManifestEntries( diff --git a/src/paimon/format/parquet/parquet_format_defs.h b/src/paimon/format/parquet/parquet_format_defs.h index 8b205a09a..9271c7479 100644 --- a/src/paimon/format/parquet/parquet_format_defs.h +++ b/src/paimon/format/parquet/parquet_format_defs.h @@ -41,7 +41,7 @@ namespace paimon::parquet { static inline const char PARQUET_BLOCK_SIZE[] = "parquet.block.size"; static inline const char PARQUET_PAGE_SIZE[] = "parquet.page.size"; static inline const char PARQUET_DICTIONARY_PAGE_SIZE[] = "parquet.dictionary.page.size"; -static inline const char PARQUET_ENABLE_DICTIONARY[] = "parquet.enable-dictionary"; +static inline const char PARQUET_ENABLE_DICTIONARY[] = "parquet.enable.dictionary"; static inline const char PARQUET_WRITER_VERSION[] = "parquet.writer.version"; static inline const char PARQUET_WRITE_MAX_ROW_GROUP_LENGTH[] = "parquet.write.max-row-group-length"; diff --git a/src/paimon/format/parquet/parquet_writer_builder_test.cpp b/src/paimon/format/parquet/parquet_writer_builder_test.cpp index 3a95a8de3..2bbd3df21 100644 --- a/src/paimon/format/parquet/parquet_writer_builder_test.cpp +++ b/src/paimon/format/parquet/parquet_writer_builder_test.cpp @@ -77,6 +77,20 @@ TEST(ParquetWriterBuilderTest, PrepareWriterProperties) { ASSERT_EQ(3, properties->default_column_properties().compression_level()); } +TEST(ParquetWriterBuilderTest, PrepareWriterPropertiesWithDictionaryDisabled) { + arrow::FieldVector fields; + std::shared_ptr schema = arrow::schema(fields); + std::map options = { + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "parquet"}, + {"parquet.enable.dictionary", "false"}, + }; + ParquetWriterBuilder builder(schema, /*batch_size=*/1024, options); + ASSERT_OK_AND_ASSIGN(std::shared_ptr<::parquet::WriterProperties> properties, + builder.PrepareWriterProperties("zstd")); + ASSERT_FALSE(properties->default_column_properties().dictionary_enabled()); +} + TEST(ParquetWriterBuilderTest, PrepareWriterPropertiesWithFileBlockSize) { arrow::FieldVector fields; std::shared_ptr schema = arrow::schema(fields); diff --git a/test/inte/blob_table_inte_test.cpp b/test/inte/blob_table_inte_test.cpp index f5d5960b3..ac1489c8e 100644 --- a/test/inte/blob_table_inte_test.cpp +++ b/test/inte/blob_table_inte_test.cpp @@ -129,7 +129,7 @@ class BlobTableInteTest : public testing::Test, public ::testing::WithParamInter } void CreateTable(const std::vector& partition_keys) const { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -212,7 +212,7 @@ class BlobTableInteTest : public testing::Test, public ::testing::WithParamInter arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("view", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -611,7 +611,7 @@ TEST_P(BlobTableInteTest, TestAppendTableWriteWithBlobAsDescriptorTrue) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_AS_DESCRIPTOR, "true"}, {Options::FILE_SYSTEM, "local"}}; @@ -652,7 +652,7 @@ TEST_P(BlobTableInteTest, TestAppendTableWriteWithBlobAsDescriptorFalse) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_AS_DESCRIPTOR, "false"}, {Options::FILE_SYSTEM, "local"}}; @@ -686,7 +686,7 @@ TEST_P(BlobTableInteTest, TestWriteNullOnMissingFile) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_AS_DESCRIPTOR, "true"}, {Options::BLOB_WRITE_NULL_ON_MISSING_FILE, "true"}, @@ -747,7 +747,7 @@ TEST_P(BlobTableInteTest, TestMissingFileFailsWriteWhenWriteNullDisabled) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_AS_DESCRIPTOR, "true"}, {Options::FILE_SYSTEM, "local"}}; @@ -778,7 +778,7 @@ TEST_P(BlobTableInteTest, TestWriteNullOnFetchFailure) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, @@ -845,7 +845,7 @@ TEST_P(BlobTableInteTest, TestWriteNullOnFetchFailureCoversMissingFile) { BlobUtils::ToArrowField("blob", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, @@ -947,7 +947,7 @@ TEST_P(BlobTableInteTest, TestBasic) { } TEST_P(BlobTableInteTest, TestBlobFilesAcrossSchemaIds) { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1123,7 +1123,7 @@ TEST_P(BlobTableInteTest, TestMultipleAppends) { TEST_P(BlobTableInteTest, TestDataEvolutionBlobOnlyWriteWithFirstRowId) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1205,7 +1205,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateFallback) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1289,7 +1289,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateFallback) { TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateMultipleLayers) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1361,7 +1361,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateWithDeletionVectors) arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::DELETION_VECTORS_ENABLED, "true"}}; CreateTable(fields, /*partition_keys=*/{}, options); @@ -1444,7 +1444,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateWithDeletionVectors) TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateCompactedLayers) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1511,7 +1511,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateCompactedLayers) { TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateWithRowRanges) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1571,7 +1571,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateWithRowRanges) { TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateRowTrackingWithSubrangeLayer) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1657,7 +1657,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateRowTrackingWithSubra TEST_P(BlobTableInteTest, TestDataEvolutionBlobPartialUpdateAllPlaceholderRowTracking) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1713,7 +1713,7 @@ TEST_P(BlobTableInteTest, TestBlobValueEqualToPlaceholderSentinelBytes) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1780,7 +1780,7 @@ TEST_P(BlobTableInteTest, TestBlobSentinelValueInBaseLayerDegradesToNull) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1824,7 +1824,7 @@ TEST_P(BlobTableInteTest, TestUserSuppliedInternalPlaceholderOptionsIgnored) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0", /*nullable=*/true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1851,7 +1851,7 @@ TEST_P(BlobTableInteTest, TestUserSuppliedInternalPlaceholderOptionsIgnored) { TEST_P(BlobTableInteTest, TestDataEvolutionBlobOnlyFirstCommitFailsWithoutFirstRowId) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), arrow::field("f1", arrow::utf8()), BlobUtils::ToArrowField("b0")}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2009,7 +2009,7 @@ TEST_P(BlobTableInteTest, TestMoreDataWithDataEvolution) { TEST_P(BlobTableInteTest, TestBlobWriteMultiRound) { std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::BLOB_TARGET_FILE_SIZE, "1000"}, {Options::TARGET_FILE_SIZE, "100"}, {Options::DATA_EVOLUTION_ENABLED, "true"}}; @@ -2052,7 +2052,7 @@ TEST_P(BlobTableInteTest, TestExternalPath) { std::string external_test_dir = external_dir->Str(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2114,7 +2114,7 @@ TEST_P(BlobTableInteTest, TestPartitionWithPredicate) { auto file_format = GetParam(); std::vector partition_keys = {"f0"}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {"parquet.write.max-row-group-length", "1"}}; @@ -2234,7 +2234,7 @@ TEST_P(BlobTableInteTest, TestPredicate) { return; } if (GetParam() == "mosaic") { - CreateTable(/*partition_keys=*/{}, {{Options::MANIFEST_FORMAT, "orc"}, + CreateTable(/*partition_keys=*/{}, {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2574,7 +2574,7 @@ TEST_P(BlobTableInteTest, TestWithRowIdsSimple) { TEST_P(BlobTableInteTest, TestWithRowIdsForMultipleBlobFiles) { auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1000"}, {Options::BLOB_TARGET_FILE_SIZE, "80"}, @@ -2685,7 +2685,7 @@ TEST_P(BlobTableInteTest, TestAppendTableWriteWithMultipleBlobFields) { BlobUtils::ToArrowField("blob1", true), BlobUtils::ToArrowField("blob2", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::FILE_SYSTEM, "local"}}; @@ -2711,7 +2711,7 @@ TEST_P(BlobTableInteTest, TestAppendWriteWithNullBlob) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("blob", true)}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::BUCKET, "-1"}, {Options::FILE_SYSTEM, "local"}, @@ -2819,7 +2819,7 @@ TEST_P(BlobTableInteTest, TestBlobDescriptorField) { BlobUtils::ToArrowField("b1", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_DESCRIPTOR_FIELD, "b0,b1"}, {Options::FILE_SYSTEM, "local"}}; @@ -2877,7 +2877,7 @@ TEST_P(BlobTableInteTest, TestBlobDescriptorFieldPartialInline) { BlobUtils::ToArrowField("b3", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_DESCRIPTOR_FIELD, "b0,b1"}, {Options::FILE_SYSTEM, "local"}}; @@ -2940,7 +2940,7 @@ TEST_P(BlobTableInteTest, TestBlobDescriptorMultiCommitAndShuffledReadSchema) { BlobUtils::ToArrowField("b3", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_DESCRIPTOR_FIELD, "b0,b1"}, {Options::FILE_SYSTEM, "local"}}; @@ -3068,7 +3068,7 @@ TEST_P(BlobTableInteTest, TestSharedShreddingWithBlobDataEvolution) { BlobUtils::ToArrowField("payload"), }; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3128,7 +3128,7 @@ TEST_P(BlobTableInteTest, TestMultipleSharedShreddingMapsWithBlobDataEvolution) BlobUtils::ToArrowField("payload"), }; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3189,7 +3189,7 @@ TEST_P(BlobTableInteTest, TestSharedShreddingMapOverrideWithBlobDataEvolution) { BlobUtils::ToArrowField("payload"), }; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3248,7 +3248,7 @@ TEST_P(BlobTableInteTest, TestOrcMapStorageLayoutEvolutionWithBlobDataEvolution) BlobUtils::ToArrowField("payload"), }; std::map options_v0 = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3320,7 +3320,7 @@ TEST_P(BlobTableInteTest, TestDataEvolutionWithBlobDescriptorField) { BlobUtils::ToArrowField("b3", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_DESCRIPTOR_FIELD, "b0,b1"}, {Options::FILE_SYSTEM, "local"}}; @@ -3437,7 +3437,7 @@ TEST_P(BlobTableInteTest, TestBlobDescriptorFieldWriteRawBytesDirectly) { BlobUtils::ToArrowField("b1", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, GetParam()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, GetParam()}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::BLOB_DESCRIPTOR_FIELD, "b0,b1"}, {Options::FILE_SYSTEM, "local"}}; @@ -3475,7 +3475,7 @@ TEST_P(BlobTableInteTest, TestBlobViewFieldWithUpstreamTable) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("view", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3644,7 +3644,7 @@ TEST_P(BlobTableInteTest, TestForwardBlobViewReference) { // dynamically disabled can succeed on it. arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("view", true)}; - std::map source_options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map source_options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3796,7 +3796,7 @@ TEST_P(BlobTableInteTest, TestBlobViewFieldWithUpstreamDescriptorBlob) { BlobUtils::ToArrowField("b1", true)}; auto upstream_schema = arrow::schema(upstream_fields); std::map upstream_options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3838,7 +3838,7 @@ TEST_P(BlobTableInteTest, TestBlobViewFieldWithUpstreamDescriptorBlob) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("view", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3944,7 +3944,7 @@ TEST_P(BlobTableInteTest, TestBlobViewFieldWithMultipleUpstreamTables) { BlobUtils::ToArrowField("view1", true), BlobUtils::ToArrowField("view2", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -4222,7 +4222,7 @@ TEST_P(BlobTableInteTest, TestBlobViewWithFallbackPath) { BlobUtils::ToArrowField("blob", true)}; auto upstream_schema = arrow::schema(upstream_fields); std::map upstream_options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -4269,7 +4269,7 @@ TEST_P(BlobTableInteTest, TestBlobViewWithFallbackPath) { arrow::FieldVector fields = {arrow::field("f0", arrow::int32()), BlobUtils::ToArrowField("view", true)}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, diff --git a/test/inte/clean_inte_test.cpp b/test/inte/clean_inte_test.cpp index 89cadd4f7..6360b1138 100644 --- a/test/inte/clean_inte_test.cpp +++ b/test/inte/clean_inte_test.cpp @@ -190,7 +190,7 @@ class CleanInteTest : public testing::Test { }; TEST_F(CleanInteTest, TestExpireSnapshotFailover) { - std::string test_data_path = paimon::test::GetDataDir() + "/orc/append_09.db/append_09/"; + std::string test_data_path = paimon::test::GetDataDir() + "/parquet/append_09.db/append_09/"; std::map clean_options = { {Options::MANIFEST_TARGET_FILE_SIZE, "8mb"}, {Options::FILE_SYSTEM, "local"}, @@ -218,7 +218,7 @@ TEST_F(CleanInteTest, TestExpireSnapshotFailover) { std::string table_path = dir->Str(); ASSERT_TRUE(TestUtil::CopyDirectory(test_data_path, table_path)); ASSERT_OK(file_system_->Delete(PathUtil::JoinPath( - table_path, "manifest/manifest-list-616d1847-a02c-495f-9cca-2c8b7def0fec-1"))); + table_path, "manifest/manifest-list-55a3b658-08e3-40aa-b692-29dc1e3ebbdc-1"))); CommitContextBuilder commit_context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN( std::unique_ptr commit_context, @@ -233,7 +233,7 @@ TEST_F(CleanInteTest, TestExpireSnapshotFailover) { std::string table_path = dir->Str(); ASSERT_TRUE(TestUtil::CopyDirectory(test_data_path, table_path)); ASSERT_OK(file_system_->Delete(PathUtil::JoinPath( - table_path, "f1=10/bucket-1/data-10b9eea8-241d-4e4b-8ab8-2a82d72d79a2-0.orc"))); + table_path, "f1=10/bucket-1/data-7a912f84-04b7-4bbb-8dc6-53f4a292ea25-0.parquet"))); CommitContextBuilder commit_context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN( std::unique_ptr commit_context, @@ -272,7 +272,7 @@ TEST_F(CleanInteTest, TestDropPartitionAndExpireSnapshot) { ASSERT_TRUE(dir); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, @@ -416,7 +416,7 @@ TEST_F(CleanInteTest, TestDropPartitionAndExpireSnapshotWithIOException) { auto schema = arrow::schema(arrow::FieldVector({string_field, int_field, int_field1, double_field})); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, @@ -583,7 +583,7 @@ TEST_F(CleanInteTest, TestOrphanFilesClean) { ASSERT_TRUE(arrow::ExportSchema(*schema, &arrow_schema).ok()); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, @@ -701,7 +701,7 @@ TEST_F(CleanInteTest, TestOrphanFilesCleanWithFileRetainCondition) { ASSERT_TRUE(arrow::ExportSchema(*schema, &arrow_schema).ok()); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, @@ -817,7 +817,7 @@ TEST_F(CleanInteTest, TestOrphanFilesCleanWithIOException) { ASSERT_TRUE(dir); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, diff --git a/test/inte/data_evolution_table_test.cpp b/test/inte/data_evolution_table_test.cpp index 303c6d700..00b42b274 100644 --- a/test/inte/data_evolution_table_test.cpp +++ b/test/inte/data_evolution_table_test.cpp @@ -79,7 +79,7 @@ class DataEvolutionTableTest : public ::testing::Test, } void CreateTable(const std::vector& partition_keys) const { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -160,7 +160,7 @@ class DataEvolutionTableTest : public ::testing::Test, std::map CreateDataEvolutionTable( bool deletion_vectors_enabled, const std::map& extra_options = {}) const { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -864,7 +864,7 @@ TEST_P(DataEvolutionTableTest, TestMultipleSharedShreddingMapsPartialOverwrite) arrow::field("map2", map_type), }; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1192,7 +1192,7 @@ TEST_P(DataEvolutionTableTest, TestMoreData) { TEST_P(DataEvolutionTableTest, TestOnlyRowTrackingEnabled) { std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1236,7 +1236,7 @@ TEST_P(DataEvolutionTableTest, TestExternalPath) { std::string external_test_dir = external_dir->Str(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1488,7 +1488,7 @@ TEST_P(DataEvolutionTableTest, TestPartitionWithPredicate) { } std::vector partition_keys = {"f1"}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, FileFormat()}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {"parquet.write.max-row-group-length", "1"}}; if (file_format == "mosaic") { @@ -2136,7 +2136,7 @@ TEST_P(DataEvolutionTableTest, TestFormatPredicatePushDownWithoutFileIndex) { std::map options = {{Options::FILE_INDEX_READ_ENABLED, "false"}, {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.read.enable-page-index-filter", "true"}, {"orc.stripe.size", "1"}, @@ -2187,7 +2187,7 @@ TEST_P(DataEvolutionTableTest, TestPredicate) { return; } if (FileFormat() == "mosaic") { - CreateTable(/*partition_keys=*/{}, {{Options::MANIFEST_FORMAT, "orc"}, + CreateTable(/*partition_keys=*/{}, {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2331,7 +2331,7 @@ TEST_P(DataEvolutionTableTest, TestIOException) { } TEST_P(DataEvolutionTableTest, TestWithRowIds) { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, FileFormat()}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, diff --git a/test/inte/global_index_test.cpp b/test/inte/global_index_test.cpp index 84ab22df8..f42934782 100644 --- a/test/inte/global_index_test.cpp +++ b/test/inte/global_index_test.cpp @@ -84,7 +84,7 @@ class GlobalIndexTest : public ::testing::Test, public ::testing::WithParamInter } void CreateTable(const std::vector& partition_keys) const { - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -259,7 +259,7 @@ TEST_P(GlobalIndexTest, TestWriteLuminaIndex) { {"lumina.encoding.type", "rawf32"}, {"lumina.search.parallel_number", "10"}}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -318,7 +318,7 @@ TEST_P(GlobalIndexTest, TestWriteLuminaIndexWithMismatchedDimension) { {"lumina.search.parallel_number", "10"}}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format_}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::READ_BATCH_SIZE, "1"}}; @@ -361,7 +361,7 @@ TEST_P(GlobalIndexTest, TestWriteAndQueryLuminaIndexWithOrcDictionaryStringTags) R"([{"key_name":"color","type":"enum","value_type":"string"},)" R"({"key_name":"labels","type":"enum","value_type":"string"}])"}}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format_}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {"orc.dictionary-key-size-threshold", "1"}, {"orc.read.enable-lazy-decoding", "true"}}; @@ -956,7 +956,7 @@ TEST_P(GlobalIndexTest, TestWriteCommitScanReadIndexWithPartition) { {"lumina.encoding.type", "rawf32"}, {"lumina.search.parallel_number", "10"}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1097,7 +1097,7 @@ TEST_P(GlobalIndexTest, TestWriteCommitScanReadIndexWithScore) { {"lumina.encoding.type", "rawf32"}, {"lumina.search.parallel_number", "10"}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1243,7 +1243,7 @@ TEST_P(GlobalIndexTest, TestWriteAndQueryLuminaIndexWithTagNullAndEmptyValues) { R"({"key_name":"scores","type":"range","value_type":"float"},)" R"({"key_name":"category","type":"enum","value_type":"int32"},)" R"({"key_name":"category_ids","type":"enum","value_type":"int32"}])"}}; - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1851,7 +1851,7 @@ TEST_P(GlobalIndexTest, TestScanIndexWithTwoIndexes) { {"lumina.encoding.type", "rawf32"}, {"lumina.search.parallel_number", "10"}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1919,7 +1919,7 @@ TEST_P(GlobalIndexTest, TestDataEvolutionBatchScanWithExternalPath) { arrow::field("f0", arrow::utf8()), arrow::field("f1", arrow::list(arrow::float32())), arrow::field("f2", arrow::int32()), arrow::field("f3", arrow::float64())}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -1986,7 +1986,7 @@ TEST_P(GlobalIndexTest, TestIOException) { ])") .ValueOrDie(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2312,7 +2312,7 @@ TEST_P(GlobalIndexTest, TestLuceneWriteCommitScanReadIndexWithScore) { {"lucene-fts.write.omit-term-freq-and-position", "false"}, {"lucene-fts.write.tmp.directory", tmp_dir->Str()}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2398,7 +2398,7 @@ TEST_P(GlobalIndexTest, TestWriteCommitScanReadLuceneIndexWithPartition) { {"lucene-fts.write.omit-term-freq-and-position", "false"}, {"lucene-fts.write.tmp.directory", tmp_dir->Str()}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2761,7 +2761,7 @@ TEST_P(GlobalIndexTest, TestBTreeEmptyStringKeyPredicates) { TEST_P(GlobalIndexTest, TestBTreeWriteCommitScanReadIndexWithPartition) { // BTree index with partitioned table. Each partition's data is sorted by f0 independently. auto schema = arrow::schema(fields_); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -2906,7 +2906,7 @@ TEST_P(GlobalIndexTest, TestBTreeWithPartitionAndCustomExecutor) { // Test that UnionGlobalIndexReader uses a custom 8-thread executor to read // btree indexes from two partitions in parallel. auto schema = arrow::schema(fields_); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -3327,7 +3327,7 @@ TEST_P(GlobalIndexTest, TestBTreeWithLumina) { {"lumina.encoding.type", "rawf32"}, {"lumina.search.parallel_number", "10"}}; auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format_}, {Options::FILE_SYSTEM, "local"}, {Options::ROW_TRACKING_ENABLED, "true"}, diff --git a/test/inte/nested_column_pruning_inte_test.cpp b/test/inte/nested_column_pruning_inte_test.cpp index b77d6bda9..90ecc470b 100644 --- a/test/inte/nested_column_pruning_inte_test.cpp +++ b/test/inte/nested_column_pruning_inte_test.cpp @@ -1164,7 +1164,7 @@ TEST_P(NestedColumnPruningInteTest, NestedStructMapSelectedKeysWithPredicate) { {Options::BUCKET, "-1"}, {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.write.max-row-group-length", "1"}, {"parquet.read.enable-page-index-filter", "true"}, diff --git a/test/inte/pk_compaction_inte_test.cpp b/test/inte/pk_compaction_inte_test.cpp index 8e9150aee..f8015d6ee 100644 --- a/test/inte/pk_compaction_inte_test.cpp +++ b/test/inte/pk_compaction_inte_test.cpp @@ -539,7 +539,7 @@ TEST_P(PkCompactionInteTest, TestKeyValueTableDvCompactionWithMapSharedShredding {"fields.tags.map.storage-layout", "shared-shredding"}, {"fields.tags.map.shared-shredding.max-columns", "2"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.write.max-row-group-length", "1"}, {"parquet.read.enable-page-index-filter", "true"}, diff --git a/test/inte/read_inte_test.cpp b/test/inte/read_inte_test.cpp index 343d99605..68690c4d1 100644 --- a/test/inte/read_inte_test.cpp +++ b/test/inte/read_inte_test.cpp @@ -1016,7 +1016,7 @@ TEST(SystemTableReadInteTest, TestReadOptimizedPrimaryKeyProjectionAndPredicateP {Options::BUCKET_KEY, "k"}, {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.write.max-row-group-length", "1"}, {"parquet.read.enable-page-index-filter", "true"}}; @@ -1239,8 +1239,8 @@ TEST(SystemTableReadInteTest, TestReadFilesSystemTableForPartitionedTable) { }; auto schema = arrow::schema(fields); std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}}; auto dir = UniqueTestDirectory::Create(); ASSERT_TRUE(dir); @@ -1363,8 +1363,8 @@ TEST(SystemTableReadInteTest, TestReadFilesSystemTableForDatePartition) { }; auto schema = arrow::schema(fields); std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "v"}}; auto dir = UniqueTestDirectory::Create(); @@ -4284,8 +4284,8 @@ TEST(SystemTableReadInteTest, TestReadGlobalAllTableOptions) { TEST(SystemTableReadInteTest, TestReadGlobalTables) { std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}, {"owner", "alice"}, {"createdAt", "1000"}, @@ -4402,8 +4402,8 @@ TEST(SystemTableReadInteTest, TestReadGlobalTables) { TEST(SystemTableReadInteTest, TestReadGlobalPartitions) { std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "v"}}; auto dir = UniqueTestDirectory::Create(); @@ -4489,8 +4489,8 @@ TEST(SystemTableReadInteTest, TestGlobalSystemTablesPropagateCorruptSchema) { TEST(SystemTableReadInteTest, TestPartitionsSystemTablePropagatesCorruptSnapshot) { std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "v"}}; auto dir = UniqueTestDirectory::Create(); @@ -4524,8 +4524,8 @@ TEST(SystemTableReadInteTest, TestPartitionsSystemTablePropagatesCorruptSnapshot TEST(SystemTableReadInteTest, TestPartitionsSystemTablePropagatesCorruptManifest) { std::map options = {{Options::FILE_SYSTEM, "local"}, - {Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "v"}}; auto dir = UniqueTestDirectory::Create(); diff --git a/test/inte/realtime_write_inte_test.cpp b/test/inte/realtime_write_inte_test.cpp index 6298137ea..8892380cb 100644 --- a/test/inte/realtime_write_inte_test.cpp +++ b/test/inte/realtime_write_inte_test.cpp @@ -197,7 +197,7 @@ class RealtimeWriteInteTest : public ::testing::Test { arrow::field("pt", arrow::utf8())}; schema_ = arrow::schema(fields_); options_ = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "orc"}, {Options::FILE_SYSTEM, "local"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "id"}, {Options::TARGET_FILE_SIZE, "1048576"}, {Options::REALTIME_ENABLED, "true"}, @@ -1484,7 +1484,7 @@ TEST_F(RealtimeWriteInteTest, TestDiskPredicatePushdownWithoutMemoryFiltering) { options_[Options::FILE_FORMAT] = "parquet"; options_[Options::WRITE_BATCH_SIZE] = "1"; options_["parquet.page.size"] = "1"; - options_["parquet.enable-dictionary"] = "false"; + options_["parquet.enable.dictionary"] = "false"; options_["parquet.write.enable-page-index"] = "true"; options_["parquet.read.enable-page-index-filter"] = "true"; CreateTable(/*partition_keys=*/{}); @@ -1620,7 +1620,7 @@ TEST_F(RealtimeWriteInteTest, TestMemoryBatchStatisticsPredicatePushdownWithDisk options_[Options::WRITE_BATCH_SIZE] = "1"; options_[Options::REALTIME_STORE_STATS_MODE] = "full"; options_["parquet.page.size"] = "1"; - options_["parquet.enable-dictionary"] = "false"; + options_["parquet.enable.dictionary"] = "false"; options_["parquet.write.enable-page-index"] = "true"; options_["parquet.read.enable-page-index-filter"] = "true"; CreateTable(/*partition_keys=*/{}); @@ -1674,7 +1674,7 @@ TEST_F(RealtimeWriteInteTest, TestNullPredicateForMemoryAndDisk) { options_[Options::WRITE_BATCH_SIZE] = "1"; options_[Options::REALTIME_STORE_STATS_MODE] = "full"; options_["parquet.page.size"] = "1"; - options_["parquet.enable-dictionary"] = "false"; + options_["parquet.enable.dictionary"] = "false"; options_["parquet.write.enable-page-index"] = "true"; options_["parquet.write.max-row-group-length"] = "1"; options_["parquet.read.enable-page-index-filter"] = "true"; diff --git a/test/inte/scan_and_read_inte_test.cpp b/test/inte/scan_and_read_inte_test.cpp index 11080c9d5..e8245e455 100644 --- a/test/inte/scan_and_read_inte_test.cpp +++ b/test/inte/scan_and_read_inte_test.cpp @@ -2153,7 +2153,7 @@ TEST_P(ScanAndReadInteTest, TestPkScanWithPostponeBucket) { arrow::field("_VALUE_KIND", arrow::int8())); auto schema = arrow::schema(fields); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "-2"}, diff --git a/test/inte/write_and_read_inte_test.cpp b/test/inte/write_and_read_inte_test.cpp index 43ed0d1fb..6cce44236 100644 --- a/test/inte/write_and_read_inte_test.cpp +++ b/test/inte/write_and_read_inte_test.cpp @@ -2237,7 +2237,7 @@ TEST_P(WriteAndReadInteTest, TestPKWithParquetPageIndexFilter) { arrow::field("f2", arrow::int32()), arrow::field("f3", arrow::float64())}; auto schema = arrow::schema(fields); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "parquet"}, {Options::TARGET_FILE_SIZE, "1048576"}, {Options::BUCKET, "1"}, @@ -2253,7 +2253,7 @@ TEST_P(WriteAndReadInteTest, TestPKWithParquetPageIndexFilter) { // filter is enabled below). {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, }; ASSERT_OK_AND_ASSIGN(auto helper, @@ -2352,7 +2352,7 @@ TEST_P(WriteAndReadInteTest, TestAppendWithParquetPageIndexFilter) { arrow::field("f2", arrow::int32()), arrow::field("f3", arrow::float64())}; auto schema = arrow::schema(fields); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "parquet"}, {Options::TARGET_FILE_SIZE, "1048576"}, {Options::BUCKET, "-1"}, @@ -2363,7 +2363,7 @@ TEST_P(WriteAndReadInteTest, TestAppendWithParquetPageIndexFilter) { // without row-level filter the reader output is precisely that one row. {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, }; ASSERT_OK_AND_ASSIGN(auto helper, @@ -2459,7 +2459,7 @@ TEST_P(WriteAndReadInteTest, TestAppendWithParquetPageIndexFilterAndPrefetch) { arrow::field("f1", arrow::utf8())}; auto schema = arrow::schema(fields); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "parquet"}, {Options::TARGET_FILE_SIZE, "1048576"}, {Options::BUCKET, "-1"}, @@ -2469,7 +2469,7 @@ TEST_P(WriteAndReadInteTest, TestAppendWithParquetPageIndexFilterAndPrefetch) { // in 4 row groups of 4 single-row pages. {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.write.max-row-group-length", "4"}, {"parquet.read.enable-page-index-filter", "true"}, @@ -2546,7 +2546,7 @@ TEST_P(WriteAndReadInteTest, TestAppendWithParquetMetadataCache) { arrow::field("f1", arrow::int32())}; auto schema = arrow::schema(fields); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, "parquet"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, "parquet"}, {Options::TARGET_FILE_SIZE, "1048576"}, {Options::BUCKET, "-1"}, {Options::FILE_SYSTEM, "local"}, }; @@ -2892,7 +2892,7 @@ TEST_P(WriteAndReadInteTest, TestAppendMapSharedShreddingWithPredicate) { {Options::FILE_SYSTEM, file_system}, {Options::WRITE_BATCH_SIZE, "1"}, {"parquet.page.size", "1"}, - {"parquet.enable-dictionary", "false"}, + {"parquet.enable.dictionary", "false"}, {"parquet.write.enable-page-index", "true"}, {"parquet.write.max-row-group-length", "1"}, {"parquet.read.enable-page-index-filter", "true"}, diff --git a/test/inte/write_inte_test.cpp b/test/inte/write_inte_test.cpp index 5b0b8a025..1dc000500 100644 --- a/test/inte/write_inte_test.cpp +++ b/test/inte/write_inte_test.cpp @@ -409,7 +409,7 @@ TEST_P(WriteInteTest, TestAppendTableBatchWrite) { auto schema = arrow::schema(fields); auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "-1"}, @@ -514,7 +514,7 @@ TEST_P(WriteInteTest, TestAppendTableStreamWriteWithOneBucket) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "f5"}, {Options::FILE_SYSTEM, "local"}, }; @@ -668,7 +668,7 @@ TEST_P(WriteInteTest, TestAppendTableStreamWriteWithPartitionAndMultiBuckets) { std::vector partition_keys = {"f2", "f1"}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, }; @@ -824,7 +824,7 @@ TEST_P(WriteInteTest, TestAppendTableWriteWithComplexType) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "f5"}, {Options::FILE_SYSTEM, "local"}, }; @@ -974,7 +974,7 @@ TEST_P(WriteInteTest, TestPkTableStreamWrite) { std::vector partition_keys = {"f1"}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, }; @@ -1250,7 +1250,7 @@ TEST_P(WriteInteTest, TestPkTableBatchWrite) { std::vector partition_keys = {"f1"}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, }; @@ -1411,7 +1411,7 @@ TEST_P(WriteInteTest, TestPkTableWriteWithNoPartitionKey) { std::vector partition_keys = {}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, }; @@ -1650,7 +1650,7 @@ TEST_P(WriteInteTest, TestPkTableWriteWithComplexType) { std::vector partition_keys = {}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "f5"}, {Options::FILE_SYSTEM, "local"}, }; @@ -1822,7 +1822,7 @@ TEST_P(WriteInteTest, TestPkTableForceLookup) { std::vector partition_keys = {}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, {Options::FORCE_LOOKUP, "true"}, {Options::WRITE_ONLY, "true"}}; @@ -1883,7 +1883,7 @@ TEST_P(WriteInteTest, TestPkTableEnableDeletionVector) { std::vector primary_keys = {"f0", "f1"}; std::vector partition_keys = {}; auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, @@ -1943,7 +1943,7 @@ TEST_P(WriteInteTest, TestPkTableWriteWithIOException) { std::vector primary_keys = {"f0", "f1"}; std::vector partition_keys = {"f1"}; std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, }; @@ -2235,7 +2235,7 @@ TEST_F(WriteInteTest, TestAppendTableWriteWithAlterTable) { arrow::field("e", arrow::int32()), }; std::map options = {{Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}}; ASSERT_OK_AND_ASSIGN(auto helper, @@ -2314,7 +2314,7 @@ TEST_F(WriteInteTest, TestPKTableWriteWithAlterTable) { arrow::field("v2", arrow::int32()), }; std::map options = {{Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}}; ASSERT_OK_AND_ASSIGN(auto helper, @@ -2409,7 +2409,7 @@ TEST_P(WriteInteTest, TestWriteAndCommitIOException) { auto file_format = GetParam(); std::map options = { {Options::FILE_FORMAT, file_format}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, {Options::BUCKET, "2"}, @@ -2513,7 +2513,7 @@ TEST_P(WriteInteTest, TestWriteWithFieldId) { ::ArrowSchema c_schema; ASSERT_TRUE(arrow::ExportType(*arrow_data_type, &c_schema).ok()); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, @@ -2744,7 +2744,7 @@ TEST_P(WriteInteTest, TestAppendTableStreamWriteWithExternalPath) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "1"}, @@ -3177,7 +3177,7 @@ TEST_P(WriteInteTest, TestWriteWithIOException) { auto file_format = GetParam(); std::map options = { {Options::FILE_FORMAT, file_format}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, {Options::BUCKET, "2"}, @@ -3237,7 +3237,7 @@ TEST_P(WriteInteTest, TestCommitWithIOException) { auto file_format = GetParam(); std::map options = { {Options::FILE_FORMAT, file_format}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, {Options::BUCKET, "2"}, @@ -3309,7 +3309,7 @@ TEST_P(WriteInteTest, TestWriteMemoryUse) { auto file_format = GetParam(); std::map options = { {Options::FILE_FORMAT, file_format}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::FILE_SYSTEM, "local"}, {Options::BUCKET, "2"}, @@ -3375,7 +3375,7 @@ TEST_P(WriteInteTest, TestAppendTableWithAllNull) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "-1"}, {Options::FILE_SYSTEM, "local"}, }; @@ -3415,7 +3415,7 @@ TEST_P(WriteInteTest, TestPkTablePostponeBucket) { auto schema = arrow::schema(fields); std::vector primary_keys = {"f0", "f1"}; auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "-2"}, @@ -3510,7 +3510,7 @@ TEST_F(WriteInteTest, TestBranchWrite) { ASSERT_TRUE(TestUtil::CopyDirectory(test_data_path, table_path)); std::map options = {{Options::FILE_FORMAT, "orc"}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_SYSTEM, "local"}}; WriteContextBuilder context_builder(table_path, "commit_user_1"); ASSERT_OK_AND_ASSIGN(std::unique_ptr write_context, @@ -3611,7 +3611,7 @@ TEST_P(WriteInteTest, TestDataEvolutionWrite) { auto file_format = GetParam(); auto dir = UniqueTestDirectory::Create(); std::map options = {{Options::FILE_FORMAT, file_format}, - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::FILE_SYSTEM, "local"}}; @@ -3803,7 +3803,7 @@ TEST_P(WriteInteTest, TestAppendTableWriteWithBlobType) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "700"}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, {Options::DATA_EVOLUTION_ENABLED, "true"}, {Options::FILE_SYSTEM, "local"}, {Options::BLOB_AS_DESCRIPTOR, "true"}}; @@ -3914,7 +3914,7 @@ TEST_P(WriteInteTest, TestAppendTableWithDateFieldAsPartitionField) { auto schema = arrow::schema(fields); auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "-1"}, @@ -4570,7 +4570,7 @@ TEST_P(WriteInteTest, TestPkSpillableWithIOException) { std::vector partition_keys = {"f1"}; auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, {Options::FILE_FORMAT, file_format}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::TARGET_FILE_SIZE, "1024"}, {Options::BUCKET, "2"}, {Options::BUCKET_KEY, "f0"}, {Options::FILE_SYSTEM, "local"}, {Options::WRITE_BUFFER_SIZE, "1"}, {Options::WRITE_BUFFER_SPILLABLE, "true"}, @@ -4681,7 +4681,7 @@ TEST_P(WriteInteTest, TestAppendTableWriteWithMultipleBlobFields) { auto schema = arrow::schema(fields); auto file_format = GetParam(); - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -4826,7 +4826,7 @@ TEST_P(WriteInteTest, TestRowTrackingPartitionGroupOnCommit) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -4941,7 +4941,7 @@ TEST_P(WriteInteTest, TestRowTrackingPartitionGroupOnCommitDisabled) { auto file_format = GetParam(); std::map options = { - {Options::MANIFEST_FORMAT, "orc"}, + {Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, @@ -5039,7 +5039,7 @@ TEST_P(WriteInteTest, TestMultipleBlobFieldsSplitByTargetSize) { auto file_format = GetParam(); // Set a very small blob target file size to force splitting - std::map options = {{Options::MANIFEST_FORMAT, "orc"}, + std::map options = {{Options::MANIFEST_FORMAT, "avro"}, {Options::FILE_FORMAT, file_format}, {Options::BUCKET, "-1"}, {Options::ROW_TRACKING_ENABLED, "true"}, diff --git a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/manifest/manifest-ed03e3fd-3ff4-4d88-9d5d-683700f78967-0 b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/manifest/manifest-ed03e3fd-3ff4-4d88-9d5d-683700f78967-0 index 1a0ea1ebabe6ab5bd9e853602fcc946f19d7fdd2..427e68590bf09ebcc3fdcafc170dbbdb8ff93609 100644 GIT binary patch literal 2290 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 E0p%zJ$p8QV literal 2747 zcmb_edpK0<8voW>Gh@vd%nYVcE<-{}MwwKboiMXY#;x1fZd1o?JIXMjlSrhd)F@KP zWh?3-C)r!MrbuO?LKj_J(v6BrH=eT9`Hb1;sb{mF^T+vPt@-Bt-plXzzQ6B#mYb&| z9RLc6LBLUWFbgg#{ig}wH#$f^Dy9fg{fa^sz+^bFSG~Tsz5LKRZnM!r`@yKd8i)KKI|Yt z1#M-s^)sw9R{imyH+`r}{Y_~4ouwLUuUr&W)GQYluiWR?(qy{n_2KJoonf0>W9~nz(#sK!oa21B-5v?Ez<~V5$NSch7lW8}}EUD%MOb9d*i!vc^&Scha*iF!` zNyENJp&h4l+3cOBk$8A&&=-YZyQc19xOHjutRNi=v{8fMS8Z>o7Q!zaoQ9e8dU9 zzX0H()b)Z_033$FC_oesqD(}f0W8?3$5j<#aYb}>VU#@r6z{qMWvrh71&?`jM%{6> z9sL4%`R5st6$hop!P;M)sYxzDffT=eA+Al5`q~%KS%e#mb7k`UOC0$J|5ol4nsxg^ zY;{G~$&?ZXGlKaq6e#LgTB-ryhY)TO$`xP(jFhEVu&XoxF;ePK#m=?=@6I?qnX;Pn zBLX&}uoEh7qxP4ADH>D+QB`EO)c`+ z<7m#}r#X=*ca7FQ`dOFeL!lBm&J|qG6)U2+y`k5A?^a0|t8-DmyhkANIfb53_GKX=pnx6p#at0DOI@p;W6$$A zLebM9AbOW6Q$?W%^G*=c1y8k0LyJzm`dX4(a{U4Sr<&%nu7Z^70qMvbU=8)68N}O_ z?3Kpfzm(@bC9#412ZhSvFj-59o-R$!X>)-43`S^6Lv|qN{oSb8( zm0>iaXr{B-{QT^jd$hS#rFhOh;v+FTKU*?aDCBw=S>JqqzCI$TZVE+i+=9vT}*jdzOmG)pzWw^mEg7}b z3p@6ns@uhEV2%ZWv0J{**WVlx8J4wG zwMH)P9?oC)@xnXbrRopY%vl{j(3~0;JT|7J(l z9pA)W{|9J2f)PI?%+9-*=rO0+l&L29_u8z^w?74nt2Z8XU^|fhXLZn-?Btm{i8upHCx8E?!*7%=4 z^4rXLSfPu{)Lxb=Oe(Xk{@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhVBd=x1!UUA4)czww%f{=>XF@Mvblde;GVVnHZE>_$3aQvj6}8{}>}fw$C@WF!^bd zrg*!EK51E^yKKUwY1>w@S@cb}TDEzA%ZYb=mgha)ex`ljCYE$dBaVwjnn{?IAwl|r OY=C+LV?O%=bejOD;&71w literal 1182 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOORpF)(Os)&Hwd>dM3* z~4sA>B^r-K)PT9F8{CQ|s<=gpR*Ka*j zD*RBbCz@*si-N{W7L7$r3=*M?x(iqhfp&>O?BWO7#mVtaOW>Q9#5XP6&cJXUg8+jB zLjVJk57dFC3UaXmeE{?W2M41Q6Ng0r19nkV7X&aQadI?p2sCg=G;pBU!~_fos7)y1 zpa6o3vokQbF*w9CFytoYWu~PTm*}P$8ChB;8>i?d8>boSniv?Q=_aNCxrRn2sm6)M zCPu~KWHtn zt0?g;klT6f@E)qgPSl4A%A=yyc!mWHKK)dxmF8#HzDhyJz;T zJ2kiep;Kd&6qWV`NW3RI*b8~;G~qm&G40lf$5}z>H>4w|3EPR zFWXI1*D1c<{i6GAci5fCyWOtKb^qi!9nFcczNd~)-S;$aYqUSliI|h|EXAo`nh(4$ zy)9-CZZA~lWC6`zCG4EaO_UfXCr%=mRL$Od> zjb%p`WH$6?q^wKnGc9X*sJ(a6`Cl0&91I~P41#^%tkxL|AGkVG(WUZp$D)Z{OsAM2 zPW{Djmy01S#M>mHvvh$12NM?qH^T&$Cq?0FbafWV%U)|SH4>g|9V4pr>*aO*i~sre zi*&U5GGw#dWW5=5%7($3!Ja|>X5mU#-l&<)QY`!JX6=5whSzD`@%(b#HrBbPehU@# zocnT~$5YVpx?k8=o*AMQ3>yTmPd#uU+;Y}|3+!G0yFV7qp6(^?TKxUhpJV4v#LRv) z{iU^xwX%L))0$Vx7vpn&bvxD@8oar`LRa+O$}^|eKdFsBWTa!rDBF5lZBE;3A2ZLk zq7`c1rn!?mgZd^flv)0Io9T-#3upXg@wd{Jj1}yQ+w{hKkJqh!o7I8W z7THNJY4#A2t`0lhCb8rGhkM0)+4nyemwvfsNv->VNY7L8Ous|+YOT8*dGh%4s+tdv zKXaencX;ufsWv-wbh!mE1GQn1)MKF)ckY_{7;V!2m9}@*^Cvk6{!O#xc)=vVD$&p& Wpv1($qp_ONfV1ffGqZn?vm^kFr-Fq5 diff --git a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/manifest/manifest-list-12b37c17-d02f-4409-8993-ac01a56210bf-1 b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/manifest/manifest-list-12b37c17-d02f-4409-8993-ac01a56210bf-1 index fbf9cda347397dcd3beeee9c678c2ac6a17a2c5a..d025ffe7d1c93759c3148d45c7c5cc781e1baea5 100644 GIT binary patch literal 1117 zcmeZI%3@>@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhH1+$@i_Xd;GTbP_lc8U?=Ld#VAR;E|ChmIE)&Bc7D4F)s=bW=|Nr03&9G+UCW9a5 z38(jZCKi1At5>xAe|)_7%8xt#%@JtdoE$K3ul0;$TLMyMMy+|X=w;HO%PDP6QH+WP V3=>!w76>okV_?3==fH?=9RRg}d8YsX literal 1197 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=nqpv_YMhp$Yn+y5qHB_3VWDf8Vw$3BW?^h@ zV31~RVQFTrYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE!(V1P*9P9MHn;5)2nI2rx)6 z1TY|ZLLF$TAkc*%AjHAJ=)}Zf5x{_56x9U*3`v|E4IBau91;y2C^j(x!vbm(ia02Y zm;{(4m;xBs85rCc9O4-mNDL96K0gM1P6mcJ22lryAwbfBfx!~&112zuL@+|xV0|)Z zieQp38lnhDIx#eWOl1T)6UhDojnE&x%nYAe_=F}b&HX=rf3|Ay*U2w)6*IFH%}iJm zx&CfcF5aU3L2HR!MTu{L+|Fy4FB(36c-4tPzWMX=)!EMLV|F>C5`D-rHFoOHo#!MYb=GdCTVsgAxfIc?RsDqAZKh7cYG!M<-+>x_jD zT%D=tQu(=K(ZnvMdrT0={$kMOX83l+*D}HM8lwTv;eg->s``puEMpPvfvmpZh{C`V~w&Saz0YPZx5o?xBSlq)THP$_j~V#>NwQS#I zUR!>%Tz|o(ChJ!(v)$KkTO0qGtj%10WO-SMj{9*dtMw~hnD6L4FMt`m4U4263$3_w w*VM;ollHH)y|bP_$vNG!AK_iHWx;qd63KJrY-gE33!`|%uz*@S@(;4H{^2-+Z}Nn@Q)Xdr)P ze5BCwd(4yxjgl-?mSQ88GEN1P^kKx}FbAE%{9B3iQP0*bv)o*HMX3Nqy8?7|jED&h zR6%mVqjc0n+4_AA6=xe5(=`axG^7!!X;*q%ks89t*#Ub4dyeju5s2+Tr&9f+JVKhp zE%g|>N%|1G_2c?8!SWyJ4S2T$%5*U%s^yxsQw~5njbl*uy{eybPG@B`kzk3O)M_6r zJMs#z4MH}g(^!CxWENggAC|3NAp;U!`=wkN>C#oNk+TM^UF7f^7PZSDgYL~OeKG1I zyr1p9)Y7$Q-PS8vr~T@5v(b&X|08?F+49u|S;&IZr(Do9q&z%mEnd6M%X4e-;lG^> G{fkdK{X~QS literal 250 zcmV3bAwtcoZ7Q(HD< zjlzcT{ha)t)(MgJeEuyX!ZXdINEN+!ZjF*4OC1YySi!AlaSs5X08eqHrDIklS~mRL zz#7>W{K}nJ!z3fSqHor#c}~s-{@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhN&C2*Bo0anYKb_y~HhT=Wk5w7&W%)|7GwfWnxfj;g>jI%KrcV|6_~{**@Rg!sMq- zn&Ryu`lMxv?y?D!rfplrX3;m@YT4%fEhpafS)TWF`dM3* z~4sA>B^r-K)PT9F8{CQ|s<=gpR*Ka*j zD*RBbCz@*si-N{W7L7$r3=*M?x(iqhfp&>O?BWO7#mVtaOW>Q9#5XP6&cJXUg8+jB zLjVJk57dFC3UaXmeE{?W2M41Q6Ng0r19nkV7X&aQadI?p2sCg=G;pBU!~_fos7)y1 zpa6o3vokQbF*w9CFytoYWu~PTm*}P$8ChB;8>i?d8>boSniv?Q=_aNCxrRn2sm6)M zCPu~KWHtn zt0?g;klT6f@E)qgPSl4A%A=yyc!mWHKK)dxmF8#HzDhyJz;T zJ2kiep;Kd&6qWV`NW3RI*b8~;G~qm&G40lf$5}z>H>4w|3EPR zFWXI1*D1c<{i6GAci5fCyWOtKb^qi!9nFcczNd~)-S;$aYqUSliI|h|EXAo`nh(4$ zy)9-CZZA~lWC6`zCG4EaO_UfXCr%=mRL$Od> zjb%p`WH$6?q^wKnGc9X*sJ(a6`Cl0&91I~P41#^%tkxL|AGkVG(WUZp$D)Z{OsAM2 zPW{Djmy01S#M>mHvvh$12NM?qH^T&$Cq?0FbafWV%U)|SH4>g|9V4pr>*aO*i~sre zi*&U5GGw#dWW5=5%7($3!Ja|>X5mU#-l&<)QY`!JX6=5whSzD`@%(b#HrBbPehU@# zocnT~$5YVpx?k8=o*AMQ3>yTmPd#uU+;Y}|3+!G0yFV7qp6(^?TKxUhpJV4v#LRv) z{iU^xwX%L))0$Vx7vpn&bvxD@8oar`LRa+O$}^|eKdFsBWTa!rDBF5lZBE;3A2ZLk zq7`c1rn!?mgZd^flv)0Io9T-#3upXg@wd{Jj1}yQ+w{hKkJqh!o7I8W z7THNJY4#A2t`0lhCb8rGhkM0)+4nyemwvfsNv->VNY7L8Ous|+YOT8*dGh%4s+tdv zKXaencX;ufsWv-wbh!mE1GQn1)MKF)ckY_{7;V!2m9}@*^Cvk6{!O#xc)=vVD$&p& Wpv1($qp_ONfV1ffGqZn?vm^kFr-Fq5 diff --git a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-0 b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-0 index a1bd3ded6..b631fc3a1 100644 --- a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-0 +++ b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-0 @@ -34,8 +34,8 @@ "partitionKeys" : [ "key0", "key1" ], "primaryKeys" : [ ], "options" : { - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc" }, "timeMillis" : 1730430023755 -} \ No newline at end of file +} diff --git a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-1 b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-1 index cb81068fa..83b8cc9e2 100644 --- a/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-1 +++ b/test/test_data/orc/append_table_with_alter_table.db/append_table_with_alter_table/schema/schema-1 @@ -35,8 +35,8 @@ "partitionKeys" : [ "key0", "key1" ], "primaryKeys" : [ ], "options" : { - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc" }, "timeMillis" : 1730430297413 -} \ No newline at end of file +} diff --git a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-0 b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-0 index 55f747076..d9a092c87 100644 --- a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-0 +++ b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-0 @@ -18,8 +18,8 @@ "partitionKeys" : [ "dt" ], "primaryKeys" : [ ], "options" : { - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc" }, "timeMillis" : 1744885904315 -} \ No newline at end of file +} diff --git a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-1 b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-1 index 9e0b0819e..724aef673 100644 --- a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-1 +++ b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/branch/branch-rt/schema/schema-1 @@ -19,8 +19,8 @@ "primaryKeys" : [ "dt", "name" ], "options" : { "bucket" : "2", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc" }, "timeMillis" : 1744885904631 -} \ No newline at end of file +} diff --git a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-6090bcc3-a5a6-4c51-bc5e-7af6498e5b99-0 b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-6090bcc3-a5a6-4c51-bc5e-7af6498e5b99-0 index 3469a68b195fc3a3cab71071cb8cbd42fe241063..4120d9e076f6af25da04f1647cb44ed578705f95 100644 GIT binary patch literal 2218 zcmdT_QAiVE9G^0R%n%|9dr&wf4CeHq3>9MM?Gq1gH@n?UOU89>=XP?pjoTT_G4jEp zA|t~rG0m|-JLtP8T8WIw(s}cL{L?$+}EHKTdi}pAMiDjng{_ zM$!tO+CkC7VEuqDO+x!=lwfsKpfs!(CxCHUK^vCMqjwouJz+`IXObZ)MHb@G9ZhSf z0Dj(r5)(xj%0I|reulKnX2bY!lI;iQjK&eWK0b7)5(F}^0UD)EdG;g#tMVF!yJ(?y z7eomLn8YO-tc)TVg3#qK$%c{mxF{mfPkDQBvdpES7=pq}suT0)h^AX88*(8Lev}&* z6{Jh8%!aa7Gips3^XQZY_3kOroxti-8m0fg6za67<4n^>j9MMF}n+)#rBR4 zV12-cvbZJqHbw#j0b$-)yf(lPO`%!{O*0rTRb&Dqe%7bPD1fSqg{5&zQVV`DsI~TO~mh1-OlDzOrmMFCYL7SbLZYm*ve_Y)uOVfbx62z^e_+ z!i@=r3~3A&J^1B1(RYrYp)hmn80D(M<%%uYfGH$Q*$WJYW~JmW#}3~UP$XQ_11Q~R zpDn*Y%Q5ugRDjl0w)m>hTV;s{DI7l1zaPxxH3IS%(&@3VjSaU}D0^7@{|zT1eE84= zv|~KN$q~m~?&pthPrk3!F0J49_^RrvpH{cz+I~Cwa!!Z*s^R$LbD=hKU3qwHzu-L6 zF>}&4rJTTmX(4trmziIAyn16a);3(Ty|_5D;_!IxT-r)6Ou2{;!qRkIb7N=A*!HtG zuFd+d>l+iT#D=Hg>Wk*f3-8|dPTxc~XFJzk-W&PUK0QBqJ0mt7I5o?CUVgj$<@B%D jtB=~MY8-dFA2fDcaa?fTYHB|?w~y$ayjK6Qy13&%E9>GT literal 2659 zcmbtV3piA1AAjd!9AjimXynr5PR9K*QW}>L)#sY9)i9%I(ImQURA-86F~x{%HsqGi zrKQB`Vr^7zrCp`f#OHHqB&>U^@SSGtKHDxm&pzLo=e*}VzvqAX{r>;|dB@GuK@I>s zj)a9!?qD6VU5Up407wJ~MZ!T?B9@F@0tZAu2JS!yv6sV3Aohp{1flHF5N&zuzePt8 zQDh|Rp9mBHpnKbBj&gW68pvbukw|P(2!vAKgE!j4I>e%yn*>>y(bzPqm9-_CYR;mW zP-*5C7E}{9jm}O5wrmX2lD{(( z_xcZ0F<%t&?gZ$_H?aV$MNv?{XNQmt5xGr`P0fw1Of3*gSD=EdbO1yv><_>{9CJ|& zBSat*U@6E8l3MBaeB!4Ftoc7d5k251iumz(5M3YjP>`Dy9v-$AfLQT4@E3gs%Q&%F z9OMViB9TScCq*$pPw+832v|?W!Z{q7uk3#1^9J|7Ed6i;k86 z7c>t7W6io0`j`2bRp~WfyGmV-J-lPq$l9{Y3q3cCi#g$Q^FI}@P2;y6gcJ4fq;_>~ zK+?|~-t+Cdc~z^&)2^~PX{~zQH<_+QH+Q6r(`SB>O!nfq>R2_b?f?p})rxxR>H<4C zycAX{!y_OvjpDzjtDZ%BXS=UM_2v6FXV+%?r%nt|!u3z`vz4JSu7bR9yznafdgu955d8oK?(`W_h?>MDpXxuuJp0H|oq|^pj^sNZQq!xR z{$BTVMpOp2>U>sW7c*KisTO1HVt<8jC}d2wov($Os5WwDdUKgpW=7A_%VV_s)9yLk zpK(ma%cuip*Rf#orOb0!?7r|ke4v>oP$t9zW4vh#(PoZV-e$toIwn&STkN@c`c^|} z{=-#E-*H>V<_0S0z+l-3XD;eerp* zjE%?3j$A?vI0;~orS_v^RBC06Nry(+pkJE;4o@T}V#0yJN-E!Oo?A904_%!peEe$m z@twQ;5!<%T*a!JC%@Ql5m9+?oVd}*h*~p(@zmKbnhs6uSh5<#cbLM<~o^@ePTwHKV zM1cxpt})L#zrVUav#hDGAf7d(+Mf=OxqBS$GM3vpN%9kvdawDW<(AsJ;ZfgEgYBb( zxxU#u`|fUy*m5Pywm~_D-@Lsk`dnk#xg)yen{qnV?d<4XG3nBo<1vIJ>2|W)&G(Y? zo*Di^`~5?0n^cFuRhtFqOH;-CpXQX38msO4wC#TRa&NNpXm+TzH^X9xyz{x4;f3FV z6Q~1yw1LbQ{5`lUTU{I)aw%qSXB7;OR>s4EmC*x{o1~36ZcXh^*sn7bgZH-uPFHJ| z3s0=Ow_7+W|70{;^(ptsiMX~8UWXnXkDI5s{q*gH_uSNxQNO4RIQ~{;|I=|;74I5* z+UA1r9sF%GjxANv@|(c$X$Cu)uleu6FEp% z2hLtNSG?(3*Ho|C>x@&~^W}4I*G|uCVyialgwr%IlKFS{!TAZd$G5Ee{`lo5P8jBf z(%h@ODrqO*DFrWNXij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3(&d-}QHmJM(W3h@j-~-QA$ZoODxSP zQL+N*tc|TjPK;nj!2JU;5^gm1Tmnf6@ep6awGRED0L5IeYhb9WpEEEuhx$6X1|iZI zW-0_GG2&GRJA1hLI>vhnLR!|}ip(=`GfG;mWO86TfZAZ3n!Xpl3a z)PZXUg)lzNNO=R83w;p54l@BBX1IbMpXtE(bPe(Y7SjQaAs(21gBGCpOmOoI3Jw8> zGE%yNxs7lThX;8ABZ>MRLzoNCAS47GBwJv38(3<^){21Z-{kz1)MTM5U~FLVB^iT;uA5f{^4eH5b(eYA zFF3ZyeDfx2IaLm(%a_y?vsYOey@)z8ZE9AQJ(}hH9XSg5tmv#j3{`l4Kks)*AmRCwjDrQ=LQq1|# GgBAdI*C;Xo literal 3159 zcmds1YdBPE8-8c4nX!h!V1_|y8VuFM5F1fnj+dm2q%*=+Qz0EpbTSetV&stRyonSs z`a+tV6FMl>s8K|yY3m?VD%H0}+U@V!>e_$4Ki`k_u6I4_Io$X2-0$nM+*SzyS-dh9 z!Lq>|bgLo@0|1nX2v!-7U`bdiX$m_a0V-gFS*X9VEDrTYBM1oA21a@?Q@TUcpQQf_ zf+qmzmm7Yfaou6y&|5-K|Eq3Np89aw@RG(&>x$^L*-+<5 z3SZ+418m<+cNosW8KFE>zw%Z@c@vP!a-<|8m1j5w7l;H=ktwO?pwy@6h}8TShClH5 zf%(6Yv4IZ(;UOd*LggWU8`k7deqO5wni8bc{7-8UQDIEh`VoeIY@h7rkNkfEX$Cqo z`L8oW;m}bv+M^blEPg_bKv@;RI+3WI5DbBHYcQPhz3(+315Syaz+qf z10jHo`4P6cXareSW-AUM!ycqP{V6f5!te8}NkURzm(1aL( zpeqS|j9JDeEHmR@Oku!N8XIA%aVEm1p=E7g`a}lQd*aAksz#5DtfoqiZm5!N((SQV zDJQ#h?Nr9UT!e5e?Bm%2{5@`Q){PLOk~YWCbG=&5_r+Vp^WCzR?(r@y2_18dV%rQ} zHZk3yRKKjH?w#L$!MnQ-CxkZ_1!9QdA%F0FZA$KjP(<&J?lF!p(xuq$!|#A0fPG@L zS%01sham+3PZ&?eUBYtcI*fRQ9*v*J5a+R@1P)mKL8@p zZ(k1j#sXd+ug}clCQntGg8YAzLds@hbf9FiD}rDMoR{9U@Wixf=7}r7gvQIez=*m2J?TMURnc2k4c>z0Mh;U1^WJp{!?dEap~w) z)CQkr<-mdq-+q4iGhkx(1+bwB`EGE6-XH*Ko1?vGb0*waK4@5mBe_|^l1zi}-$iG( z-K>24PA6ELGX8d3f@S=*gq$D?1*D|;V7;saUXVA)ytFgT& zGm^v&7UCBXA6v!ubvOMQ`Psac(srnPGrb`%6PeSa z%Zp+sTjhcoAOKbVeB+>|&G0@+^{QCE^)q3~sZe7pUXv%QEot96u$QSkS{yst zgmfm3oPOUQ@9aBVxrD^1Jswoqshm2V+-gtPIN2~GkxOtRC5GXGZo}Iy-L^S#>~z+w z=WQ*8o4lx82iAL$uh}$t91jxqau^2dmvDB+X3u&a$BS<0_nNLq1D+cmit)JN%pRj! zbpmlCOiWFa-$)h=S&`+rE43PghR&zFB>; z_$p;tm5hsJzA4AdEThkVZ*cpxEb*?pZ7#{XwT9j{Se|~?KDX;)!GpKRrMy+8RnJPb zhvG_dF`h_Z7Ag9nxe^>m8y@lZl7!pPB@e7Ltg^8b&eO_8)u}hq`m0lqvB#5IUFtPz zg8G}D=MT*JSL8rxQtFNDYuAq*zggk9CohB+yYN9zSVir)_$?zlVEc0`XNOs#)xu?q z4!LKSRmEM7r9ReeG*1|Hh#iYej5V(9?xuK)d=CYraqnt%HiV5v{4qkxqva0MJg+;=HX%NZtRWGgW`l=UTy-i*SKvS` z^$-4D`s1vun=i$fMnH;&8|gqQ^4ZwgmPVocDhnfB5svXSWsC z&L%TH93{sp0sfWuw1X$Q2|DINmzMI*)&;j~oivSpBg*f7ZSDFnY;<1mi(7P_c6{Dg r9|o}*ju>g)dw<#V*U__)W;_W;^r5Q}hd6oy@v+p7Nu?_K&q diff --git a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-list-1c1bf05e-c1d0-4513-bc39-b2cb7e2d4973-0 b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-list-1c1bf05e-c1d0-4513-bc39-b2cb7e2d4973-0 index c9c696013edb6e547123113a2456f4413915486f..5a21b96d154e49280f41928bddd1c3074e448ea6 100644 GIT binary patch literal 1006 zcmbVL&rZTH9M;6MCdT*xJ(GDS@laR|i`{0}h6b`UWh*eVKcp)fG%6ddD*@4<;<3?}v{-%%==A0cSzRL(l*zO=|0WN(1#X z<717=?+MeUG)l5mTZoNW$~YBF(MJ)B!yGgRkKan9hq{hoTXJ*h6{P|cjS_HSU_>lv zq7sq|9;M?t$}##CRGh70EYBoR*O5+?rc>%|MCu45cMI$l?7D_4BM`@hZmIf5d4$x7 z8|pC)i}WD&s>dD91Kn|eKG1G zyqoQ=RO#Baud9`;(tdTi-soD~|B?OTWbx{PEM&p)LoR3Rq?~thxK{P31n4Pl`oIMi-!$5rEP~Rhv5q-D?gwS z?2=qk3u~W7ElFvPR+;b^=mZd_O zK$lcvO)MCtGKokS16d#df(Sgtm6ncKm1x=Ua|6_r2S@}YcayLKyEl7D2b^)L@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhCPaR51fsCw|+z1E9)N|rR$iEFlubo|I6TUmWkm|tFZJ0&6ofGo9~fIeRJ%?nJvz} zTW;U}DDXPgO)-$GKEL{RuAoV9dg}fM_H2Jn9$yexQkkJMJvnW~f&{0`R~n*+1jUNh ay%9*>sNz)UA;HAR#L$qGZOp)mZYcobID2^j literal 1458 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=WMp8HWM*KhYhsv^rfXtgo~CPInqsMIZe)~{ znr38fYLaH6Yak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE+;61=bl#tTV*o5)J_l2@Wjc z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DSOhR&7e#eJ07DWdM+1jI1BXNd2S!*xZNd;| z5@3>G!tFAO)kE!NXJBw+aENDMATh*&`urI5IT;w@7$nw#4QT+94h#&I;1FU2lR$z4 zhy{Sy$iN5~c}AvSeKPnJnL!kR&4Zc>WIHinXFC8>5hFMuC3rA|vM?yQ3WyYh-um-@ z{pAT-n-nB(ylC^;K7BW;ggHrb$jr4%7;={tZGUvbPrZSs;P9 z*SVvICzkZ?d{x%6=}6ap8EVc7gUoBZ2M#ctI>X@AzoX&!w%tZVZB28UwgY}K6QKx)?iNu#7N@jcD8-=CPy91NBf6MMX zZn?&_ulUY2d!aYspIPUg*w6ds&TFBP)s9~3ULU;b?|w)qFj>%gJTr^gdSBd|s0Be1 z0op0gA6cDWpvZas=Od0uQ#`-h2)*H(IQd>!=e&mr$K`MEi+;7a7hIdsbA0wBshph- zIx-RSC4D^DYxM>hAai%blO z5Ubpw#CYp-Rrt1~-;8Fae;?gtK768b}<@o NHhp1c_78HF1OV~myFLH_ diff --git a/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-list-779da483-08f4-4271-8a62-d6576f56bc80-0 b/test/test_data/orc/append_table_with_rt_branch.db/append_table_with_rt_branch/manifest/manifest-list-779da483-08f4-4271-8a62-d6576f56bc80-0 index c9c696013edb6e547123113a2456f4413915486f..8b4e5a62e664879959b77811b8cc87e4b90bce40 100644 GIT binary patch literal 1006 zcmbVL&q~8E99Hn`K}1mSV9uk*9eRsv#A4dY+D>tlkhR%X>7S8i;vB`75PSlk#dq-y z1P?ZIu5}$ccWavOPrmP$SiRfrodbHuQzi3ZtDU$3(&$v4!>qmxePMs#@xae zqYlEG*=|ZLT-(-FwUR~JuTGa6U5fiZvX}4AUY(x?%-?&+1Wf|UgRSTHkNaclJiVSY JA72ieN1r{YL%;w4 literal 370 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 E05eSK8~^|S literal 2886 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 literal 2887 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 OJbM(HWfYjuJp%w-Y3d{Z literal 2890 zcmb7E3p`Y58-LH4G0x1QF%6A!nPjnL7|fuw8e@jk#-O&oXqYi0mq8asN)}yQYd005 z#AwTz(n``~7238`-!Y@U-7oF;?fL!Ad*0u3{{QFsKbQCQ_I1+* zfPf=m5r_xopxdbg3;=+ng+L@6f+b=p*h%bw2q=IDEKs~IK?B933`Xlc! z5vIUA@FxMK09c-}c|(m|1p_jcupaeI3P&JQ5y3_zh!M~n?L|T-ktmoZ5Yk07hDhK@ z6Ns6?G)G2=t%DuYJ|x6}PNQ2#uL~wo_&fju$})&nq~VC_G*IV7Li5r>Quabb^rfKh zBzg%%0);SXc21wN{waq^itGpOw|1EBZW>X z5Viilku?4j=`RY#r(r_DM|OmWP>@OL_$mB^{cj|hpmot!*98r0ijEo=wNME-)u;iI zJ_0QwQc}u~JUO*Pcv8z=;?X~3_eI#ZB&11(Uk=Ny0Sr1AOQdH zfS^1tV1w3#4;H1U92U)0IfviJf+jX@f_2dn0Jf3pv@A2_f8@3a=|!p{J{``q4tkiDlrWH zdm0l0L+HbZ^$(Zvcy<^E6ny@S_{nV2!T~SJl{O@n$c-gowjS z*B)}s@fEDV&}Ri3=~9=v1uELLlaqV~l#=5PQOlOQS=1`_3e!$jmc2eZpEG>zmScB{ zgL0tLW#eu6n_A7x^PwBR+un2AD4@OQDLG)jVqxo0)WsdG_ZexO1@8HUOX(+@>Dbbe${y$G8Z^7ur{v#~9kH(eu_wE&dZ?Iq zS~ubbajc_rMH$=?;y!bi_g%UF^@jYhL3mW#Gich=`6az=b&^;es)DhU^Y1E0-QlD1!i_2RqC;?ugO{#>8AlYH?D_k|hXJ>rsmmbSla@}P(8G^mxhl=R0<%R8{& z+90p<>^bS-W@iWgZn;2WM&-$b$^+$VD0GeUs!HW$2 zvRm6c5!0M!`TGWm)DzxC*}Rswt~9pRs3`nSuXzIV!0JJnM=7J{w}IV=$pNN;5vB;I zp0Qmx=5%maQotrguFymW86DX);`dURSb+c;0;p}ugPN`VQAaC&I{$4ZRPIs93KWKN z1`SxAse0jguBR^o0;S5)4i~5XP9xFXl^>k`S4U~yFQLU zq!eM+07h$+=)|g##XL4 zWp_eT`SJei$gx+2qaA~0HIY-IZ^V}P#e~U~;lh!O#!$~Q2hGkuzw@wDrm)u=&Fqt% z*;Bbs8lRqju~&S}&8*A5`k{r*Ywr4Ng_Obc&ps}TYPLEjxBhLP%Q@VFO`O~i3(xs( zm!(!E%Z*L(&=CZ*uUZSKr;HXe1!s&tV_5-UMuj+HU?S#x4W}g?<*$9c5xjp-;ggCP8ezJFB z!;7(C>D7%5Z_U3|1ody0h3u*BDzu#p5Kf3W|ba$T7_O|Ro1(@H>od77R==a9PO(KIJ-j6R;PuY zo_X64{^=o+NJ~vhkUzYcCCglfzjvq36?3E`rYP0p(QtBMs>QvS1oJ$H;>V+su0he= znCjyjHaZLVrO#NxG!EO|Rc4mH9aAK;ojpwIpY;V72rNyT7^X|I_q-bz#NMk+X$y$sIvL;6JoLn->);<8-4dc%Jv7jop1FT8G_j_BWh>s~hXFtC=eoF? zX0EnT;7ZwUV31Sat^t8Jo!(p diff --git a/test/test_data/orc/pk_compact_lookup.db/pk_compact_lookup/manifest/manifest-bebb1b9f-3785-400b-8f58-8e6902f5016e-1 b/test/test_data/orc/pk_compact_lookup.db/pk_compact_lookup/manifest/manifest-bebb1b9f-3785-400b-8f58-8e6902f5016e-1 index 1518ddb1abb504ddb4579e51295673bd4d8f169d..2ee0906d9d30aaab79d95fd06bc902e7c3094d8c 100644 GIT binary patch literal 2295 zcmeZI%3@>@ODrqO*DFrWNXij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3(&d-}QHmJM(W3h@j-~-QA$ZoODxSP zQL+N*tc|TjPK;nj!2JU;5^gm1Tmnf6@ep6awGRED0L5IeYhb9WpEEEuhx$6X1|iZI zW-0_GG2&GRJA1hLI>vhnLR!|}ip(=`GfG;mWO86TfZAZ3n!Xpl3a z)PZXUg)lzNNO=R83w;p54l@BBX1IbMpXtE(bPe(Y7SjQaAs(21gBGCpOmOoI3Jw8> zGE%yNxs7lThX;8ABZ>MRLzoNCAS47GBwJv38(3<^){21Z-{kz1)MTM5U~S0imI)2lQ+l7!S+O zto^sXt8JT@P*|xGhwR7QC*PP~dzJD3f*a>lYgS?I!__mgQ`T)tnDx}lMD_iu7~cFx z3r;+YVzKIx3|X*Z!i*gc_&+ReW?}k&Uq^071#{lN*5eZoYB{f1!L6Oa_y4kShMZir zi0zKv`XiYF;$5HaO!iNSD%f?tK6i(EYOj literal 3284 zcmb7EdpwkR7ymsoW9FI3Wo8--Ng8(=<4z&WxTTcE`|ken{GQ+EJm-7P_k7PekEi!1Bmf9l zG6qJmfIf0vPCx?y$kH&1jD;~o3>99&4u~i!;;)VPlL%6XKZ1Z^6cYs-F6j-ZUN-18=;_*Dr9J%Nf3L8Qa1Q4{_8q{hfdeXY$o z+wZ$9ytZu5J#Ix+KG|!msNO9bePx)Q;Pxcm^WVMQ%LefI>O8ABc99lVnRT_J(=DSr zn*aeJJ0=(9h{&o&z%Gn6AS=KqS0XjDvSR#Pw3_5)h=}|b2^LFbAYgd{UILcv1wi%! zu%M42=m>&Bz%3%k_<7%OG%^9JkPkAF;Xst9AuA*qt@o}H>tf*dRu~3k6tZy8KM0I~ zogfF~oP&@=k|m@fIuHS}L4;=1!uL+(w1WV0GNCWu-#q{$6o7xYoH77}K(3jtnG1m{ z9Trns-T+`bA_NM_`U!{6O8_7n4Q!Qg=xDoTh^8KpippPor2vx`J}=+i|L+R{`-Iqt z$iEraQGj?Z5mzFC)Vw$Wi_~K@Ay9+(N+FtY-zR~ElVY0$1Py={iT*y#Y+m|3~XLQKiDVTr^cym*s9jBBEt6_-PRM=7> zpQGWzEzCi$E*%PkO;rh48R2e{cj#_ zS@3$imbONl)G_LNb$g_9YQ;t|G`${^KH413U(tBrwyE^#pdG@2T5E-%r-7RGCoP!x zH|K)0$b-F!%jn11Zf)c{j4OipA$halJlR|7yRa9(Yl#KahM+xj)J zZe0goYzsSo>PPp*B6!$4CCfWj5c_qrf^4N9in9y>2ygEvQ}iS-LuDr@9yV z(|)3DiT?d7>=Nu$E6rCNqjmHQSZ8tWJtM?9k8-9up$-;1_8<>0wjR8kJ5x=J~m``cG>jLEC9pt(nI` zhZ^$NF-Nkh*SBnI9BKHjeT=Gylgz9wE?5PW*C4+tUZw1v;Ma;jG0r{Pu{vORj~t(L z!d|MeO6RVe&sgF8o}eOn@Nr}I^{BZ$auaVBq;lN)hj9EkqYsIzy5}rwX#$lJG*6fQ7Ps%Zr5hB zPjd=`C%T+d6Vu-IO`UgYtWGSvtek(vr@POt%(#Usb7=bbjg8*S>alv2O+|fX0VAqH ziYT;xA8nJjV_RKxqOnV1h*&Gn&1+5^8mOlz6`G&(CaXZ{fr5(S{z+$UQP(YHed7*X zsNljZV8;5FcOHmLIVM&?H|QMrz8Y4n)vR_nC2 z$8^~2L9=yqFJV(@D&D=++pW5vdwAfAyOzhgr#FZ67!4v`%x+pwQrU*B!!e@xlyzl~ zJFLn#&b9oQB-W}e)E@M5O&g6VI^v;Q_v~=HkNozIArXIeti+?o%iRi=lk-grQ8=#9 zS~~LRqO6M2tE~06RzTT78#Xvx&DK-Mjo7L$uh<&C&$r6+y2$#hpKR^*Yd;M2CFe{= z{TA0XWrR<^w&G@0++$8xe({lv zEv_W{28OF-X5?+N@7z&VeaJ>R^2wCtXi27Y{(Tc6ZT}p6(5hxt+b-3k4ws%4Z?Zm` nI1>|oaqhr=M|rpeN0g#wWWY2Okk*+%8R9c%&}dKZPn7-ueXI1D diff --git a/test/test_data/orc/pk_compact_lookup.db/pk_compact_lookup/manifest/manifest-list-32868327-8690-4675-8593-f8c6ade64177-0 b/test/test_data/orc/pk_compact_lookup.db/pk_compact_lookup/manifest/manifest-list-32868327-8690-4675-8593-f8c6ade64177-0 index 1641b8d3485e426f40193ef4bf9b8bf36de54d8d..34248ccc88e8fd0aa6408e7ba78bcd0130a1cafb 100644 GIT binary patch literal 1121 zcmbVLy>HV%9KBj$VPHTNV&y6!hB!Eslr)=(57okUAhrXdq^GlePL2E#*%zcxd0_3@ zfxn_-M?^=&%)*9P5DYBLNcciXOj1FK?7{ZEk9+Uu>p0KWDp$z!G^u6oK8?uNO9zmR zhZMG8O5G&&U=_wBT6)ih#N{88bWkJ3^FFN&Nf0G*Z6Y?HF--}hobCrS^fK7mJ@~DJ zd#G!w9iv#BdId3qd36rBr)mfrvX17EjHN+5SVo!ZlM*US7BGgbV_8vmTDCduxZKGT=gI2VZ2N{qaIx~a8K6k@^+muquC$nb@}l*P=>8(xZSah z(k^#lJPJct^gXSgq$wE})dY-2d{WbOIO(XL_p8vOJ{g4!wm38I=jCCU?H#1cSXKT~ zE{}BAZr?}N3^a4$!(Xx}{R}+l%G|flo6g zI@EFM&bBXZ-f1?(+mhsnO~26;n{;biy5%>d`W6+X!wmskEiM7@yZ&uM5H1360la*l QU;Fg*`sv3_u)b*d6G_f#>i_@% literal 1574 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 I1`%{S02tqMP5=M^ literal 1529 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QmS${_YME%DYigWosB2Vq%=8YbYcU7r?;8AQ8%_yMWaYXq_0uI)0#aoE&|+0)4s?eY#j&!X&^X!GuMe zL4ZMmA%FqN6Y4-y1%WOE0U-_!Mkgi?i2w%dqNpwiU`XQRXy6cN;E-tGPzD;q4{;m^ z2ZIn3$QF$7f!a0qXN((C1`eh+`1z19F@g z8i1q&1A`>gYA6LZ{{U7&hq!jt zT=zG8y6v5^GxexatLrPxoiTahRy~idTz1>h!FG4b!I%}@)0@8MZA&SUIO;i%g(+_x zPa}8pcXRo;dDHpznbj3OFdek6*&xU=`;SWc>bs6pPN!(zKat}Xcv<`NUPI$05nCkR zJ?qPTn0D%|YRbNuCyVx-?Gec|E;R4+-H|y>^}gRW%Z|<24UBD2C&n_IWo4M;rK&MO z{Ve1E|Nr-At>^1b(Djl!lGuKH?TJ2DZ?}mzst!&K_FcE5sg)MDTvFfm@si|*B-z_Zfd*pB zEEKX`m9_TXiZW^LU2y#{V|aH@T13M~hldjlHgq@0B~G5sXXy2!^AdB8mF=y|8yI;Q zVoxlY$zkL2-~rpdc*D5#k~Fa$_Qg6evPV;tyWF(6UNA!f`Z7}}Kf^JpL`wtDqr3+M z*qD{q)vVM~-Z|^Sy1Li=l5?x3w$5tGc(7StQ1*F#x1d3^k!4eWKuEj)g|eC)HnAns zi~<>g83GxS*H@@m7rlA-RM}qWa_8MiGEeRuU3}bj{p)EyH*}wI?wc6BYeVq|;|tn+ z`u95?&iW^jBrey-)*R#$kH#y(h*ej>H~LDNc!CsKUZ zHf=6pQ~TNI^=x7L{H4YlzJEP;NKuP%3cq{&P1TFHC;NWcdebKS+r=-;?DP0Nl7tNx zlo|bHl?nAL+@xl0Tl&&|hvudE7FBPv{m)M@?`l^2dv>z-Z3FhMX}($vcfMF8Prdhx zw=(`eV?;`K4r}`~VWpM;hrml#YhRqJf9HIy{Z0G6M*&YoUOG#i(u|U~y|DiBtTMN- zl*O)=uC|FUIajOi+x10JX6c+oOt16)o>YHcWm|IJVeactt4(Wvc?5874%w zX2A+la2BP*CdxH#YN$9{!PvfqG+l=}lA3O%w-%{G6M7q9FSU+mcp?IFJw|x#R4H^0`<;qB>e)|G?OVH9q4!>bhy9_eu)?DFh z!Y(wov)z^|TszKHy^>|xuTEDRU5WcYa!?-5UtO3H8Ximwj#Gje*?D_>d3wG7Ak*jk J_~9g1KLJhYMUMag literal 392 zcmV;30eAjSQbW=L04TLD{a_IS{R#l~5kfFfskQ+yGcz;MRaKP^!6rJ9uHW<5B+M5# zqG45L;P4ow(AsQQCJ^=UzI-0vO+*GW05kwJ0B>!J?Ix$*?6%eCzWmm-3s+mN=C}AF ze4M$vx??@>6Tpf<9+hLEpe8AL$jYM$I$4tk5Dp=Rh(?TPlS}BQDs-JVvGrISKb3pO z+%{qJX+B@>9do;1Im_ATk5liu_2=&HyF1kj0vhF$W-*e{11NU6OIo0J{<_U${N=B- z{c!a(oH5DD4JakUD3|n#AR5CZ#Rw$X5Sly$*(5W;6rkt>Ia%TW1U={rNkgG8H0Z$r zNkVrGdeA8iUf6|EE}4BEn$asZ?>eDGfv0XgrR%c{h>KjE@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhUF33m7I!S(hfTQz2=Ry{GYu^d#YRkO%sc%Ee(S+SXsaaB+UnrfLDB-}waNvP4 Ig9y4E0E_x@b^rhX literal 1527 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=l$w-em}HrzYiw>|s%v6kkfdvoW@@2pk!ogX zV3cNRU}%=AYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE%eh1*YgqOwq;S5+(sA2_`J! z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DNCYro7e#eJ07DWdM+1jI1BXNdhceI@eu(2Z zI2eSOK(=6n57c)0h_i#e1ojlfJ&X{0F~xx*ZVV3b3=Aa34p5&TgFYt%LmY$H6d=cm zp#exbFfd3$t%g!y^ABJZgs8_)0^{aC1DJ4N1ShP728OLH3`%W6A`M4#jW?KWw4TIJ z&vk#pr`z5sJ5!G;wYt92+!>Q6Zq@VX%4N459c*`}9E@4fJ-z9B-nNtyiKCwLSeWwG z@icNbe>azpn>U?bpIKeu1Jgn4nhk<1v;U~1ufFRz<#dYX{S!HUftR&E?=>`D60t?{ z-Lt;jhiRwYs;2Cld9rBV*&dNh<3jU3-yNCLRPXz3v+UTM-N4ucbz&^TURH)lr&QD% zG|w^`8!#6$x;3j=`$Zqy6I(BRSi&*v&-?rd>{UJ{1vkIUwwY+uc6nM&NZs{WV^#b_R&TbQV8P8F>W=$Q&iwSjll?&I>$csVcVz;9rOZ6N>_C=jh(>lNYxcs1 zH8+JK_iyE^O5|XZ75A^?-#4wJVIyPG!^Q+jwl93uJ90V#o$ROBC2W3qab71c4@2yU zB{Ml}Tpm1N+ZS&bmtK-4w!^+yCr0*YigK5m7S{`ANHAY!3gu@wCY5Mqka>dlfB+k_ z^12#F<~9St1+nXR0z*tUSVu5+edhkhrrHr{v(~oo;uNEB0g0x7Sl056Q8*^O*YI-d-M&AMr**q>Z;#kjcd_Aa(!2x0KbJCF|F>b@nUOyo*CTzc7jkV9 zXr8lh-HMXdtD^p~zXbi1(^o9m6@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG z2FsM-z4nrDjQOexY<~qJ#qz!+{6J J3?k@u000XobIt$& literal 1527 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 IK?L0n0AQeSlmGw# literal 1527 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=l$w-em}HrzYiw>|s%v6kkfdvoW@@2pk!ogX zV3cNRU}%=AYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE%eh1*YgqOwq;S5+(sA2_`J! z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DNCYro7e#eJ07DWdM+1jI1BXNdhceI@eu(2Z zI2eSOK(=6n57c)0h_i#e1ojlfJ&X{0F~xx*ZVV3b3=Aa34p5&TgFYt%LmY$H6d=cm zp#exbFfd3$t%g!y^ABJZgs8_)0^{aC1DJ4N1ShP728OLH3`%W6A`M4#jW?KWw4TIJ z&vk#pr`z5sJ5!G;wYt92+!>Q6Zq@VX%4N459c*`}9E@4fJ-z9B-nNtyiKCwLSeWwG z@icNbe>azpn>U?bpIKeu1Jgn4nhk<1v;U~1ufFRz<#dYX{S!HUftR&E?=>`D60t?{ z-Lt;jhiRwYs;2Cld9rBV*&dNh<3jU3-yNCLRPXz3v+UTM-N4ucbz&^TURH)lr&QD% zG|w^`8!#6$x;3j=`$Zqy6I(BRSi&*v&-?rd>{UJ{1vkIUwwY+uc6nM&NZs{WV^#b_R&TbQV8P8F>W=$Q&iwSjll?&I>$csVcVz;9rOZ6N>_C=jh(>lNYxcs1 zH8+JK_iyE^O5|XZ75A^?-#4wJVIyPG!^Q+jwl93uJ90V#o$ROBC2W3qab71c4@2yU zB{Ml}Tpm1N+ZS&bmtK-4w!^+yCr0*YigK5m7S{`ANHAY!3gu@wCY5Mqka>dlfB+k_ z^12#F<~9St1+nXR0z*tUSVu5+edhkhrrHr{v(~oo;uNEB0g0x7Sl056Q8*^O*YI-d-M&AMr**q>Z;#kjcd_Aa(!2x0KbJCF|F>b@nUOyo*CTzc7jkV9 zXr8lh-HMXdtD^p~zXbi1(^o9m6ttM+?vC5WDcOt5 zc8q*;;uXXUWaSy)m8wBx$U2-sQbvP#u!u6%cLh|K%wY^$N3x8(sNJ!R!YPkH zd>V!z?|V`|rWB9zY63t*7CXT@Qe?R}`rNLBt(E|0Wl zw-2B-1x;P}@E0r!9|I4%G&lFvU=M1`*)B`XUAvvbVkOhGcb(2RIv4l<$o*_%{MWgO zN8BeLQifv>Q%}&K{JHt&mv{Z~)9)W&*1wA1R-S!-ek1H>qTrQE#}SSLpQKE3h~w0p zrY~*3Y}BQlYSob%e!U?z$ZoUx!mn3ryF{v8ZHeNhuqlW_evhwJzWRBwEo{tN-2(F^ BVb%Zu literal 1531 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 reRy}RUFkK+dex3d=lE)CaL}pwng%Kr+lN1f5 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 DE6qYG literal 316 zcmV-C0mJ@JQbRfd04TLD{a^?Iod^J8Pc|wLjp_ja0000jU6uP8zsMjLe0N(Fk7`LG zXo&e-9SDSasb)u8(`s3?1DOS}u!V)GKuNApus{#`(=1TvPlX;NXe4y6(1Y$&csZ^I zBs)NOG#t@Db$rrHVx;5(6uaCdHPAbMUF5gz%THA-_tVt(+brcX=6;%yLs3$mKpPq6 zxTF`usE|vF6*ThUVns+mTpT7M37|#~pc;P5T}ed0H1)Pyf9~+cdt$w>_T8=~r`E2f z+2_9e)w~T@U(V*g8)kTE<__!0rM%DSSvav_AW1m|jaBp(0H6R*aiyhWRwY_C{M-OF z@|eA(1I{?r@y&!m_p+h?U=j|J0|~p?LBz@T&3ZM@$=SgF7BUE+0uTilfPfGp0ssss O05A!H^aBG=QbQQz>5YK^ diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/manifest/manifest-list-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-1 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/manifest/manifest-list-4c6d8995-1be3-4d3b-acd0-d26d9bd7fbfd-1 index 2dddc4691366265a5d86b86643ae4fc76af6cdf8..d6d5f0a0dd3663e0244e0bca2d6e79c73f512ac0 100644 GIT binary patch literal 1114 zcmbVLO>fgM7C_|zQFX?R-7Y8}mE$3mDMx7s2sb;EFhP6PoWqN z7_33g+=x?Hf*}d!*71P2+0Tgg%Ow3iX5|6#f+#GH#QH2`oCucDdmi&?3~TMvKT5cT znwHiu)6KD$7Ydk^rhq+7N7z&hG=;>1dtrYbWogfIC_kFPn2v!JRYfY!G_9%Ll}Huo z$i4ygP-)tlokqZxt=Lo5f0T#uJn@Qp49&zXMR)SY?G6Qt|4MHt&u)M+9bL!uhGXVV z*@oeX@58k3as7mIGEA%S1PiiBjrZZGqfXK(LCSjM#22uZF_TV`AC^_$M}~qm^_p_C zNKc&l0kS8ciAy&8Ig8w7$bv4+O?`FLLi%F1i&9h9X5(qTl1bX%oz6Bo6Zikfon&?N z>fDGj_ulJRkdP8iLG#PE@1M>-FXJB{4jx>5?MiP8YwsTY1p99!uv#o01tj!(EEe*{ z;|idMs(x+C`}sqVOy%C@_?E3dzQxCE*I00|TdQc(i8!HboTcQ%(U L&)c`wX1#s^X%S~d literal 1261 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QXl9;jkz$^rn_`@rsB4mHoTO`Em}07%mXc^; znrv=vl5AwDYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE+Em1g_~xT+_qi5;g%g2{tU^ z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DSOhR&7e#eJ07DWdM+1jI1BXNd2TE8l0mA}n z6N)$}jG*G|3=D1z4)F{OB!&o3pC5xhCj&zqgLoL&kOUy<01RKC<2mB3=JUD7#Tn$1H%ufnLp+-GYGlz3pXs!HQq3*;f2c~ z`#Eb*cFjDwjnRZXk?-$D<>D_7)*V+R?i{$HQ8zjde4a?)W~v(IxC~Cgf+B(e0T`TNqPr zgicFg1gE0}ZU$FYh9XX7jfSmf8I28?jagV19Y3f1%=A{6!Twj4N0;Wme(%0_f!s;c zk2<=-g}04POx?$tzc<=nEqvxC{aA^RWuH$p?UnqL%zn4H>C~2;3B`M#RUO)(Z>t^5 zmckd|dGGsk!xzHO zMEqNB2>vx>j=FMu;lpad~CmKn6LAE`+5EUS%JbQqFv7a_i?@Foy2U- z+`ao#q2S!=g!F`$i=Ug>Io72_{GF};>cYkQJ)!4xjl)=3x_VTbOc*bmXFoCbx@CdA zMMv!+#@S2ftWZ+j7CN1sEhy5Uf0NeMqQelT=W$^LW0;eBVFQ?7c0?>*O7eD~Wf^LUMio0*cX)!8+v3 zi#dg57?E&coeYVW|BU&dLbC5;Rv8jMjHAj}Y``MMiC{Us@3Vj=u->`&t%TdCW$R5V z+njj$k$`D=26(O;2wSR&W{^a1KN>8eZ2eUM6~uEG%Qdm8X-LDlrajZU5vd^qIk&*R zP+N}fWD&6KsLo9FALU`ZNW7sQQ@3ziHQeHHdn3V;Khm4((JfGxYZ$oEbgjZEJ1{y8 z0+{tZsh@C8Mp-q!U|~L~$vzx+)J?l(NLinp1_IV|X4*}Q!?GI($W*be{iWPI(lfVl zh@2^C>XHwC!J=>(@}Ns|GhYL>k+GcZveeAA)qGj3WSaI@r}K@@#r;2WH(eXQIxnWo zdw8A*5>dh_kRBa=y?6HI^5kg4`!4@jmp+s>KR*5j4&F;(O_pDWB=Y+#5z5xnDyz{d zRp<^Q$}ZdKDYY%Sr}QbQ?RnMeuD89fJo&V-0%`yN36x5bEP=b=&4bUY+bh>sojaTJ GUOxf9Ct$w- literal 1261 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QXl9;jkz$^rn_`@rsB4mHoTO`Em}07%mXc^; znrv=vl5AwDYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE+Em1g_~xT+_qi5;g%g2{tU^ z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DSOhR&7e#eJ07DWdM+1jI1BXNd2TE8l0mA}n z6N)$}jG*G|3=D1z4)F{OB!&o3pC5xhCj&zqgLoL&kOUy<01RKC<2mB3=JUD7#Tn$1H%ufnLp+-GYGlz3pXs!HQq3*;f2c~ z`#Eb*cFjDwjnRZXk?-$D<>D_7)*V+R?i{$HQ8zjde4a?)W~v(IxC~Cgf+B(e0T`TNqPr zgicFg1gE0}ZU$FYh9XX7jfSmf8I28?jagV19Y3f1%=A{6!Twj4N0;Wme(%0_f!s;c zk2<=-g}04POx?$tzc<=nEqvxC{aA^RWuH$p?UnqL%zn4H>C~2;3B`M#RUO)(Z>t^5 zmckd|dGGsk!xzHO zMEqNB2>vx>j=FMu;lpad~CmKn6LAE`+5EUS%JbQqFv7a_i?@Foy2U- z+`ao#q2S!=g!F`$i=Ug>Io72_{GF};>cYkQJ)!4xjl)=3x_VTbOc*bmXFoCbx@CdA zMMv!+#@S2ftWZ+j7CN1sEhy5Uf0NeMqQe7qol_{r zBL*9gGdJQCmS9MNrFA?aZuT?c!!k*~k6C#{ydVn86R{x+87G2e^nu5G8pB5S^jryd zP}|a4X1Y1`@Lul2yiB~H9z!#6N70@9arcR> zDZ4N{@qL)~J*}T`PR409o?t;Xsp&qPbks|FB}mzTocIDZGG@|C^24&4`^ZqRrv9hg zEYc&V`2^WB(99(p{*p!RGGswl=BBL7hJ+f}KlYrA!juVj|?Z>NimF2ubaxtFX@ zUY#3J=H7c13ldVoDY#vI8^3qo9DM)w>)qzhub-ulg{@ByeuMqj5?C)5p9duL1}qkG zclKQS&tL?bkdvfK+{WVYr07#%vkctwx36Ac5xwXA^ L_Mv-YYticu`&?!Y literal 1257 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QXl9;jkz$^rn_`@rsB4mHoTO`Em}07%mXc^; znrv=vl5AwDYbYcU7r?;8AQ8%_yMWaYXq_0uI)0#aoE!`E1s3Q_EYQc|5;g%g2{tU^ z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DSOhR&7e#eJ07DWdM+1jI1BXNd2TE8l0mA}n z6N)$}jG*G|3=D1z4)F{OB!&o3pC5xhCj&zqgZKilAqhaz0T|-YK$nRHvw@+;$Y6Sb z39Mem66`%DFbO0Wp$r%eQ3NEN7#cvPF*1Ni28JI{Gk?rwW)O1a7j9UdYrJ7r!wZ)~ z_H)*r?3#IU8>0z(BH!PQ%EezEtUIuJ!mkGxO%GK*iSlU9h0R>29V-#C?6Z5)-k%#Ef18!vbjl=5KTI#oeOl?#^wd=q+{}V( zCnp9~simm@h)6rMVkciqUh=}JWpR}W3mgv26=Mic-ln?7cvtAMH-^XWP5ZiJ=DN*x zY*w5MAtek-b3Pg^Hr{;T@66O{uvQ3gznSiF z%ALW3!IQz}j?+E!W!$?3l9;P`w=TD=wp?zR_c}i9d)3#bzSsG;W2@&j`Q7b(Y0=X6 zqF(w^liP)qh~v%&E+1fF+U&#{x#FU=-rj)4{FCatHEr%l_BemvbLJgi;qR))MRPxH z>)5w@z4^N@JtwUGG0aO4ukBX-JW(?LW2$4>8wV|!fD#jawJt?>eum=M`*wdH9I!5B zo|QIdgVy7vk+V75lQJzPUzFM$_&8Z*bK)A#crk!H5HBYtsGBSSY|1J(%^j29&;FV{DpNqBu@4-j0R$BrbL!Dm19xQ2&L6io;w=6ny)Hkv0Lrj64L4i1 zkvruf430eyrhQN9Cs9O3X*Diqem1GeJ{)({O}ZsWS)Uwx95ym$(oOQiGMjrym$9n+ zrQ9si9lN=YtSM;fk_~^sB6k_Gpi6U8Uk!DTww&#<)YP@zx}UFPn)X+x^Nr5M{XcRy zxjKGzPDq)v`aI?&pd_N;*}LS!l~4Chaq-*t$M4mb;%j03)y5C7_qG74qWH)sf!k*> zmnyevtWIlGqFaneRkqcW>J_>z^(m=uJGENXxp`aKd~>4+>HvTO5QKtQ0F}>|z~%Mg V=8My>J8Ngx5AJ@vwj<1Y{saj#XVd@y literal 1322 zcmeYdau#G@;9?VE;b012&;~MvxtJLk7=(B@n1t9kSOi!kI06{fFfeFr)&HwdmdnIo z!opR;#mXR*&B3IU%B7#1n3tKBT3n)QXl9;jkz$^rn_`@rsB4mHoTO`Em}07%mXc^; znrv=vl5AwDYanDOv4=5$fr)`5lu>s9t0B-rF^GlyKnpoJuIULZ(3kiYi^VN$0&EgI zSi~6w7$g`17?8Z74m4E|=td9_;^1I%V&W(WV8AYl>Vg1@ z3D#wGHamj;q$)ZViuWWXyS@g%ee)(d?#}8SG4gCjyUcS1uxUf`LoWa_DgZKWT<3W}S z?#@ioIUDJ;Tl9EaQIhMina3B%7UXEDYrkVM41OAYGAEtu0^5Yd@JOaAMsSKt;9;1{ z%3yR#ReQqnm;d|!7XSacw`S+MeJtJ+@3L|7U(dO>Vr{9i_cVz~A6%l(uJb9l?HnbU zyY9~RJi#{}|Eu=jSuYpg>}-=lGq<%+joBIxBRy3 z!^F6g>1R1*IT=z?7zNK%%)B`>^1;6|8wb!Bj({``zO{u2Bn}RXA%D&$| z`fF_S*O<-Y$>7Q0%`m-t&WYdqDi*0b6(p`-^sgjc|9#2zLfIp4;?}1^ueauKMNxb~6X!1O~2myNhq){JbZL4M&{S| z#Io`pnH$p6v(FrN{qnYPZ{hNEhif0%H%v>s7+quAf2N|_usf$(0Ie)3lIf}I&*FIPr?pn_IB6#zxQY)>MUY9Knvq`RE<1%e}sO~L4Nxa9n zMk{2-UL9{WK}iN<7LPOHOtU{4Z8qL~;P1@jhp)8Nqy9 zNMRFl>c-rIWynahuug`=&40#xP$Aj(F|7R4La%r+-p0TVDS&j8Og9br>3&fWF&zUds)|&cYg#kCTahZ# zk$ng3fzq)xJBxrVTd`-V|0oaRMdB^>7@CQ@itZGT+aC#<{E^;JUfuy^I=YTqZO1H} z@(8liFoap(lllqgWRz7C2pZ*+n(V`IN4>OHh933FX((VbXQsWhI4rBRj|>HC>R-yu zBkeh@7s#H1rY`yL7c2^wArHDVH}lm|7wOB{E=$c^JMF__CDXLOI-PHHF7E%4d+CGm zt8-(Ix@&I}L6}Fl2fjRfzy0yqz1>TB^ZfjqxRx$f9({WJ1ME8zxLGZ|jtC2Unh4n= z{*LceYqC#kHF;;dT9+I3dPD9LcdK6~yHB1rs`A!XD1in5Kmt-pS_PjsKCr9WJ89nK EC;7Z#S^xk5 literal 1239 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=l9*M7r?;8AQ8%_yMWaYXq_0uI)0#aoE($11SV-oOwz*Q5+(sA2_`J! z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DSOhR&7e#eJ07DWdM+1jI1BXNd2TE8l0mA}n z6N)$}jG*G|3=D1z4)F{OB!&o3pC5xhCj&zqgQyUYI`SbGC+0P%niV|nAw%_0__aq{d`N-KbJWC>0 zo$cB^vu`a&d0Ny3mL0QCZ4^~+n6dKH+LUd^tQpKFHmufR3}OVQo&;`&zbp(vClwR} zx=SZST;rJkbAmzFjgKwL7Cn!y1amE#J13D@Rq%Ya3)@@o`%T;Lt&u&sd=EV9ykH{27v|T0$gj}La&Zes;FKk=+&CBI zmFS8p_P^4T*=CsGb>Q5KB}SzeY`-r_jGv{s`?c6hPKJ;Y2Eo2>R_ly~4_uuo{NR;_ znslH^P+$l%#I2hdS$P?jiAPu)ct2q~a6mzbjg5_KrH`8^=bF>2X6VIzD6!Vn;;`Mz z5b$i0mEV?*sJaPv*@aAE95>(0dMJ0K>HpHH*6s`*44w=LD_Rqti|IW%#PRmE*`2%h z^w_rV&5io5w%I_tCdSuuL+J0u=8Y@(=l1@t;H;Ed5s(l!L4)o0 zALi>k-+o^Ce^$iciTG*f_q({?^9O$3#oYY+Ql`+{;<)mJ7t-fzZJKO0uKHyjEWAj% zzS#8Q?3*513IRFCI09H4?Bx~mW3KPv{mAf*gMCV~pmD0iG~bBSz-6yzUGNE?dNIHx zIcHNB@lXq#XNwQ42@uZ3E#V?EKi+e6| zp9r0{L}{hi3{5YNJVnOZj=H`tGQa1v8}J0yeU|3v_;h-n)(m-1&nQpTtW4)A@k^9l zt;{Y}zBreEVW!4@wo6NwX%){1apMt|z#0)Di!F>fndTI(dOVx6`CY2>|AQ(rD(pgK vo0~f(zn}dzYu@C|jK8D5ajaz)V3lZS5Kv-b;L%vaXu#R@g_+qu$XOBqR@sd8 diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-0 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-0 index 277d45f2f..82fd8df80 100644 --- a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-0 +++ b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-0 @@ -39,9 +39,9 @@ "primaryKeys" : [ "k0", "k1", "p0", "p1" ], "options" : { "bucket" : "1", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc", "sequence.field" : "s0,s1" }, "timeMillis" : 1735120478343 -} \ No newline at end of file +} diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-1 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-1 index 0bf55dbfa..1d6e3cc8f 100644 --- a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-1 +++ b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-1 @@ -39,9 +39,9 @@ "primaryKeys" : [ "k0", "tmp", "p0", "p1" ], "options" : { "bucket" : "1", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc", "sequence.field" : "s0,s1" }, "timeMillis" : 1735207491195 -} \ No newline at end of file +} diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-2 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-2 index 13db16689..bc157552e 100644 --- a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-2 +++ b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-2 @@ -39,9 +39,9 @@ "primaryKeys" : [ "k1", "tmp", "p0", "p1" ], "options" : { "bucket" : "1", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc", "sequence.field" : "s0,s1" }, "timeMillis" : 1735207514342 -} \ No newline at end of file +} diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-3 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-3 index 8ff9465ab..e1037a153 100644 --- a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-3 +++ b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-3 @@ -39,9 +39,9 @@ "primaryKeys" : [ "k1", "k0", "p0", "p1" ], "options" : { "bucket" : "1", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc", "sequence.field" : "s0,s1" }, "timeMillis" : 1735207576625 -} \ No newline at end of file +} diff --git a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-4 b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-4 index a7e52509b..23f2e45cc 100644 --- a/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-4 +++ b/test/test_data/orc/pk_table_with_mor.db/pk_table_with_mor/schema/schema-4 @@ -43,9 +43,9 @@ "primaryKeys" : [ "k1", "k0", "p0", "p1" ], "options" : { "bucket" : "1", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "orc", "sequence.field" : "s0,s1" }, "timeMillis" : 1735207715028 -} \ No newline at end of file +} diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-7008d4c0-b1b0-4237-ac6d-845b887efc92-0 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-7008d4c0-b1b0-4237-ac6d-845b887efc92-0 index fb7dcc927d2e59d0f62dedb3cc49feb26daa0a62..0713a2fc3cb01434bf91df8c6584787783f85094 100644 GIT binary patch literal 2207 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 PDD_picNA{hfgUXY|A9W` literal 2841 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 ZPC;#HNbe480ksWn7wga5sPYvz`UkF$+J685 literal 2385 zcmbtUdstIt9RAMPV23jVDPW?ARuCI(T*4$|(2!g)9(7xkQ;39X9I8r{(ih=a27v&wGBC_x*kEcY;HF zi~&G($#?`307q=Q1jPXW$odFG)2P8lN0$`8D8>2c{JeGkVkT;CbwM4@t zm;!6T7pwn;z*zw3=T`n|otg@Rjd(N#t4&TqAZh~Y5-m&?GF*jj&MXO+&0w-ct_-$F zBw}!*qgF9EE)uqo<;D^VSsVt_DN&g8u2h^%rbq+;29`C3r#*?z7}u9H+Ke!5ddQqU zX-=Oqr>}+BB4I7^C|X5h=wC$qo3!Uy34llsks~BILXjghjIfc0FoFOwyfE+=ciF6! z9EQH2%X3GL$BumQXrIFute{WQr)ZniKjHsWXAyq^rDd3K1C4Nu4i%H_hauLeuG(jS z{1O5MkSLX%>0cH}tTivDHuElaT8Sl_qI#NSjZpz+R3L!;qxfXz{JxmNrN zzH}%BT3wCQ4{sWOi&^ZG5{@QYDLEHeeCsDBVig7w$KQcjVdka5aE_HnL z<4>c5O>bPa$_&UY6F3+m)t41%WJUvr6{b?XQGCYT%gx~`(fL9x?_OT+iRi474}FyF zW87ku!L!=oE^dL}`a_-0JG!Ra(cSEHw=k>ZuS>6lR;`Vq@-j$2&pP=ngvUk5x4UG* zIp>$oi_2G~ zB$agXCvF98P=?n&N#|u{c^o$Ms2WUk`{GpE-V%w~2}il)Xl~8Y;cMu{x3_ofe=?j0 z<;`3X9u%KLS&JiZfKstb5X5B2-Ns$cvfAi|BjhHTuxMYQUE@4}mi2VJ{?Ni%Ayx*~ z+$GjOki?O@=TfRNJwBLk`MG;VaB6BquiRukS!S z23Ekt@x#lymW~D0X+1gMG1C-sF>M>jGw@2V8VOYlf;YQfk>ayAsa9IvOzgh|oq-zj z2jYDA5>;LMt|oM6>+Ly*iuvm`-73m6yv800xD!i2{`c>BGcz|45Gsv&l`o{z@ijonur0!LgLvwKa&O=+Gn4ab*l`%=?rke&tzqA!j*3SzB$jEZa+(NHCwao!ie3Wp>HGl-0wWS zpY+YPV>{lz(##A??h8{qTGsz6;vxEMc9pVuhplVUGb6&KBh8PV?&glQPd;t2-Msgh zk&Q)m;69g*t}c2ZsLwUt?^}|!cV9(!;wt}QVs?(doh=z|KTD5o^o!qghL>x9dhGu3 zt#%G*wEX#p*Vc#dW0CPtGhUEo}IMn~?jV(F$FN+KLh%V90 z+jIrHC@YZ8v-X6`DK!==A(Mj7ML5IJ5Q|$`_{U89$k(B;V0V07_7wlILEDi~6=LZy zqf9@VK8fQhdFI~rJyGe>rlpTQ7n_ije9%4}2 zu3{P-pMu<$26^SaWf8K`a*b1@;_aW(Vwd2Y%1rK6#tdAJXvvP|qDYz!NrxhrBUBjZ R(@S8co?;e<3l8xy{~dT}r`Z4i diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-ed67f349-7c6f-4f51-8723-274a060042d1-0 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-ed67f349-7c6f-4f51-8723-274a060042d1-0 index 0a6862a6f15c36b2af0952ce31ecc86cbf1b35e8..22f88c68a850f11fcc9865aac9877b380f7ebb07 100644 GIT binary patch literal 2295 zcmeZI%3@>@ODrqO*DFrWNXij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3(&d-}QHmJM(W3h@j-~-QA$ZoODxSP zQL+N*tc|TjPK;nj!2JU;5^gm1Tmnf6@ep6awGRED0L5IeYhb9WpEEEuhx$6X1|iZI zW-0_GG2&GRJA1hLI>vhnLR!|}ip(=`GfG;mWO86TfZAZ3n!Xpl3a z)PZXUg)lzNNO=R83w;p54l@BBX1IbMpXtE(bPe(Y7SjQaAs(21gBGCpOmOoI3Jw8> zGE%yNxs7lThX;8ABZ>MRLzoNCAS47GBwJv38(3<^){21Z-{kz1)MTM5U~q6tgL~*t$RvfusuIWCvO+6c#n>Tw?F3T#J;*emGyQl0jPtKIx z|3p=a!NDMb#YAETvxS4*1fCl#%-j?D5`-tPZc>i0<>BF1kXhwiV5neSAmhTL#3rcU MA&@YKQ4ihw0FUDKdjJ3c literal 2638 zcmb_c3piA1AAir8+nF)eF}WOTjbYqljY}xED77PHitbucO>Totl)hqwQtr9L5V^Fg zSkdN|&C(QEwWyF#B|$@Avm|3nTV)dM?6@GTHs{tvgV(|B7JqHqJ?ZpA$I&N^R+9;oT&uk=_3^{C zaxmfO350%?2m`GR$_A%NMmQ1$333@6ITd*#g;sup<$OC292h0fkTMT=&X=s8K>T0A zKJSVLJgJBfL4^n=MA&%4GLnW71Tf&4aePum7e8ivoD3D83;`*Fc;E}>uhjWW5(q8{ zfX+Y6IaWUNpOFxZ(lGiwEY3;jzx?OyUuj7d$0jX-j<=(Z19!kJEE;)Mhk&7gz>X;P z;ZkIKCZBb@cILyuv45$OAs#GGqe_A$LI${y0T2381O8u6kczdwlj7<*bjEn*X+eh2&n47^Y0)73kk4Y*ZP$)^_An^7J z1t6LRM49-b#F;M>X(rRH4c*&5CXz5NHPeMXknrz0Ys;5(`{`RAfDlNBWbZe#W;tXY zV*V=ez;C)~fN$}+e*@3nR36>XC=<71N!(Bw%DRd-`CBdMvLm4#11v_8LL+odHd&N8sxjsBAj2WOSKqhWs@hR z0>=o0AbowIuQ+9S!mxDs<2$`WEoW<>HAQxXQ0EeJ0$?xfk=;ugBN;5B#4mZTN2{`L zS?;|rH$!DbpP)FzS`_X3TcvJ8+2*ik73s%pa?77qKCgf4W0pTe`z7bd{?Ojy(fyaJ z4|%+f8m%j6$jVR=`1oC4A2-K@J~TuHe4eFg;59B~Dz|vLIQ-{+*_;?3)qnRq^i5!` zs^u9Bn>@6t33`Bo|DY5ZM?IKbV&#*ka1CQkNm+&k z)wasnY^@UH)g1cg;&9T{fHJ`cF_WqgEOLF*;CRM)&+1p}9h*0D)lX@3YHogZZ6Lx7 ztJi)WwLu}xYy3a&>*-+fS`sCgME&EnnX9Ggd%JC;2I7k$w^UpnNoXBoAu(V9r1vSDL&6 zv|L$LV0+!DSIvSS@DNw{&^?fmsg`s=nf0J>5g8ee9?)fI#{Qw;UR^X$_AkPIl|v$G zV1-Evr9mq;*iXJOtU}re?3>b;DfPdwnCwWBNGgEPCkMt+x$Yx-4jp(xm-18F573 zBbi1$68A80wRN%q+I0s?*DOe<_Zu5+-(cv)-4TClQ&8L4^rEzll;)Rq6uarT4@%D4 z_P#XgZsHueK)>DU+~#gPdFtu2fL-m2+z#qR4ulu%7Pg%?emmY;bm9f;RtJ*6cayh` zuQC>e=}sy$Cw<;GzW9A0Ph0G^vc+GqV0Bf6epAm9MU~nbG@g?k_10nZoRY*g*-xH%Sl_KoNi z_j|4jHWoW9s@7!Q;HJSTLMJeCqU@aZ7V{MjYc*|^V-uqJSJZwrkG#?5al!GiV5(-@ z+LEr+>h_qJBpG%20$Eu#rsGaUVsGZKXk+c_&6_*=PPTRVIw~KS?5}kDn~&A@<&c}d zedLo=8fdC@zUxtu)W%LXhrQFUcj4tkppZvEZOb@2#CIQS$*wys626xx=h z-*{JVM|h7#gr&_;%_S}qD_@j*oowSx^;;6g8xb#~kLn?c*}@95mBc$C$i3h-c1iB$ zg)tUkPW2k4mnoiESPI8CKMv-Fre!+!yM}2aRR}4-7=;B E0HV_%5lDeGX?ADO8qV z<3k`ORz^l780d##Wk$kILt>H&N<5wK-k*E#XLknAE7fb{rHJc^f50O0{qhk^Cu0U% zP%u9h6xJXo(aL)=CVsIQi&35A>jPFFlOT$DeJVC$oC%V$f<6pbNE6uFKl-hNd#LLe z9Xmgqc?CR$S#1G$XqX7wnuQjSBozT4t)d*`X$cj^OBma;u%_!s$AzY|&^r~WBNMr2 z!0u^X*KqR)*l{&?q56;VFkU5|QjcZWxTl$3`MQHi%920QTiTN|plr`Hal7N$rCaVp zei()@?|W815rRzeYJ!wS#iVBEaN1En>(?M0(iWQA@ws4^stfuhQHk8hm^TL6FxxCAyONy?WePZiv_`tHK( LH_dZ<%a*?YK%rl} literal 1173 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QX`YgjWMX2hYm%H|scT}CYN=~!VQ#2vl45F@ zVv?3M7r?;8AQ8%_yMWaYXq_0uI)0#aoE!~W0u5Rc4O&=S!Y05b!G=Yg zL4ZMmA%FqN6Y4-y1%WOE0U-_!Mkgi?jQ|GhqNpwiU`PVGfkU8yL!yBLBP^gc;Sy(O zU~pq_h-Y9RF+_m+{225(85rUiL>a(_BmhYV1_n*A4;aBDkl=zc!0JWNBt=jp!TK8@ zra;Iq&Y0(%k>^_lpNzezpH)u3~1kqL~S6BG=!I%Eeo_KWHtnt0?g; zklT6f@E)qgPSl4A%A=yyc!mWHKK)dxmF8#HzDhyJz;TJ2kiep;Kd&6qWV`NW3RI*fjd;M9}A&G43mLFlBsLO^%vh0bQ*5)K{L znwuw*X7DWHC}OvJ7JIm2QvcaoYRv23U)@_b^H$8xa~#jS4v8MMdLO<0t?6}!;-$g! zgXaeCH+jwDUi|ctDVs!f)sj^&CokZY*XS|`YHyopB&D=V-D@F-s^F?Dhb8WfFB9$_ z%w3n#Z~5)o8up5(R>`S{7`YfOG2BL04r_)+vOcv;R-+z3!#|x<51R*!<$lZg(yc(PK6^_|n29M?p!XE3*ED%I3a{qIXZIp8n+!?*2M3U3JP<4Srz` z_KPCRO<%imJAC-^=}XnC?qH+W8G9WQu3dcS-&DFP?rYe~N$X5zmewq}uDrMZiukmz zZsCTnPZUH>(hQ-~SWfEYOXlM{nVq)OY RSjA|-+4O~(*+0lx5&+VBYN-GK diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-2663284f-7bac-441a-bfa1-d11bb24af95d-1 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-2663284f-7bac-441a-bfa1-d11bb24af95d-1 index 22f85d5d39503bb376f25dd1b081f25d5b131603..65ae80123c51d7274ed368b91e9e33b9c29bcec6 100644 GIT binary patch literal 1121 zcmbVL-)qxA9KXhZFk}yN`Yh+m22Jg{+PET0Y;G)=q@ziyIO=grE?p!)%H<|>BcT6+ z&p!Gu_#z1Y8~zIl{s)3dSKHVQoz2tb?(^e5pKsDVepL}~lh-V%rS1uh$hY-#$j2iJ z+mKN=VIHi)m_$qO>4><+X2OOwlCMu_ZA5}7iE9(FA&n^`oECIHprMz-_R;xoCEQ0n zOY55X;nXXLIn1haz`mv6N8 zUjcil^lZ(}BVfx`?78Yc%ENe>cu75mX5zl0JLT&hk2y{MNN*_5uYfWgUB{iSW0r1t z1mn{%gn8f7`UzuXoL3WY8Woe8p2JB;gKSWR9`(s-$YHx+W`nFeEUR;X3*Kwj;NY_WK8WJWh{Sq0D}pTmKn1LUO+gUy<;5d{J2&57 MfAdzpcDQKy3p2-D8vp^n3tKBT3n)=nqp?2W^7`qYo2VDrfZUBYN%^rZe*-$WNwmZ zU}j)oVw7U2Yak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE&pB1?Ff<%+bW{5)2nI2rx)6 z1TY|ZLLF$TAkc*%AjHAJ=)}aK5x{_56x9U*3`v|E4IBau91;y2xNO2D&d$K##^4ao zz(8V%0QLDX=yNhK#4(7>ffxcL9T*ri!9HLFlR$zC$^feuL6a0gkp$~+fS3Xyzd$4K zM=vwOrxre;2}^VT&)+W|botf(m${0W*@|W+tchHIH!2rz;r^ht#IB;mw?J;^waXU` zA3wb6#3bMRdHL$>=Z{`Ri8EN+Z}66T5|PP#E9PmDX*l zOXmG;Q;e(`tQhPWQjaf_E3HVCdu704UHPtWv!B3DwS#xRYAAitdf#)xwCb|Gv0AH0 ztat1+=ag%PjtR^O;S7EEPF-Sy^BUnOZ_ddZzFba?f3SLK?aR&4sq0^f%F7&Kny6tV zwsr>Zfd`H^nm;txU7UF#>Q+9_f~_TgY&XP*u6g9OaBEG=26qm7r~NzLnD66?@@9Q= z%cQfNTM$dI@@uRz)N4F-H}ps5)%WD#wtbw N&ZaNS%>F^nk^r*eZaDw| diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-55a3b658-08e3-40aa-b692-29dc1e3ebbdc-0 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-55a3b658-08e3-40aa-b692-29dc1e3ebbdc-0 index c7de35987dcfefa36262d47f1431a4dd68ef1040..722a9a06ab56d7b6f9c02966ae1b431ce90fb83b 100644 GIT binary patch literal 1006 zcmbVL&rX9d9M;714#s#jX^f|ZvzaFxH4+P$0n@mUrh{(7Kv_y>GB=*bi!b35_zK=k zyn6B`opaz=bnZs!_ov_YYpw3>_Rc=JVT2BvQCG@ zmp>EUS4jRnpvsVhal(|DSf4V=iJ+3+3uzRjpwXFpE8#Y5*}7%sn{%&_36Rwbz?qI9 zHdO-_kW}!H^{XgbzbT=jWC>%s239oQ2nDk zjH|>I^%%N|+bVL)$L)>zmzK@ox05n=qx}B7diZjMd>ogpc`{@ zUj*9_ZDzYEHFs@USLI3;X}>yMZgeT`|HxjpH+yw{5>S8lJ{5!oga=z6hcEo0_V{#s Lbn^WEdNBP2K9WTl literal 250 zcmV3bAwtcoZ7Q(HD< zjlzcT{ha)t)(MgJeEuyX!ZXdINEN+!ZjF*4OC1YySi!AlaSs5X08eqHrDIklS~mRL zz#7>W{K}nJ!z3fSqHor#c}~s-{~ULj9-QcwK@7Ll(PkD!>0 z8Eiq${Df0jgE5I#-qSJhi_L_O>Lgzuu=q7Jxg3iLk9%XaPwD58}}($}t|4P+_u!u{{fGx{h>QXgUkM6OlSH zk$Vd4p4N2@H;;fFS92Gt|0oaRRpJTtScZ*zn(39VJD3QT{*m6&?wd!~uo9nUV^ zav#QrVF>fSXY~`#$t15P5G*PtH9LpXj`~@@1}Pho!%)Ch!OZ$ud00++7g-uM^uLr_ zMB4G%cab{>&0UJ&uUM2mh9cLzW6z zZBjZ=l$)~RQ&m=OFjZD>Hyg4-Z#AegB#nWh%GW<$Jqxx002Oc^Y)X=pFOQ!p*t-1k N+_UG+GkeRHzW}aOWpDrh literal 1173 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QX`YgjWMX2hYm%H|scT}CYN=~!VQ#2vl45F@ zVv?3M7r?;8AQ8%_yMWaYXq_0uI)0#aoE!~W0u5Rc4O&=S!Y05b!G=Yg zL4ZMmA%FqN6Y4-y1%WOE0U-_!Mkgi?jQ|GhqNpwiU`PVGfkU8yL!yBLBP^gc;Sy(O zU~pq_h-Y9RF+_m+{225(85rUiL>a(_BmhYV1_n*A4;aBDkl=zc!0JWNBt=jp!TK8@ zra;Iq&Y0(%k>^_lpNzezpH)u3~1kqL~S6BG=!I%Eeo_KWHtnt0?g; zklT6f@E)qgPSl4A%A=yyc!mWHKK)dxmF8#HzDhyJz;TJ2kiep;Kd&6qWV`NW3RI*fjd;M9}A&G43mLFlBsLO^%vh0bQ*5)K{L znwuw*X7DWHC}OvJ7JIm2QvcaoYRv23U)@_b^H$8xa~#jS4v8MMdLO<0t?6}!;-$g! zgXaeCH+jwDUi|ctDVs!f)sj^&CokZY*XS|`YHyopB&D=V-D@F-s^F?Dhb8WfFB9$_ z%w3n#Z~5)o8up5(R>`S{7`YfOG2BL04r_)+vOcv;R-+z3!#|x<51R*!<$lZg(yc(PK6^_|n29M?p!XE3*ED%I3a{qIXZIp8n+!?*2M3U3JP<4Srz` z_KPCRO<%imJAC-^=}XnC?qH+W8G9WQu3dcS-&DFP?rYe~N$X5zmewq}uDrMZiukmz zZsCTnPZUH>(hQ-~SWfEYOXlM{nVq)OY RSjA|-+4O~(*+0lx5&+VBYN-GK diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-739ea106-ac05-4953-a13f-c7260482dbf1-0 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-739ea106-ac05-4953-a13f-c7260482dbf1-0 index 04d7af1a54975bb06df173f9cc8f65df50ec9ccb..f60aee5dac135d5501e495457db438cbc2126d00 100644 GIT binary patch literal 1182 zcmeZI%3@>@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG z1{LFftZ&)lr@Rgiuh=G9v6gKYlg3v4zYHErSr~#kyK1{sRDGMt+>KZMNxV0mUQ@RHYMX%E^A*MC1KZ!8 z%GP_TvG;HAX{+`7mflj7N@kg%z#zygp%7--HOCIw kwlt~od2li)2r`@yVpwulAiBHwfao0dhDLMd0Ce{P01e@e7-*W_(D~Rdp!sHHpb(O7Zm0cUVMLLt$LBuN{Pv3 z=0}%&UAZ)>ZO&Kjb>EJr2(FGXhl{C|r%#X5S*gA6S?Tg3yiPao**I3`gBkvT$( zI2jn+m{JtL{tkjV!-kcSVFgefBLf#41GzxJD!?EqKBw^DOfirK5ljstKn)ef(i(5y86 zkdm=coJ*M}cHtDUE2^f~lRP)S)LX^PvwMx$myQUhwR`=!Y9sGo-7f5J6uB&H$H`9@ zITW`h9qVSC(#oWE+MUIC$7+T}!rob}Q8RQdGH1Vg@%!4WXErtGY)%wx-|&80rbGYv zh#MDnne_j+IBr+U{p+2Aa@CsmwwI1sfBql9wbI-JQ~h z3OQ{r{}KsK+WUJp=;qg&a|$T?^$8jkW=?{`kJ6VAW%R$6em;a`yH4r&e#abndfUZ@>McZ|{Qqh9qSXX4gHk3k|Tp$PuPULwM0Q@a z6eiY*U2N$_SJ$7AD6E^X<;GKHG3H|dhC;4$1b;g=>MzxQJN^CygGYZ}>4!Y}qccxx z#e1L3TQ?1KYLEPk^q9agCCs5E-{q_LCe}xPG*~(hUCl`CstTAWBZw{VB|Efwyeppi xtx23TG4`VQ>#H{E>CE4^zhUH<$SlAr(a<2E#Kgd(afZ==v*`;nvwx7YBme>a*?|B6 diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-739ea106-ac05-4953-a13f-c7260482dbf1-1 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-739ea106-ac05-4953-a13f-c7260482dbf1-1 index a20428113d9dabfafcebf652751b390f51903634..456e1eb2c68aefd319239c26a111191306bb48ea 100644 GIT binary patch literal 1118 zcmbVL&u-H&9Cow9fddDGcmSVvXu2>84ZWbO@w7maq9!S@saQ_zc0u`5Io_l)ej5x5}1l^5VCcmYmGBwcAkJHcp9j{W`d_x+Nd|DsmEMNWCz%z|SUlkeBhpqNe= z>_E5;9l&)ZG&%&CnBORBT&Qk9}q>fDF zUIP1A>$`?qM8J-#xl7f5l!x&;@q&6R!^Q*6^s3kOr-EgFq_?!Emq6K`Y2t3rvn#he zg2_n~!J_YZ{e*KeEvg9xi_1yP&*7}2VLog?%0}cQ60lP;^I={cmeV~zmWB=eFXfhz z_Pp*ReN-bRby(iU57HQ8rU2SwF?*Ea8`OVp1 z7o?O0H(q9fB$RLpp1~{l?d#7!cId-zUk_islRnk9Kkobl2OlKxre1#@lO!CmOvr6T zQE4ksWdF9W$gSNwZJ7l3sI0c``l{Myqu~CotbBnI*aiU9z%?LAQn5OJwt)HoY^7J< HuloH0XCh#V literal 1177 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QZeU=MVv=m2n`D?|plf1eY_6M_Y?h*HVPcwO zVPT${mTYOHYak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE&ph1?H$q%u&VS5+(sA2_`J! z3<3-i3;_&Co=^vxDhPBT2nca-Fgh`DXaq1|7e#eJ07DWdM+1jI1BXNd2S!*xZNeqa z&cNWt;1JKiKw^jh_4zUAb22c*F$m28a-0|%fTRNhgC^Jqj9?N-a6uVh^&)sB!TO=5 zK+O6Ajldth%nYAe_=F}b&HX=rzj)B)SNmV)DrROYnwhXBa{b+?T)c(*gVqweiW1)f zxt-T8Uo?FD@TwD&eDmk!tFxa!dKD$kU~Rv_Tkc6jCi9WAXLy!GtUBAZduHESj`Fmq z3oJWkpV}y@-Y{e3r?n~Dj9D|7Pi$DN!x+K{PCW_S46ML()2X18&|PdG@c7oYi)a47 z<4<;R_nU2cHa$cAiSH$8o|MUxgq4`LKhmvueX4ev_HU&PF`W6_-=3YA5S_DuQRn)z zuCuJOUvnMaXRARUrgoAR-hHndQQwapc2=!U-Ys*VH+i&n($<@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG z2E)E-$6Z(4-nMnt#hKIe9qw>^V$#^E|Chm|m6hSpX%&?T>Sr1M*RTD$d-rbPo=rNc zDp&UGelw|MP0Y-dR|_v6ReR;ShKJ|JldCtBmh>$89{DmlsK0B)<4bNGvn7~#e;kr} zbyzLe(EsF$?MHr1(w=|Ut6Pgr?!%H`L4LKnH78xwm%Y3lS$*x&HO_(6S)5XPLZXw?x&JfAeuthp4yO3{3 P(`N>Q4`~cs=zakJFxIDj literal 1428 zcmeYdau#G@;9?VE;a~}1&;~MvxtJLk7=(B@ScKR(SOi!k1OgadFfeFr)&Hwd7R$`g z#3rG*L0y*TumO*Aq53Z6d)4okvrO-tGW&$?^*oOShnX(UQeZsJctPRL^2C2HwM2UZ zuB%tRoIWGU^NWdT`<)dVo|lxX?#%1d)IRj(dZgXyZTqVdceF=nv>x2ylrX`8uQAex ziNWKl6L$uqG0-{U5a$R0ox{a3M^&IfOXAjCMl4Qc5@3_y!y?Wgz#zd8z<}gSO`x$t zT&zG}0{zL!!Q#Zsu>fcy4q-!}YB7i-_(5Tm#L3aXA<)1f(ZGQbTu{4ki36=CYy}YJBps2wvg;C^z)f*45^`(dtrD_HVi>$X@u)_>^S+^J7v*anAGd1*+SXGfYY! zPrF@r*S3VA!Lreji;0R z09!_e6TskMWZ*)9JJ6rWRg5J+S)g7k?bVCWM8>H}ejey}zy`aqh&CNO}l z2dW3Bv!8pJ8IoKDfMJu{92$Bxe&G#4maQI>f>NTFt1y=K7x>>z2s(L7{Kr)P4~y@u z;m!P@_H%=uCtJHXx4kyg4}m@QOK)C?S#r}roWa_DgSXt1h)m`qXV35~iCA^kue`Bm zs&vJ+IKk~9Mi=gM2|Jt#`59((dnVHs#*`bO)8;{(kRZUI%f_I@qph`Ix#j;G|Nkec z*e=z*Z)oS!GA(IFEt|ja&ge-h+5y{zts>q2ne+!p-P9C*?D_EsqrZ}=9>2rNj~xjN zEvbzzSs}~3BC|paTorXq{Yrh|BSoTGsMvSlOibJ3MGRyzzm46h)5B`77!+pso!-9)lS5U{?YNC{A z^wu?NQeCrS?zzcWu`?LUW+dbvJaMJ^-I*Q2dgo_$9Ma;_U8wAJ5HD*>ppWary2Q)&{TBZn(uSy4So)WA?jP zp5NboUi0=Yb7yd7@M4JAUcD}3?ls?pUFZ4oEf$xiTb$l-F0yF8sQLx7XB+N(T&DOU z@T_RAe?r&4s~a1h2+Ok7+BAC#707XPh%M|8z_Cg;>Bb6C&xQK7FOB$&AevF=k4-F z?&@9E?_TegZqkrmxaPEz!oE{=LOrSKp-(oeNb>HTHY>rdw=`DHrSxVGOYz3AmQ`=Q zD$LtEL#z01b|gEm$^53S(@pIj#wXV=aFBVW$vWlm5k{s;zIGwYrpDecvwzOcuMlXD zs%z+WejD=Rc|#5Rlm{*67v@b6Gj@~7YCpuf@<1Bjj1PiS{WbYm_)5#2rEWj$!&>*11#K5C* QiP3@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG z2D!&m9-ZK2j$3hlUc>F25387VF=}kp|I6U9l!;*q3rk#XVqRuiYH^9Kxq*R2ib=A8 zZjxb=fv$;>vAJ$yvRR6*g^6jBg@t))TC$~)uHig2CJqe-1_nk3E(RthCLjv}m>DeW M8JP3g7NFY)03%mpUjP6A literal 1189 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)QZeU=MVv=m2n`D?|plf1eY_6M_Y?h*HVPcwO zVPT${mTYOHYbYcU7r?;8AQ8%_yMWaYXq_0uI)0#aoE)2U1UBhNY|_Ev5+(sA2_`J! z90D8?903eSo=^vxDhPBT2nca-Fgh`DXaq1|7e#eJ07DWdM+1jI1BXNd2S!*h2rx)6 zU~vIdoSlKejlm(Ffq}#j0qXN((C1`eh+_~l0&<)f8o)+1Xo7vf2qu997nA{3FM?MR zsKfzmiUR`!n9cA78i7B0nHfH{@Ci*=n)`qLe(|8oulB#pRm{v*G&5mMM)L^GBm68HE z%lzV}Q|5J^c$h(*X*aXo>8o42-{mKYJFI)dw~ax9lOe%GE9GISTY6gK zZ{y>Kt_J#;Ey`H3=nfOa)xQ{2xfzaK@iB8~UB!3U;7%z|cNgFBmfadQuWWMu{lEX= z+eXe?ig(`!`&uVu-TJxkA-nNsA+KJZzyAsxw@op!Wv~WDsdWCE=~ov1+i=GIZ*83T z>AU&YxD>80+P<6bU`yW9wTwUAihn(4+d4xfTKi2^#~M2|wk+0d4C}sx&tr;t$$U-! zU+%G!u~`PTJg4vKUly)bE{<)JTb>{AruWPbuS4sm`{Zwam8-V*tlfs{MduPKwi~J2 zPWrx<(Q^XN4VT3+Hi{EkAD?UDT3*XzBYW1#VP(c`OUtcigMSv>PP?e0;zdOLt5<2EI#W)l8b!{zx@4wrp@ZSxFRnjazq_8d(45@& zRhCIjRz6?wRdoOVeMi6DI<-VOrA2Wux1=re>h~`!Ciih$2r(FQGb|2NG_j48~*B6b9`hHV3lZS5Kv-b;L+H|Xu#R@ Lg_+qu$XOBqm_>V3 diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-0 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-0 index 3023df2de73004ca4c19e1ca85f6ab89b934d08a..77010b30e61be6a11de048b03859c87ab285060f 100644 GIT binary patch literal 1153 zcmeZI%3@>@ODrqO*DFrWNX<=r#aFFVQdy9yWTjM;nw(#hqNJmgmzayeFD^(-1_|aD zrRyaE*%_&N1&Nut`FVO^!_rgpQi~ExQbF3&GE;L>ij}OQt6?U^hq(p?d;0qUC82g@ z=9MVb>L3)jdHT4<`#Ji$B9s)D6lLb6W2y@Fj6zbClaHpxFVr{Q(Z$8pB_3pEFv2{n zDqUQCTtkRZ8{ile;u!+;LVR$DV+g`j0)ZDFkEsz$@c4TA#fLfigd#gPsj?)s7{&L# zjuAwt@(cCxiFfu7^+R%Hv{GJaPL2{VyrIFLSX7i)2@IOdlGI#KOhM(9z+n_y8>^#~ zlA4xSnp2`=1=3j?TZVXi*pSxc@~pshjv;mAP(_bnt$(L)r?yQFE3trY?1y5#(n)MTNm;*!L?l*FPG zhEq0^(l5(@u3Ud1qtx@H<_(qxCXKE7e;GXXGBX@;wi-Lq9FRsYxdEC z7@?h>w|;;4sCm;#dHZZ0j)#qQ-F+(xY$pnP9aYaP5AN7vw>9MSyB@=4VVMW-c*Hd< zF8q4B=9}%wd+MTFjY?iCz5AlSdu5(MgtyMLM-43O42p9ewcUuC!@TZ+4Fk^}$p$8L GCjkJh=Y~H3 literal 1334 zcmeYdau#G@;9?VE;b012&;~MvxtJLk7=(B@n1t9kSOi!kI06_RF)(Os)&Hwd=E}^_ zIZGlKHbx2^XS|>=r|{zYD{Iw@oK{Lq zE;B#6NpN8iXAoeJUVg1VeSX0c88;Uwv5ea9DjB2;Fb`k9=z-t3E+&P$*2 z<%^>KxQkw9bhwpZ;KaxA=X~2DMS+Dg#3Y z(94VrTwo0LKLfJ>gQWPJOh&K?A|jZIMSzM$AZpPSgUvqxu?0eYgWC0DDl@~UBYeUe zmRj=Uc{&y8J@lP5)!I|Rb=3*WbN~0hig>}=U9e}#+J`MG*3PZXH9sx( z^ZBxS=d*$;y)I>J()^=QCuHAaqM;SzRuRHc$vrK4s#6tnEuWg!9es=0Jk#jO+Zcmou<*Be_KbKjY7 zDfW&*G}y<*T$ELS8RC!M3}3k!j)euAJ7m6MJ8a-^vn-1Yj`x2Npv_Y_Yb?(bgg$PKC-huN$a!Ubf;wrri+!%vHxv2 z;Jks{aMWJtZ(Ezgoajb_(CbS2 zF`@lhO&hg^u!cL2OX+ddfStRuXQZTre>q!adj90ihQGSi9No+UtP%|k0!mB_JQ^n$ P4LF;=Ff;oHIZFZny-3H~ diff --git a/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-1 b/test/test_data/parquet/append_09.db/append_09/manifest/manifest-list-ba2c5ba9-2dfd-4d39-af49-9f88fa5c029f-1 index 41ad2bdf99d5b2c6e763135cfa61c14a340f55c1..0097ed46f429084a1a1fcafbe15bdeb4e027aaa3 100644 GIT binary patch literal 1118 zcmbVL&u-H&9Covc0|yQW?E!q+p(&_cVe4TiG)9X^Qq&{`Q5DOHoh~SGD#t@ABL`jq z!JP{i?p!$XI6TAnlXRsG?F6GaIrjI*-}g)U{)<|Dm%J2dGYd{wLcZNNgK{=yunPqX zQbAz@a*}MkXHycCo2i&INwGd*%_)hJlsD&M6ULb!l9lu@VlmBNcXak!2@lc0G5U6K zxbTX&gn45Hcxadi+nR+|kW7k*Pc~7G@vMT1(>09kSy^Kk=G7LwCg!fwgT$9Z*FPVX358aDL5lv_r6;PoCM zcL`d$l*8Y!sC*1%(5<KBX9r5*e!l=q C3S(;k literal 1179 zcmeYdau#G@;9?VE;b074&;~MvxtJLk7=(B@7=_q4SOi!kSOOSUFfeFr)&Hwd8q35W z!opR|#mXR*#lfhQ!lj>^n3tKBT3n)=nq+K}l#*hkYm{tctZQPKn5LU#nwY3-YHXfp zYH5~Yk(O$#Yak>M7r?;8AQ8%_yMWaYXq_0uI)0#aoE(c(1s17FEKaTxg9&ipr|8g)`ISid9xO+Zcmou<*Be_IbKjY7DYmXJX_KICiF z^0bqA_WE$#;Cd7F;Kf><*at6|d;ZTZESf­QR<`ROl5-kpe< zzVP}>X_4K^=JUGrUaMca-}7s>YyD>aH}h7QO5R(2#A3ZL=gN#b+csoI&srqP_ccREa325R!!He1UOH3fY(BGeiUFs$ee5^JT~@cI zTY0a16Iwf)MOiXo!L>EBd=oz?ym9>Dc;7*NbKf_4#xz;wdj2=zqN{hry?Nw4v$Unf zz=Olt>Hdy4_Pe?x-C5r(%3u`28nTS8rpHtRcJ9uek&+Vr(b&Lfz}fVLnb|+cSrP!xN_ZIn diff --git a/test/test_data/parquet/append_09.db/append_09/schema/schema-0 b/test/test_data/parquet/append_09.db/append_09/schema/schema-0 index 2314054c7..b992da387 100644 --- a/test/test_data/parquet/append_09.db/append_09/schema/schema-0 +++ b/test/test_data/parquet/append_09.db/append_09/schema/schema-0 @@ -24,7 +24,7 @@ "options" : { "bucket" : "2", "bucket-key" : "f2", - "manifest.format" : "orc", + "manifest.format" : "avro", "file.format" : "parquet" }, "timeMillis" : 1755758260435 From 3d3c32f622f67d79e0dfa7d25f2392ef6498aca2 Mon Sep 17 00:00:00 2001 From: lxy264173 Date: Mon, 31 Aug 2026 15:51:01 +0800 Subject: [PATCH 2/3] fix tests --- .../core/operation/key_value_file_store_scan_test.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/paimon/core/operation/key_value_file_store_scan_test.cpp b/src/paimon/core/operation/key_value_file_store_scan_test.cpp index 59f2dc139..d08d1d494 100644 --- a/src/paimon/core/operation/key_value_file_store_scan_test.cpp +++ b/src/paimon/core/operation/key_value_file_store_scan_test.cpp @@ -70,12 +70,13 @@ class KeyValueFileStoreScanTest : public testing::Test { Result> CreateFileStoreScan( const std::string& table_path, const std::shared_ptr& scan_filter, int32_t table_schema_id, int32_t snapshot_id) const { - std::map options_map = {{Options::MANIFEST_FORMAT, "orc"}}; - PAIMON_ASSIGN_OR_RAISE(CoreOptions core_options, CoreOptions::FromMap(options_map)); - auto fs = core_options.GetFileSystem(); + PAIMON_ASSIGN_OR_RAISE(CoreOptions bootstrap_options, CoreOptions::FromMap({})); + auto fs = bootstrap_options.GetFileSystem(); auto schema_manager = std::make_shared(fs, table_path); PAIMON_ASSIGN_OR_RAISE(std::shared_ptr table_schema, schema_manager->ReadSchema(table_schema_id)); + PAIMON_ASSIGN_OR_RAISE(CoreOptions core_options, + CoreOptions::FromMap(table_schema->Options())); auto arrow_schema = DataField::ConvertDataFieldsToArrowSchema(table_schema->Fields()); PAIMON_ASSIGN_OR_RAISE(std::vector external_paths, From cdd4440a291e69069f886ce81306d8c07479610f Mon Sep 17 00:00:00 2001 From: lxy264173 Date: Mon, 31 Aug 2026 19:07:53 +0800 Subject: [PATCH 3/3] fix ci --- src/paimon/common/utils/string_utils.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/paimon/common/utils/string_utils.cpp b/src/paimon/common/utils/string_utils.cpp index 5aed0b994..dd361f87c 100644 --- a/src/paimon/common/utils/string_utils.cpp +++ b/src/paimon/common/utils/string_utils.cpp @@ -97,7 +97,7 @@ bool StringUtils::EndsWith(const std::string& str, const std::string& suffix) { bool StringUtils::IsBlank(std::string_view str) { size_t offset = 0; while (offset < str.size()) { - const uint8_t first = static_cast(str[offset]); + const auto first = static_cast(str[offset]); uint32_t code_point = 0; size_t length = 0; if (first <= 0x7f) { @@ -119,7 +119,7 @@ bool StringUtils::IsBlank(std::string_view str) { return false; } for (size_t i = 1; i < length; ++i) { - const uint8_t continuation = static_cast(str[offset + i]); + const auto continuation = static_cast(str[offset + i]); if ((continuation & 0xc0) != 0x80) { return false; }