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]
