|
19 | 19 | use super::basic::{digest, utf8_or_binary_to_binary_type};
|
20 | 20 | use arrow::datatypes::DataType;
|
21 | 21 | use datafusion_common::{
|
22 |
| - types::{logical_binary, logical_string}, |
| 22 | + types::{logical_binary, logical_string, NativeType}, |
23 | 23 | Result,
|
24 | 24 | };
|
25 | 25 | use datafusion_expr::{
|
26 | 26 | ColumnarValue, Documentation, ScalarFunctionArgs, ScalarUDFImpl, Signature,
|
27 |
| - TypeSignature, Volatility, |
| 27 | + Volatility, |
28 | 28 | };
|
29 | 29 | use datafusion_expr_common::signature::{Coercion, TypeSignatureClass};
|
30 | 30 | use datafusion_macros::user_doc;
|
@@ -69,16 +69,14 @@ impl Default for DigestFunc {
|
69 | 69 | impl DigestFunc {
|
70 | 70 | pub fn new() -> Self {
|
71 | 71 | Self {
|
72 |
| - signature: Signature::one_of( |
| 72 | + signature: Signature::coercible( |
73 | 73 | vec![
|
74 |
| - TypeSignature::Coercible(vec![ |
75 |
| - Coercion::new_exact(TypeSignatureClass::Native(logical_string())), |
76 |
| - Coercion::new_exact(TypeSignatureClass::Native(logical_string())), |
77 |
| - ]), |
78 |
| - TypeSignature::Coercible(vec![ |
79 |
| - Coercion::new_exact(TypeSignatureClass::Native(logical_binary())), |
80 |
| - Coercion::new_exact(TypeSignatureClass::Native(logical_string())), |
81 |
| - ]), |
| 74 | + Coercion::new_implicit( |
| 75 | + TypeSignatureClass::Native(logical_binary()), |
| 76 | + vec![TypeSignatureClass::Native(logical_string())], |
| 77 | + NativeType::Binary, |
| 78 | + ), |
| 79 | + Coercion::new_exact(TypeSignatureClass::Native(logical_string())), |
82 | 80 | ],
|
83 | 81 | Volatility::Immutable,
|
84 | 82 | ),
|
|
0 commit comments