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]
