Motivation
Paimon Rust can plan deletion vectors and apply them in DataFileReader, but primary-key tables using partial-update or aggregation are always routed to KeyValueFileReader. That reader rejects splits carrying deletion vectors, so otherwise readable compacted plans fail with KeyValueFileReader does not support deletion vectors.
The requested scope is read-only compatibility for files whose merge result is already fully materialized.
Solution
Route the whole plan through DataFileReader only when deletion vectors are enabled, deletion-vectors.merge-on-read is disabled, every split is raw-convertible, every file is above level 0, and every file has a known zero delete_row_count.
Keep failing closed for level-0 files, ambiguous metadata, mixed plans that still need per-key merging, merge-on-read, and deletion-vector writes.
Anything else?
This is independent of #572 and #573.
Willingness to contribute
Motivation
Paimon Rust can plan deletion vectors and apply them in
DataFileReader, but primary-key tables usingpartial-updateoraggregationare always routed toKeyValueFileReader. That reader rejects splits carrying deletion vectors, so otherwise readable compacted plans fail withKeyValueFileReader does not support deletion vectors.The requested scope is read-only compatibility for files whose merge result is already fully materialized.
Solution
Route the whole plan through
DataFileReaderonly when deletion vectors are enabled,deletion-vectors.merge-on-readis disabled, every split is raw-convertible, every file is above level 0, and every file has a known zerodelete_row_count.Keep failing closed for level-0 files, ambiguous metadata, mixed plans that still need per-key merging, merge-on-read, and deletion-vector writes.
Anything else?
This is independent of #572 and #573.
Willingness to contribute