Skip to content

Commit a88d689

Browse files
committed
fix: array_resize signature
1 parent 2c8a06e commit a88d689

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

datafusion/functions-nested/src/resize.rs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ use arrow::datatypes::{
3030
FieldRef,
3131
};
3232
use datafusion_common::cast::{as_int64_array, as_large_list_array, as_list_array};
33+
use datafusion_common::utils::ListCoercion;
3334
use datafusion_common::{exec_err, internal_datafusion_err, Result, ScalarValue};
3435
use datafusion_expr::{
35-
ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility,
36+
ArrayFunctionArgument, ArrayFunctionSignature, ColumnarValue, Documentation,
37+
ScalarUDFImpl, Signature, TypeSignature, Volatility,
3638
};
3739
use datafusion_macros::user_doc;
3840
use std::any::Any;
@@ -83,7 +85,26 @@ impl Default for ArrayResize {
8385
impl ArrayResize {
8486
pub fn new() -> Self {
8587
Self {
86-
signature: Signature::variadic_any(Volatility::Immutable),
88+
signature: Signature::one_of(
89+
vec![
90+
TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
91+
arguments: vec![
92+
ArrayFunctionArgument::Array,
93+
ArrayFunctionArgument::Index,
94+
],
95+
array_coercion: Some(ListCoercion::FixedSizedListToList),
96+
}),
97+
TypeSignature::ArraySignature(ArrayFunctionSignature::Array {
98+
arguments: vec![
99+
ArrayFunctionArgument::Array,
100+
ArrayFunctionArgument::Index,
101+
ArrayFunctionArgument::Element,
102+
],
103+
array_coercion: Some(ListCoercion::FixedSizedListToList),
104+
}),
105+
],
106+
Volatility::Immutable,
107+
),
87108
aliases: vec!["list_resize".to_string()],
88109
}
89110
}

0 commit comments

Comments
 (0)