Skip to content

Commit 0318da2

Browse files
committed
fix(scan): preserve partition listing and exact-hit test coverage
1 parent 3240d0c commit 0318da2

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

‎src/paimon/core/operation/append_only_file_store_scan_test.cpp‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,11 @@ TEST(AppendOnlyFileStoreScanTest, PartitionPruningAcrossCacheModes) {
11121112
scan->partition_filter_ = counting;
11131113
ASSERT_OK_AND_ASSIGN(auto plan, scan->CreatePlan());
11141114
ASSERT_EQ(counting->row_calls_.load(), 2);
1115-
ASSERT_GT(counting->stats_calls_.load(), 0);
1115+
if (mode == 2 && scans > 0) {
1116+
ASSERT_EQ(counting->stats_calls_.load(), 0);
1117+
} else {
1118+
ASSERT_GT(counting->stats_calls_.load(), 0);
1119+
}
11161120
ASSERT_EQ(plan->Files().size(), partition == 99 ? 0 : 1);
11171121
if (partition != 99) {
11181122
ASSERT_EQ(plan->Files()[0].Partition().GetInt(0), partition);
@@ -1190,7 +1194,7 @@ TEST(AppendOnlyFileStoreScanTest, PartitionPruningSkipsExcludedMetadataInCreateP
11901194
if (mode == 2) {
11911195
// Seed the complete snapshot directly: rebuilding must decode every partition.
11921196
SnapshotLiveManifestEntries entries(8);
1193-
entries.Put(1, {kept, excluded});
1197+
entries.Put(1, {kept, excluded}, /*total_data_files=*/2);
11941198
ASSERT_OK(scan->StoreSnapshotLiveManifestEntries(0, entries));
11951199
}
11961200
for (int32_t attempt = 0; attempt < 2; ++attempt) {

‎src/paimon/core/operation/file_store_scan.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,11 @@ FileStoreScan::RawPlan::GroupFiles FileStoreScan::RawPlan::GroupByPartFiles(
152152
}
153153

154154
Result<std::vector<PartitionEntry>> FileStoreScan::ReadPartitionEntries() const {
155-
PAIMON_ASSIGN_OR_RAISE(std::optional<Snapshot> snapshot, ReadSnapshot());
156-
int64_t all_data_files = 0;
155+
std::optional<Snapshot> snapshot;
157156
std::vector<ManifestFileMeta> all_manifest_file_metas;
158157
std::vector<ManifestFileMeta> filtered_manifest_file_metas;
158+
PAIMON_RETURN_NOT_OK(
159+
ReadManifests(&snapshot, &all_manifest_file_metas, &filtered_manifest_file_metas));
159160
std::vector<ManifestEntry> manifest_entries;
160161
PAIMON_RETURN_NOT_OK(ReadFileEntries(filtered_manifest_file_metas, &manifest_entries,
161162
/*apply_scan_filter=*/true));

0 commit comments

Comments
 (0)