fix(io): keep null lists of structs when projecting Arrow data (#4065) The projection visitor rebuilds a list of structs from its offsets alone, which cannot represent a null list, so every null list<struct<...>> was turned into an empty list. On the write path this is persisted into the Parquet file and the null is lost for every reader. Rebuild the list from the original validity and offsets buffers instead, which also keeps the original array offset so sliced batches stay correct. Closes #3833
PyIceberg is a Python library for programmatic access to Iceberg table metadata as well as to table data in Iceberg format. It is a Python implementation of the Iceberg table spec.
The documentation is available at https://py.iceberg.apache.org/.