yihua opened a new pull request, #868:
URL: https://github.com/apache/hudi-rs/pull/868

   ## Description
   
   closes #866
   
   An embedding column written by `append` could not be upserted or updated 
afterwards: the table schema comes back from Avro with the list item named 
`element`, while PyArrow and most Arrow producers name it `item`, and the write 
path compared types exactly. `FixedSizeList` columns were rejected outright 
because Avro has only `array`.
   
   Each write function now normalizes its batches right after its timeline 
reload: fixed-size lists are widened to lists at any depth, and a column that 
matches the table's column up to list item names is cast to the table's exact 
type. The table schema is read only when a batch carries a list column. Struct 
children still have to match by name, so a differently named child is rejected 
as before, and the downstream schema checks stay exact.
   
   ## How are the changes test-covered
   
   - [ ] N/A
   - [x] Automated tests (unit and/or integration tests)
   - [ ] Manual tests
     - [ ] Details are described below
   
   `table_write_list_columns_tests` covers upsert, update, overwrite and a 
two-batch upsert with mismatched item names, fixed-size lists on append and 
upsert, merge-on-read upsert and update, a handle that has not seen the latest 
commit, a fixed-size list nested in a struct, and rejection of a struct whose 
child names differ. All seven fail on `main` and pass here.
   
   https://claude.ai/code/session_01PpvixgKyY2VqVo8UAdtUeF
   


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