thswlsqls opened a new pull request, #9152:
URL: https://github.com/apache/paimon/pull/9152

   
   ### Purpose
   
   fix #9151
   
   - Committing a batch whose partition values are all NULL threw NPE: 
`IcebergManifestEntryWriter.result()` passed the unknown (null) partition 
min/max straight to `IcebergConversions.toByteBuffer()`.
   - Omit unknown bounds instead. The Iceberg spec makes `lower_bound` (510) / 
`upper_bound` (511) optional, and `IcebergPartitionSummary.schema()` already 
declares both nullable.
   - Guard the reading side too, or the next non add-only commit hits the same 
null in `toPaimonObject()`.
   - The sibling `IcebergDataFileMeta.create()` has omitted unknown bounds 
since #4090; this path never got the equivalent guard.
   
   ### Tests
   
   - Added `IcebergCompatibilityTest#testNullPartitionValue`: commits `pt='a'`, 
a NULL-only batch, `pt='b'`, then `truncatePartitions(pt='a')`; asserts the 
omitted bounds and reads every row via `IcebergGenerics`.
   - Reverting either source alone fails that test: `toByteBuffer:83` without 
the writer guard, `toPaimonObject:167` without the reader guard.
   - `mvn -pl paimon-core -Dtest='Iceberg*Test' test` — 159 tests passed (41 in 
`IcebergCompatibilityTest`), checkstyle and spotless clean.
   
   
   


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