raunaqmorarka commented on code in PR #18359:
URL: https://github.com/apache/iceberg/pull/18359#discussion_r4340590920


##########
core/src/main/java/org/apache/iceberg/DeleteFileIndex.java:
##########
@@ -519,6 +516,26 @@ private Collection<DeleteFile> loadDeleteFiles() {
       return files;
     }
 
+    /** Copies a delete file with the minimum stats needed for indexing to 
limit memory use. */
+    private static DeleteFile copyWithMinStats(
+        DeleteFile file, Map<String, String> referencedDataFiles) {
+      if (file.content() == FileContent.EQUALITY_DELETES) {
+        // copy with stats for better filtering against data file stats
+        return file.copyWithStats(Set.copyOf(file.equalityFieldIds()));
+      }
+
+      String referencedDataFile = 
ContentFileUtil.referencedDataFileLocation(file);
+      if (referencedDataFile != null && file instanceof GenericDeleteFile) {
+        // a file-scoped position delete is matched by location and needs no 
stats
+        String location = 
referencedDataFiles.computeIfAbsent(referencedDataFile, key -> key);

Review Comment:
   Done. DVs now use `copyWithoutStats()` and skip location sharing, since a 
data file has at most one DV.



##########
core/src/main/java/org/apache/iceberg/GenericDeleteFile.java:
##########
@@ -98,6 +108,19 @@ public DeleteFile copyWithoutStats() {
     return new GenericDeleteFile(this, false /* drop stats */, null);
   }
 
+  /**
+   * Copies this file without column-level stats and records the referenced 
data file.
+   *
+   * <p>A file-scoped position delete is matched to its data file by location, 
so the file_path
+   * bounds that identify the data file are not needed once the location is 
recorded.
+   *
+   * @param referencedDataFile location of the data file that all deletes 
reference
+   * @return a copy without stats that references the given data file
+   */
+  DeleteFile copyWithoutStats(String referencedDataFile) {

Review Comment:
   Renamed to `copyAsFileScoped(String referencedDataFile)`.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to