Skip to content

Commit 6ee51bc

Browse files
authored
support as_decimal_array api (#1356)
1 parent f58a8d9 commit 6ee51bc

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

arrow/src/array/cast.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,26 @@ array_downcast_fn!(as_null_array, NullArray);
9696
array_downcast_fn!(as_struct_array, StructArray);
9797
array_downcast_fn!(as_union_array, UnionArray);
9898
array_downcast_fn!(as_map_array, MapArray);
99+
array_downcast_fn!(as_decimal_array, DecimalArray);
99100

100101
#[cfg(test)]
101102
mod tests {
102103
use std::sync::Arc;
103104

104105
use super::*;
105106

107+
#[test]
108+
fn test_as_decimal_array_ref() {
109+
let array: DecimalArray = vec![Some(123), None, Some(1111)]
110+
.into_iter()
111+
.collect::<DecimalArray>()
112+
.with_precision_and_scale(10, 2)
113+
.unwrap();
114+
assert!(!as_decimal_array(&array).is_empty());
115+
let result_decimal = as_decimal_array(&array);
116+
assert_eq!(result_decimal, &array);
117+
}
118+
106119
#[test]
107120
fn test_as_primitive_array_ref() {
108121
let array: Int32Array = vec![1, 2, 3].into_iter().map(Some).collect();

arrow/src/array/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ pub use self::ord::{build_compare, DynComparator};
513513
// --------------------- Array downcast helper functions ---------------------
514514

515515
pub use self::cast::{
516-
as_boolean_array, as_dictionary_array, as_generic_binary_array,
516+
as_boolean_array, as_decimal_array, as_dictionary_array, as_generic_binary_array,
517517
as_generic_list_array, as_large_list_array, as_largestring_array, as_list_array,
518518
as_map_array, as_null_array, as_primitive_array, as_string_array, as_struct_array,
519519
as_union_array,

0 commit comments

Comments
 (0)