WZhuo opened a new pull request, #756:
URL: https://github.com/apache/iceberg-cpp/pull/756

   ## Summary
   
   `ParseDataFile()` in `manifest_reader.cc` iterated over rows for each 
partition child field and used `break` to skip null partition values. `break` 
exits the entire inner row loop, so once a null value was encountered, **all 
subsequent rows for that partition column were skipped** and never had their 
partition values parsed.
   
   The fix changes `break` to `continue`, so only the current null row is 
skipped while the remaining rows are still processed.
   
   ## Changes
   
   - `src/iceberg/manifest/manifest_reader.cc`: `break` → `continue` in the 
partition-value row loop.
   - `src/iceberg/test/manifest_reader_test.cc`: add regression test 
`NullPartitionValueDoesNotSkipSubsequentRows` that writes a manifest with a 
null partition value before non-null ones and verifies the later rows are 
parsed correctly.
   
   ## Testing
   
   - New test passes for manifest versions V1/V2/V3.
   - Confirmed the test fails with the original `break` 
(`partition.num_fields()` is 0 instead of 1 for rows after the null one).
   - Full `manifest_test` suite passes (171 tests).


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to