Replies: 2 comments 3 replies
-
The error you are getting suggests you are decoding something as the wrong flatbuffer type, that is an internal error from the flatbuffer verification not arrow. IIRC DictionaryBatch are encoded differently from regular RecordBatch There is also #3389 which may be related |
Beta Was this translation helpful? Give feedback.
3 replies
-
Oops! As mentioned before, changing the |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
TL;DR:
Printing that string:
When querying from a Rust client to a Rust server.
Using:
arrow-rs
0.45
(both client and server)Details
I'm struggling with sending dictionaries back in Flight SQL from my Rust implementation.
I'm prototyping a Flight SQL server implementation which works fine so long as I don't query dictionary types.
I've had a few stumbling blocks, but the current one that I'm stuck on is serializing a schema with multiple dictionary columns. These columns are all
Dictionary<Int32, Utf8>
: They are effectively interned strings and a core piece of functionality for what I do.My
async fn do_action_create_prepared_statement
runs successfully and looks like so:The logged schema looks a bit like this:
This causes the client to reject the schema when processing the prepare action's response.
Note how it contains multiple
dict_id
s: I previously (incorrectly) had left all the dict fields withdict_id == 0
and the schema was deserialized just fine by the client. It failed (rather cryptically) later on, but I was able to debug that issue.When ran in a debugger, this is the backtrace:
Here's my test Rust client:
Arrow Flight SQL is pretty cool, but I keep encountering issues with dictionaries. For more context on what I'm up to:
adbc_driver_flightsql
segfault in Go code arrow-adbc#975Any help would be very welcome!
Beta Was this translation helpful? Give feedback.
All reactions