taoran92 opened a new issue, #10809:
URL: https://github.com/apache/paimon/issues/10809

   ## Search before asking
   
   - [x] I searched the existing issues and found no duplicate request.
   
   ## Motivation
   
   When the Python backend detects an attempt to delete a file that is no 
longer present, the error reports only the file name. The partition and bucket 
are available in the manifest entry but omitted from the message, making the 
affected data harder to locate.
   
   For example, deleting the same file twice in partition `dt=2026-10-26`, 
bucket `0`, produces:
   
   ```text
   File deletion conflicts detected! Give up committing.
   Trying to delete file data-<uuid>-0.parquet which is not previously added.
   ```
   
   The conflict is correctly rejected, but the error should also identify the 
partition and bucket.
   
   ## Solution
   
   Include readable partition values and the bucket in the missing-file 
deletion conflict message:
   
   ```text
   File deletion conflicts detected! Give up committing.
   Trying to delete file data-<uuid>-0.parquet which is not previously added
   (partition=dt=2026-10-26, bucket=0).
   ```
   
   - Reuse the existing partition value conversion and escaping rules, 
including multi-column partitions and configured default partition names.
   - Use `<non-partitioned>` for non-partitioned tables.
   - Fall back to the original partition values if formatting fails, preserving 
the file name, bucket, and original conflict.
   - Keep conflict detection, exception types, and commit retry behavior 
unchanged.
   
   ## Anything else?
   
   Reproduced on `apache/paimon` master at 
`c12606b203de692db9d9423195d3a0c2cf1698e0`, using Python 3.11 and PyArrow 
19.0.1.
   
   Minimal reproduction:
   
   1. Create an append-only table partitioned by `dt`, with 
`write.native.enabled=false` and `commit.native.enabled=false`.
   2. Write and commit a row with `dt=2026-10-26`.
   3. Build a `CommitMessage` whose `deleted_files` contains the newly 
committed file, and commit it successfully.
   4. Submit the same deletion through a new committer. It fails with the 
message above, without partition or bucket context.
   
   Related Java improvement: 
[#10566](https://github.com/apache/paimon/pull/10566). This request covers the 
Python backend’s missing-file deletion conflict path.
   
   ## Are you willing to submit a PR?
   
   - [x] I'm willing to submit a PR!
   


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

Reply via email to