yihua opened a new issue, #802:
URL: https://github.com/apache/hudi-rs/issues/802

   ### Description of the bug
   
   Two merge-on-read reads fail on log files that Hudi writes:
   
   1. A table upgraded to version 6 from an earlier version keeps V2 log blocks 
(written by Hudi 0.13 and earlier) until compaction. hudi-rs refuses them: 
`Only support log block version 3 but got: V2`. V2 and V3 Avro data blocks 
share one layout, so they can be read. V2 delete blocks are Kryo-serialized and 
would still need a clear refusal.
   2. A log block whose Avro schema has an `enum` field fails to merge: 
`reconcile: column '<name>' type Dictionary(Int32, Utf8) incompatible with 
target Utf8`. arrow-avro decodes the enum as a string dictionary, while the 
table schema and parquet base files hold the column as `Utf8`.
   
   ### Steps To Reproduce
   
   1. MOR table (version 6) with a parquet base file and an Avro log block that 
updates or inserts a row, where the block is stamped V2, or the schema has an 
`enum` field.
   2. Read a snapshot through `Table::read`.
   
   ### Expected behavior
   
   Both reads return the merged rows, with the enum column as `Utf8`. A V2 
delete block is refused with an error naming the block kind and version.
   
   ### Software information
   
   - Operating system: any
   - Rust version: 1.94
   - Project version: main
   


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