Temporarily fix compatibility for SchemaResult #26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a temporary workaround for issue #2445 in arrow-rs by extending
FlightService.get_schema()
to always prepend both the 32-bit continuation indicator and the 32-bit little-endian length toSchemaResult.schema
so it can be deserialized by the other Apache Arrow Flight implementations. To preserve compatibility with the Rust client (mdb
),execute_command()
have been extended to strip the first eight bytes ofSchemaResult.schema
. I have manually tested the changes with Go (using the code in Telegraf-Output-Apache-Arrow-Flight), Java, Python, and the Rust client (mdb
) using multiple different schemas. Finally, while slightly outside the scope of the PR, I have movedDoExchangeStream
beforeDoActionStream
so the order of the types should match the order of the methods that use them inFlightService
.