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/03/05 04:20:05 UTC

[arrow-julia] branch main updated: fix arrowname and arrowmetadata for nullable types (#389)

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 63d2c9d  fix arrowname and arrowmetadata for nullable types (#389)
63d2c9d is described below

commit 63d2c9d3ca4539a0ea831ae8ecafa71b051d475d
Author: Ben Baumgold <49...@users.noreply.github.com>
AuthorDate: Sat Mar 4 23:19:59 2023 -0500

    fix arrowname and arrowmetadata for nullable types (#389)
---
 src/ArrowTypes/src/ArrowTypes.jl | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/ArrowTypes/src/ArrowTypes.jl b/src/ArrowTypes/src/ArrowTypes.jl
index 1351166..130e07e 100644
--- a/src/ArrowTypes/src/ArrowTypes.jl
+++ b/src/ArrowTypes/src/ArrowTypes.jl
@@ -102,6 +102,10 @@ function arrowname end
 const EMPTY_SYMBOL = Symbol()
 arrowname(T) = EMPTY_SYMBOL
 hasarrowname(T) = arrowname(T) !== EMPTY_SYMBOL
+arrowname(::Type{Union{T,Missing}}) where {T} = arrowname(T)
+arrowname(::Type{Union{T,Nothing}}) where {T} = arrowname(T)
+arrowname(::Type{Missing}) = EMPTY_SYMBOL
+arrowname(::Type{Any}) = EMPTY_SYMBOL
 
 """
     ArrowTypes.arrowmetadata(T) => String
@@ -113,7 +117,13 @@ kinds of types when deserializing, these type parameters can be stored by defini
 This will then be available to access by overloading `ArrowTypes.JuliaType(::Val{Symbol(name)}, S, arrowmetadata::String)`.
 """
 function arrowmetadata end
-arrowmetadata(T) = ""
+const EMPTY_STRING = ""
+arrowmetadata(T) = EMPTY_STRING
+arrowmetadata(::Type{Union{T,Missing}}) where {T} = arrowmetadata{T}
+arrowmetadata(::Type{Union{T,Nothing}}) where {T} = arrowmetadata{T}
+arrowmetadata(::Type{Nothing}) = EMPTY_STRING
+arrowmetadata(::Type{Missing}) = EMPTY_STRING
+arrowmetadata(::Type{Any}) = EMPTY_STRING
 
 """
     ArrowTypes.JuliaType(::Val{Symbol(name)}, ::Type{S}, arrowmetadata::String) = T