155 implemented the conversion of Arrow schemas to Iceberg which will be needed for reading data from Parquet files or otherwise. This PR implements the reverse, converting Iceberg schemas and types to Arrow schemas and data types. This is required for optimizing reads, pruning columns, constructing filter and projection expressions and so on.
The tests that were added are also updated to now be roundtrip tests where appropriate to ensure that we test both directions of Arrow -> Iceberg and Iceberg -> Arrow
155 implemented the conversion of Arrow schemas to Iceberg which will be needed for reading data from Parquet files or otherwise. This PR implements the reverse, converting Iceberg schemas and types to Arrow schemas and data types. This is required for optimizing reads, pruning columns, constructing filter and projection expressions and so on.
The tests that were added are also updated to now be roundtrip tests where appropriate to ensure that we test both directions of Arrow -> Iceberg and Iceberg -> Arrow