aokolnychyi commented on code in PR #11044:
URL: https://github.com/apache/iceberg/pull/11044#discussion_r1737974697


##########
core/src/main/java/org/apache/iceberg/InheritableMetadataFactory.java:
##########
@@ -46,11 +49,14 @@ static class BaseInheritableMetadata implements 
InheritableMetadata {
     private final int specId;
     private final long snapshotId;
     private final long sequenceNumber;
+    private final String manifestPath;
 
-    private BaseInheritableMetadata(int specId, long snapshotId, long 
sequenceNumber) {
+    private BaseInheritableMetadata(
+        int specId, long snapshotId, long sequenceNumber, String manifestPath) 
{

Review Comment:
   I agree. It seems easier than hacking `GenericAvroReader` like we do for 
positions in manifests.



##########
api/src/main/java/org/apache/iceberg/ContentFile.java:
##########
@@ -192,4 +192,12 @@ default F copyWithStats(Set<Integer> requestedColumnIds) {
   default F copy(boolean withStats) {
     return withStats ? copy() : copyWithoutStats();
   }
+
+  /**
+   * Returns the path of the manifest which this file is referenced in or null 
if it was not read
+   * from a manifest.
+   */
+  default CharSequence manifestPath() {

Review Comment:
   We need to discuss using `CharSequence` for paths in our APIs. I am not sure 
this approach is working out very well. I believe the idea was to expose Avro 
`Utf8` directly. The problem is that `Utf8` is not serializable. Therefore, we 
always convert `Utf8` to `String`. Working with `CharSequence` adds a lot of 
complexity for no performance benefit. Puffin and a few other places use 
`String` for paths.
   
   @rdblue, is my assumption about `CharSequence` correct? What are your 
thoughts now?



##########
api/src/main/java/org/apache/iceberg/ContentFile.java:
##########
@@ -192,4 +192,12 @@ default F copyWithStats(Set<Integer> requestedColumnIds) {
   default F copy(boolean withStats) {
     return withStats ? copy() : copyWithoutStats();
   }
+
+  /**
+   * Returns the path of the manifest which this file is referenced in or null 
if it was not read
+   * from a manifest.
+   */
+  default CharSequence manifestPath() {

Review Comment:
   Shall we put this method before `pos()` so both are co-located? 



-- 
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

Reply via email to