thswlsqls opened a new issue, #17050:
URL: https://github.com/apache/iceberg/issues/17050

   **Apache Iceberg version**
   main @ 035fc1e40
   
   **Query engine**
   N/A — engine-agnostic (Delta Lake migration action)
   
   **Please describe the bug**
   `BaseSnapshotDeltaLakeTableAction.getFullFilePath()` 
(`delta-lake/src/main/java/org/apache/iceberg/delta/BaseSnapshotDeltaLakeTableAction.java`
 line 457) joins a relative data file path with `File.separator`, determined by 
the host OS running the JVM, not the target filesystem. On Windows, this 
produces a broken path such as `s3://bucket/table\part-00000.parquet` for any 
Delta table whose `AddFile`/`RemoveFile` entries use relative paths, regardless 
of whether the target is local, S3, GCS, or HDFS.
   
   `core/src/main/java/org/apache/iceberg/RewriteTablePathUtil.java` (line 
63-65) already fixed this exact problem via `public static final String 
FILE_SEPARATOR = "/"`. `BaseSnapshotDeltaLakeTableAction` never received the 
same fix.
   
   **Steps to reproduce**
   Run `SnapshotDeltaLakeTable` on Windows against a Delta table whose data 
files use relative paths (the common case). Expected: `tableRoot + "/" + 
relativePath`. Actual: `tableRoot + "\" + relativePath`.
   
   **Additional context**
   `getFullFilePath` is the only path-construction call site for 
`AddFile`/`RemoveFile` (called from `buildDataFileFromAction`, line 360).
   


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