You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by om...@apache.org on 2023/01/29 04:50:01 UTC

[arrow-julia] 01/01: Support default for multi-dimensional arrays

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 <cu...@gmail.com>
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}