You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by qu...@apache.org on 2023/06/08 14:00:29 UTC

[arrow-julia] branch jq-458 created (now a988fb9)

This is an automated email from the ASF dual-hosted git repository.

quinnj pushed a change to branch jq-458
in repository https://gitbox.apache.org/repos/asf/arrow-julia.git


      at a988fb9  Fix case of recursively nested lists

This branch includes the following new commits:

     new a988fb9  Fix case of recursively nested lists

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[arrow-julia] 01/01: Fix case of recursively nested lists

Posted by qu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

quinnj pushed a commit to branch jq-458
in repository https://gitbox.apache.org/repos/asf/arrow-julia.git

commit a988fb97302b8f79163616c83fa8541c4afdf8b0
Author: Jacob Quinn <qu...@gmail.com>
AuthorDate: Thu Jun 8 07:59:00 2023 -0600

    Fix case of recursively nested lists
    
    Fixes issue reported by @Moelf in #458.
    
    The issue is we need to get the eltype from the recursively built
    child array instead of as a top-level translation of the current field type.
---
 src/table.jl     | 2 +-
 test/runtests.jl | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/table.jl b/src/table.jl
index ada392d..e61445c 100644
--- a/src/table.jl
+++ b/src/table.jl
@@ -650,7 +650,7 @@ function build(f::Meta.Field, L::ListTypes, batch, rb, de, nodeidx, bufferidx, c
         # juliaeltype returns Vector for List, translate to SubArray
         S = Base.nonmissingtype(T)
         if S <: Vector
-            ST = SubVector{eltype(S), typeof(A)}
+            ST = SubVector{eltype(A), typeof(A)}
             T = S == T ? ST : Union{Missing, ST}
         end
     end
diff --git a/test/runtests.jl b/test/runtests.jl
index 4f84e7c..e0e974b 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -698,6 +698,15 @@ t = Arrow.Table(joinpath(dirname(pathof(Arrow)), "../test/java_compressed_zero_l
 
 end
 
+@testset "# 458" begin
+
+x = (; a=[[[[1]]]])
+buf = Arrow.tobuffer(x)
+t = Arrow.Table(buf)
+@test t.a[1][1][1][1] == 1
+
+end
+
 end # @testset "misc"
 
 end