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

   ### Search before asking
   
   - [X] I searched in the [issues](https://github.com/apache/paimon/issues) 
and found nothing similar.
   
   ### Paimon version
   
   master (6b29174a82)
   
   ### Compute Engine
   
   Java API (`ReadBuilder.newStreamScan()`)
   
   ### Minimal reproduce step
   
   1. Create a data-evolution table `(f0 INT, f1 STRING, f2 BLOB, f3 BLOB)` 
with `row-tracking.enabled` and `data-evolution.enabled`.
   2. Write `f0, f1` for two rows, row ids [0, 1].
   3. Open a stream scan and consume the initial plan.
   4. Commit an update that writes only `f2, f3` for row ids [0, 1]. Its delta 
holds only two `.blob` files.
   5. Plan the next delta, either projecting `f0`, or projecting `f2` with 
`deletion-vectors.enabled = true`.
   
   ### What doesn't meet your expectations?
   
   Both plans throw:
   
   ```
   IllegalStateException: A data-evolution row range group must contain a 
normal (non-blob, non-vector-store) anchor file.
   ```
   
   The normal file of this row range is in an earlier snapshot, so the delta 
group has no normal file, but `retrieveAnchorFile` is still called on the whole 
group: in `DataEvolutionFileStoreScan.pruneByReadType` when deletion vectors 
are on, and when no file in the group matches the projection; and in 
`DataEvolutionSplitRead.readDeletionVector`.
   
   Expected: the delta reads like a delta that updates only `f1`, which already 
returns both rows with the unprojected columns NULL, with or without deletion 
vectors.
   
   ### Anything else?
   
   Returning the group unchanged when nothing matches is not enough: a blob 
bunch whose read type has no blob field fails with "Blob bunch read type should 
contain a blob field."
   
   Found while reviewing #9966, which keeps these groups unchanged but does not 
fix this.
   
   ### 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