Skip to content

Commit 9c7ce7d

Browse files
committed
replace type signature for starts_with
1 parent fde2239 commit 9c7ce7d

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

datafusion/expr/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ pub use datafusion_expr_common::columnar_value::ColumnarValue;
7676
pub use datafusion_expr_common::groups_accumulator::{EmitTo, GroupsAccumulator};
7777
pub use datafusion_expr_common::operator::Operator;
7878
pub use datafusion_expr_common::signature::{
79-
ArrayFunctionArgument, ArrayFunctionSignature, Signature, TypeSignature,
79+
ArrayFunctionArgument, ArrayFunctionSignature, Coercion, Signature, TypeSignature,
8080
TypeSignatureClass, Volatility, TIMEZONE_WILDCARD,
8181
};
8282
pub use datafusion_expr_common::type_coercion::binary;

datafusion/functions/src/string/starts_with.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,12 @@ use arrow::datatypes::DataType;
2323
use datafusion_expr::simplify::{ExprSimplifyResult, SimplifyInfo};
2424

2525
use crate::utils::make_scalar_function;
26+
use datafusion_common::types::logical_string;
2627
use datafusion_common::{internal_err, Result, ScalarValue};
27-
use datafusion_expr::{ColumnarValue, Documentation, Expr, Like};
28-
use datafusion_expr::{ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility};
28+
use datafusion_expr::{
29+
Coercion, ColumnarValue, Documentation, Expr, Like, ScalarFunctionArgs,
30+
ScalarUDFImpl, Signature, TypeSignatureClass, Volatility,
31+
};
2932
use datafusion_macros::user_doc;
3033

3134
/// Returns true if string starts with prefix.
@@ -64,7 +67,13 @@ impl Default for StartsWithFunc {
6467
impl StartsWithFunc {
6568
pub fn new() -> Self {
6669
Self {
67-
signature: Signature::string(2, Volatility::Immutable),
70+
signature: Signature::coercible(
71+
vec![
72+
Coercion::new_exact(TypeSignatureClass::Native(logical_string())),
73+
Coercion::new_exact(TypeSignatureClass::Native(logical_string())),
74+
],
75+
Volatility::Immutable,
76+
),
6877
}
6978
}
7079
}

0 commit comments

Comments
 (0)