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/09 03:26:37 UTC
[arrow-julia] branch main updated: implement default for SubArray (#456)
This is an automated email from the ASF dual-hosted git repository.
quinnj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-julia.git
The following commit(s) were added to refs/heads/main by this push:
new 5231195 implement default for SubArray (#456)
5231195 is described below
commit 5231195705fc8ccb122d04da762e08f454e09cef
Author: Ben Baumgold <49...@users.noreply.github.com>
AuthorDate: Thu Jun 8 23:26:31 2023 -0400
implement default for SubArray (#456)
`similar(::Type{<:SubArray})` doesn't exist. This change should handle
it gracefully.
---------
Co-authored-by: Jacob Quinn <qu...@gmail.com>
---
src/ArrowTypes/src/ArrowTypes.jl | 2 ++
test/runtests.jl | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/src/ArrowTypes/src/ArrowTypes.jl b/src/ArrowTypes/src/ArrowTypes.jl
index 6dee157..2245842 100644
--- a/src/ArrowTypes/src/ArrowTypes.jl
+++ b/src/ArrowTypes/src/ArrowTypes.jl
@@ -348,6 +348,8 @@ function default(::Type{A}) where {A <: AbstractVector{T}} where {T}
return a
end
+default(::Type{SubArray{T,N,P,I,L}}) where {T,N,P,I,L} = view(default(P), 0:-1)
+
default(::Type{NTuple{N, T}}) where {N, T} = ntuple(i -> default(T), N)
default(::Type{T}) where {T <: Tuple} = Tuple(default(fieldtype(T, i)) for i = 1:fieldcount(T))
default(::Type{T}) where {T <: AbstractDict} = T()
diff --git a/test/runtests.jl b/test/runtests.jl
index e0e974b..1c8903f 100644
--- a/test/runtests.jl
+++ b/test/runtests.jl
@@ -707,6 +707,15 @@ t = Arrow.Table(buf)
end
+# @testset "# 456" begin
+
+# NT = @NamedTuple{x::Int, y::Union{Missing,Int}}
+# data = NT[(x=1,y=2), (x=2,y=missing), (x=3,y=4), (x=4,y=5)]
+# t = [(a=1,b=view(data,1:2)), (a=2,b=view(data,3:4)), missing]
+# @test Arrow.toarrowvector(t) isa Arrow.Struct
+
+# end
+
end # @testset "misc"
end