Skip to content

Conversation

@adriangb
Copy link
Contributor

This was added in #174 but I think a better fix is to just configure the IPC encoder to send dictionaries across the wire.

Copy link
Collaborator

@gabotechs gabotechs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I imagine this could potentially allows to save on bandwidth for when dictionary encoded values are in the schema.


let stream = FlightDataEncoderBuilder::new()
.with_schema(stream.schema().clone())
.with_dictionary_handling(DictionaryHandling::Resend)
Copy link
Collaborator

@gabotechs gabotechs Oct 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, with this line, we are telling the flight data encoder to just send the dictionaries over the wire instead of hydrating them and re-encoding them. Is that right?

If you could include a very brief comment above this line that would be awesome 🙏

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great optimization. Thanks @adriangb

Copy link
Collaborator

@gabotechs gabotechs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 thanks @adriangb!

@gabotechs gabotechs merged commit 2f29bd1 into datafusion-contrib:main Oct 27, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants