This is an automated email from the ASF dual-hosted git repository. omus pushed a commit to branch cv/multi-dimensional-default in repository https://gitbox.apache.org/repos/asf/arrow-julia.git
commit c1bd68702fa7c9d02eb42400cb5d1e39e2ac9678 Author: Curtis Vogt <[email protected]> AuthorDate: Sat Jan 28 22:30:14 2023 -0600 Support default for multi-dimensional arrays --- src/ArrowTypes/src/ArrowTypes.jl | 4 ++-- src/ArrowTypes/test/tests.jl | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ArrowTypes/src/ArrowTypes.jl b/src/ArrowTypes/src/ArrowTypes.jl index f4f9e39..abb3a4b 100644 --- a/src/ArrowTypes/src/ArrowTypes.jl +++ b/src/ArrowTypes/src/ArrowTypes.jl @@ -311,8 +311,8 @@ default(::Type{Union{T, Missing}}) where {T} = default(T) default(::Type{Union{T, Nothing}}) where {T} = default(T) default(::Type{Union{T, Missing, Nothing}}) where {T} = default(T) -function default(::Type{A}) where {A <: AbstractVector{T}} where {T} - a = similar(A, 1) +function default(::Type{A}) where {A <: AbstractArray{T, N}} where {T, N} + a = similar(A, ntuple(one, N)) a[1] = default(T) return a end diff --git a/src/ArrowTypes/test/tests.jl b/src/ArrowTypes/test/tests.jl index d1e1914..29197c0 100644 --- a/src/ArrowTypes/test/tests.jl +++ b/src/ArrowTypes/test/tests.jl @@ -136,6 +136,9 @@ v_nt = (major=1, minor=0, patch=0, prerelease=(), build=()) @test ArrowTypes.default(Union{Int, Missing}) == Int(0) @test ArrowTypes.default(Union{Int, Nothing}) == Int(0) @test ArrowTypes.default(Union{Int, Missing, Nothing}) == Int(0) +@test ArrowTypes.default(Vector{Int}) == zeros(Int, 1) +@test ArrowTypes.default(Matrix{Int}) == zeros(Int, 1, 1) +@test ArrowTypes.default(Array{Int,3}) == zeros(Int, 1, 1, 1) @test ArrowTypes.promoteunion(Int, Float64) == Float64 @test ArrowTypes.promoteunion(Int, String) == Union{Int, String}
