| 857 | } |
| 858 | |
| 859 | END_PARQUET_CATCH_EXCEPTIONS |
| 860 | // Gather children arrays and def levels |
| 861 | for (auto& child : children_) { |
| 862 | std::shared_ptr<ChunkedArray> field; |
| 863 | RETURN_NOT_OK(child->BuildArray(validity_io.values_read, &field)); |
| 864 | ARROW_ASSIGN_OR_RAISE(std::shared_ptr<ArrayData> array_data, ChunksToSingle(*field)); |
| 865 | children_array_data.push_back(std::move(array_data)); |
| 866 | } |
| 867 | |
| 868 | if (!filtered_field_->nullable() && !has_repeated_child_) { |
| 869 | validity_io.values_read = children_array_data.front()->length; |