Skip to content

Conversation

@EmilyMatt
Copy link
Contributor

Which issue does this PR close?

Rationale for this change

The main issue I was trying to solve is that despite the unreachable!() block in the avro-to-arrow schema conversion, when providing an arrow schema to the reader, the writer_schema from the file could still contain Ref types, and we'd never know about it, there is no error handling there, the values would simply return as Null.
This is much more severe than just crashing due to a not-yet-implemented feature.
However I used this opportunity to implement this for the schema conversion as well.

What changes are included in this PR?

A new lookup method for the schema, both when resolving positions, and when actually converting avro schemas to arrow schemas, this will let us resolve Ref types under some constraints (Namely, arrow does not allow circular dependencies in schema, I'm not sure how this could ever be accomplished without some drastic changes in the way schemas are composed)

Are these changes tested?

Yes, added as many tests as I could think of.

Are there any user-facing changes?

Not really, should just work out of the box.

@github-actions github-actions bot added the datasource Changes to the datasource crate label Nov 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

datasource Changes to the datasource crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Ref types in Avro Reader.

2 participants