Skip to content

Fix arrow-array/arrow-schema version conflict blocking parquet upgrade to 58.x #113

Description

@coderabbitai

Summary

Building chutoro-providers-dense fails after bumping parquet to v58.0.0 (PR #107) because the crate directly depends on arrow_array and arrow_schema at v57.x, while parquet v58.0.0 requires v58.x of those same crates. Cargo ends up with two versions of each in the dependency graph, and the trait and type identities diverge.

Errors

E0599 — wrong RecordBatchReader version imported

error[E0599]: no method named `schema` found for struct `ParquetRecordBatchReader` in the current scope
  --> chutoro-providers/dense/src/provider.rs:83:29
   |
83 |         let schema = reader.schema();
   |                             ^^^^^^ private field, not a method
   |
note: there are multiple different versions of crate `arrow_array` in the dependency graph

RecordBatchReader is imported from arrow_array v57 in provider.rs, but ParquetRecordBatchReader (from parquet v58) implements the v58 version of the trait. The two trait instances are not interchangeable.

E0277 — From<ArrowError> not implemented for the v58 error type

error[E0277]: `?` couldn't convert the error to `DenseMatrixProviderError`
  --> chutoro-providers/dense/src/provider.rs:95:30

DenseMatrixProviderError in errors.rs implements From<arrow_schema::ArrowError> (v57 path), but the iterator from parquet v58 yields arrow_schema::error::ArrowError (v58 path).

E0308 — DataType from two different arrow_schema versions

error[E0308]: mismatched types
   --> chutoro-providers/dense/src/provider.rs:102:29
    |
102 |                     actual: column_array.data_type().clone(),
    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `arrow_schema::DataType`, found `arrow_schema::datatype::DataType`

The DataType used in errors.rs comes from arrow_schema v57, while data_type() on an array from parquet v58 returns the v58 type.

Fix

Bump the direct dependencies on arrow-array and arrow-schema (and any other arrow-* crates) in chutoro-providers/dense/Cargo.toml to v58.x to align with parquet v58.0.0.

References

Raised by @leynos.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions