szehon-ho commented on code in PR #10020: URL: https://github.com/apache/iceberg/pull/10020#discussion_r1540218841
########## core/src/main/java/org/apache/iceberg/PositionDeletesTable.java: ########## @@ -278,28 +344,38 @@ public void close() throws IOException { @Override public CloseableIterator<ScanTask> iterator() { + // Partition filter by base table filter Expression partitionFilter = Projections.inclusive(spec, isCaseSensitive()).project(baseTableFilter); - // Filter partitions + // Read manifests (use original table's partition ids to de-serialize partition values) CloseableIterable<ManifestEntry<DeleteFile>> deleteFileEntries = - ManifestFiles.readDeleteManifest(manifest, table().io(), transformedSpecs) + ManifestFiles.readDeleteManifest(manifest, table().io(), table().specs()) Review Comment: Here is a bit tricky. We need to read manifests using the original partition field ids (as that's how they are stored in the manifest file), so go back to use the original table's partition spec which preserves the original field ids. But now we can no longer use the schema of that spec to bind the user-provided partition filter, because those field ids are the original ones and do not match the reasisgned ones, so we need to split the row-filter eval out and evaluate it separately outside the ManifestReader. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org