MCPcopy Create free account
hub / github.com/apache/arrow / TestCacheMetadata

Method TestCacheMetadata

cpp/src/arrow/dataset/scanner_test.cc:1000–1031  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

998 }
999
1000 void TestCacheMetadata(std::function<Status(Scanner*)> consume_scanner) {
1001 // Test that ClearCachedMetadata() is called if ScanOptions::cache_metadata is false.
1002 SetSchema({field("i32", int32())});
1003 auto batch = ConstantArrayGenerator::Zeroes(GetParam().items_per_batch, schema_);
1004 RecordBatchVector batches{batch, batch};
1005 auto frag1 = std::make_shared<ClearCachedMetadataFragment>(batches);
1006 auto frag2 = std::make_shared<ClearCachedMetadataFragment>(batches);
1007 auto check_metadata_clear_counts = [&](const std::vector<int>& expected) {
1008 auto actual =
1009 std::vector<int>{frag1->metadata_clear_count(), frag2->metadata_clear_count()};
1010 ASSERT_EQ(expected, actual);
1011 };
1012 {
1013 ScannerBuilder builder(
1014 std::make_shared<FragmentDataset>(schema_, FragmentVector{frag1, frag2}),
1015 options_);
1016 ASSERT_OK(builder.UseThreads(GetParam().use_threads));
1017 ASSERT_OK_AND_ASSIGN(auto scanner, builder.Finish());
1018 ASSERT_OK(consume_scanner(scanner.get()));
1019 check_metadata_clear_counts({0, 0});
1020 }
1021 options_->cache_metadata = false;
1022 {
1023 ScannerBuilder builder(
1024 std::make_shared<FragmentDataset>(schema_, FragmentVector{frag1, frag2}),
1025 options_);
1026 ASSERT_OK(builder.UseThreads(GetParam().use_threads));
1027 ASSERT_OK_AND_ASSIGN(auto scanner, builder.Finish());
1028 ASSERT_OK(consume_scanner(scanner.get()));
1029 check_metadata_clear_counts({1, 1});
1030 }
1031 }
1032};
1033
1034TEST_P(TestScanner, Scan) {

Callers

nothing calls this directly

Calls 4

metadata_clear_countMethod · 0.80
fieldFunction · 0.50
UseThreadsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected