Description
I tried to get a db using tree-sitter graphs working, but I encountered an issue pretty quickly where it would save successfully but it wouldn't be able to load the database back using load_graph_for_file_or_directory
successfully again.
Here's a couple issues I've noticed:
There's a place where the code refers to a json
column which doesn't exist anymore, shouldn't this be value
instead?
stack-graphs/stack-graphs/src/storage.rs
Line 504 in d15b259
In addition, even after this issue is fixed, the MessagePack serialization is currently using rmp_serde::to_vec
, and as a result the deserializer encounters issues due to the use of a lot of #[serde(skip_serializing_if = "Option::is_none")]
in the StackGraph structure.
Since its all unlabeled array elements, the MessagePack decoder fails to parse fields in the right order correctly, giving a cryptic error:
invalid type: integer `1`, expected a string
It might be a good idea to use rmp_serde::to_vec_named
instead or to move back to JSON again, or alternatively remove the skip serializing option on the fields (but if going with this option it would be good to have a thorough check to ensure it doesn't have any edge cases).