Finish support for automatic custom struct deserialization (#73)
authorJacob Quinn <quinn.jacobd@gmail.com>
Sat, 28 Nov 2020 20:18:27 +0000 (13:18 -0700)
committerGitHub <noreply@github.com>
Sat, 28 Nov 2020 20:18:27 +0000 (13:18 -0700)
commit4577b8a5f01c28e36d7b9914a2c28ed020612fc5
tree9111fcae382d8fea3b4bda42b764ed63f3ab3353
parent9f805ba6fc8126364efb492a29010a353b005fb6
Finish support for automatic custom struct deserialization (#73)

* Finish support for automatic custom struct deserialization

As pointed out on a slack post, we were supporting automatic custom
struct _serialization_, but not deserialization; the custom structs were
just deserialized as `NamedTuple`s. In this PR, I propose using the
custom extension type machinery to ensure custom structs can be
deserialized. Currently this will all happend automatically for the
user, but I'd like to update the documentation around how users should
approach using arrow for custom types, because they _should_ get in the
habit of calling `ArrowTypes.registertype!` to ensure their serialized
custom struct can always be deserialized. For example, if a user
serializes and deserialized a custom struct in the same Julia session,
it will currently "just work", but if the custom struct column is
serialized in a session, then deserialized in a new session, where the
type hasn't been defined or registered, the column will be deserialized
as `NamedTuple`.

* remove unnecessary definition

* Switch CI to github actions and update docs for custom structs

* Update CI
.github/workflows/ci.yml [new file with mode: 0644]
docs/src/manual.md
src/arraytypes/arraytypes.jl
src/arraytypes/struct.jl
test/runtests.jl