Arrow tables with deeply nested lists and structs can make Arrow.jl spend too much time in compilation.
I uploaded an empty Arrow table that can trigger this behavior: observation.empty.arrow.gz
A simple program that reads this table and writes it again can take several minutes:
julia -e 'using Arrow; t = Arrow.Table("observation.empty.arrow", convert = false); @time Arrow.write("copy-of-observation.empty.arrow", t)'
250.863146 seconds (58.05 M allocations: 3.791 GiB, 1.07% gc time, 99.99% compilation time)
Using Julia 1.10.2 and Arrow 2.7.1.