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

   ### Describe the issue this Pull Request addresses
   
   closes #20275
   
   A table created below version 8 only persisted 
`hoodie.table.keygenerator.type`, plus the class for user-provided key 
generators. Hudi 0.x only reads `hoodie.table.keygenerator.class`, so it saw no 
key generator on such a table and silently fell back to the write config.
   
   ### Summary and Changelog
   
   - `TableBuilder.build()` also persists `hoodie.table.keygenerator.class` 
when the table version is below 8, the same thing the 8 to 7 downgrade already 
does.
   - `HoodieTestUtils.assertTableConfigs` asserts the exact persisted 
`hoodie.properties`, and one table-config test per engine (table builder, 
streamer, Spark datasource, Spark SQL, Flink) now uses it across table versions 
6, 8, 9 and 10. Future table config changes can extend these tests instead of 
adding new ones. Two Spark tests that only checked the table version on 
creation are folded in.
   
   ### Impact
   
   New tables below version 8 also carry `hoodie.table.keygenerator.class`. 1.x 
already resolves the class ahead of the type, so 1.x behavior is unchanged. 
Existing tables are not rewritten.
   
   ### Risk Level
   
   low
   
   Without the fix, the new tests fail only on the missing key generator class 
at version 6, and pass at 8, 9 and 10.
   
   ### Documentation Update
   
   none
   
   ### Contributor's checklist
   
   - [x] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [x] Enough context is provided in the sections above
   - [x] Adequate tests were added if applicable
   


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