tree f8d411d1b45459368567dc51f683ed78a919d795
parent ac199b0e377502ea0f1fa5ced7fda897a01b82a9
author Romain Poncet <romain.pct@gmail.com> 1714936032 +0100
committer GitHub <noreply@github.com> 1714936032 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmN9jhCRC1aQ7uu5UhlAAA8lsQABD2Rqi9B7eEhSTLM+gUaooH
 dpYtt8QY4gKfFiKPOlENpQFIsza553JwMseTyC9vk1d9lIVtZ0CKHNshcNGNgmKK
 kPE8eglUY2+YilbdEwOp6CYFFPPi9/bFPNTZRKtBMDnXpm8stzpKDUc4KEG/9o/3
 5mqSF5t5j2170FLhHvJyq6ueMTeYj90lsXc5C2tC1jxakLVKPA0tFqTBMVSS67/P
 POnmINS21q3RaVp9t/O1D64qUgw5Aenz2XAHmuFP90bGvllwIMkvAVSadg6SKz8l
 hDIMPqFfK6JE2O+ZhMj/HbTmrN/PUW2IJJU9VekVrruua8SbtGc5MdA18g7hb7kH
 LrThnL0JpMN1Y0LrfXc05qSMFhR2QXUup+9snh3Nr4Ex66DdQTQxlS7e7R97LXKj
 AFV1ojyaAu6N6ogiEOcO5YHVkLXBQc/A4/TAfwsljjDzx7+H74+zmLq0Y/sGHZ5E
 ZtkwBCnjXOk7GCX1hTD/OXwMU3h97hVINs2a5aT83GgzKBMOMYzRdh7hg3MCgWR6
 LFcZV4BLiA5np22o5Iubp/HhuNr/HlZFPo4LtwgpVxwhTDztOwbD2aIfEsRKZKwv
 WE6ItAKYWxQBvuP79vJGyhY68FvpjBIt9gVMqbZ2bazOK3Wl7ty6JyNerUrxY7Rz
 jNKM1xhfO9B7h1CcwzJY
 =w5Tw
 -----END PGP SIGNATURE-----
 

Compatibility of schemas with nested types (#504)

Hi,

Here is a minimal example of the issue I've encountered.

```julia
 struct A
    x::Int
end

struct B
    a::A
end

v = [B(A(i)) for i =1:3]

io = IOBuffer()
Arrow.write(io, v; file=false)
seekstart(io)
Arrow.append(io, v) # throws
```

I don't know if this is really necessary, or if I'm not using this
library properly, but this issue makes it difficult to append to arrow
files with nested types.

Since I've only added more cases where the call to `append` can succeed,
I do not think that this creates retro-compatibility issues.

Thanks for the review!

---------

Co-authored-by: Ben Baumgold <4933671+baumgold@users.noreply.github.com>