diff --git a/src/iceberg/table_scan.cc b/src/iceberg/table_scan.cc index 8a37d3627..43deb2aca 100644 --- a/src/iceberg/table_scan.cc +++ b/src/iceberg/table_scan.cc @@ -151,11 +151,13 @@ Result>> DataTableScan::PlanFiles() co ICEBERG_ASSIGN_OR_RAISE(auto manifest_files, manifest_list_reader->Files()); std::vector> tasks; + ICEBERG_ASSIGN_OR_RAISE(auto partition_spec, context_.table_metadata->PartitionSpec()); + auto partition_schema = partition_spec->schema(); + for (const auto& manifest_file : manifest_files) { - ICEBERG_ASSIGN_OR_RAISE( - auto manifest_reader, - ManifestReader::MakeReader(manifest_file.manifest_path, file_io_, - /* TODO(xiao.dong) partition schema*/ nullptr)); + ICEBERG_ASSIGN_OR_RAISE(auto manifest_reader, + ManifestReader::MakeReader(manifest_file.manifest_path, + file_io_, partition_schema)); ICEBERG_ASSIGN_OR_RAISE(auto manifests, manifest_reader->Entries()); // TODO(gty404): filter manifests using partition spec and filter expression