Skip to content

Commit 73efaf3

Browse files
committed
fix breakage after rebase 😠
1 parent 255c1fb commit 73efaf3

File tree

9 files changed

+41
-10
lines changed

9 files changed

+41
-10
lines changed

‎Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎datafusion/excalibur/lib/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ arrow = { workspace = true }
3333
datafusion-common = { workspace = true }
3434
datafusion-excalibur-macros = { workspace = true }
3535
datafusion-expr = { workspace = true }
36+
datafusion-expr-common = { workspace = true }

‎datafusion/excalibur/lib/src/signature.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use crate::ret_type::ExRetType;
2121
use arrow::datatypes::DataType;
2222
use datafusion_common::Result;
2323
use datafusion_expr::{Signature, Volatility};
24+
use datafusion_expr_common::signature::Coercion;
2425

2526
pub fn create_excalibur_signature<T>() -> ExcaliburSignature
2627
where
@@ -30,7 +31,11 @@ where
3031
{
3132
ExcaliburSignature {
3233
signature: Signature::coercible(
33-
T::ArgumentRustTypes::type_signature(),
34+
T::ArgumentRustTypes::type_signature()
35+
.into_iter()
36+
// TODO this *exact* is unintentional, see https://github.com/apache/datafusion/pull/14440#discussion_r1959483130
37+
.map(Coercion::new_exact)
38+
.collect(),
3439
Volatility::Immutable,
3540
),
3641
return_type: T::ReturnRustType::data_type(),

‎datafusion/excalibur/lib/tests/failing.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use datafusion_excalibur_macros::excalibur_function;
2424
use datafusion_expr::{
2525
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2626
};
27+
use datafusion_expr_common::signature::Coercion;
2728
use std::sync::Arc;
2829

2930
#[excalibur_function]
@@ -43,7 +44,9 @@ fn test_function_signature() {
4344
assert_eq!(
4445
udf.signature(),
4546
&Signature::coercible(
46-
vec![TypeSignatureClass::Native(Arc::new(NativeType::Boolean)),],
47+
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
48+
NativeType::Boolean
49+
)))],
4750
Volatility::Immutable
4851
)
4952
);

‎datafusion/excalibur/lib/tests/null_arg.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
2323
use datafusion_expr::{
2424
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2525
};
26+
use datafusion_expr_common::signature::Coercion;
2627
use std::sync::Arc;
2728

2829
#[excalibur_function]
@@ -39,8 +40,12 @@ fn test_function_signature() {
3940
udf.signature(),
4041
&Signature::coercible(
4142
vec![
42-
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
43-
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
43+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
44+
NativeType::Int32
45+
))),
46+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
47+
NativeType::Int32
48+
))),
4449
],
4550
Volatility::Immutable
4651
)

‎datafusion/excalibur/lib/tests/null_result.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
2323
use datafusion_expr::{
2424
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2525
};
26+
use datafusion_expr_common::signature::Coercion;
2627
use std::sync::Arc;
2728

2829
#[excalibur_function]
@@ -43,8 +44,12 @@ fn test_function_signature() {
4344
udf.signature(),
4445
&Signature::coercible(
4546
vec![
46-
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
47-
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
47+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
48+
NativeType::Int32
49+
))),
50+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
51+
NativeType::Int32
52+
))),
4853
],
4954
Volatility::Immutable
5055
)

‎datafusion/excalibur/lib/tests/smoke_test.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
2323
use datafusion_expr::{
2424
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2525
};
26+
use datafusion_expr_common::signature::Coercion;
2627
use std::sync::Arc;
2728

2829
#[excalibur_function]
@@ -38,7 +39,9 @@ fn test_function_signature() {
3839
assert_eq!(
3940
udf.signature(),
4041
&Signature::coercible(
41-
vec![TypeSignatureClass::Native(Arc::new(NativeType::UInt64))],
42+
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
43+
NativeType::UInt64
44+
)))],
4245
Volatility::Immutable
4346
)
4447
);

‎datafusion/excalibur/lib/tests/str_arg.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
2323
use datafusion_expr::{
2424
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2525
};
26+
use datafusion_expr_common::signature::Coercion;
2627
use std::sync::Arc;
2728

2829
#[excalibur_function]
@@ -38,7 +39,9 @@ fn test_function_signature() {
3839
assert_eq!(
3940
udf.signature(),
4041
&Signature::coercible(
41-
vec![TypeSignatureClass::Native(Arc::new(NativeType::String)),],
42+
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
43+
NativeType::String
44+
)))],
4245
Volatility::Immutable
4346
)
4447
);

‎datafusion/excalibur/lib/tests/two_args.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
2323
use datafusion_expr::{
2424
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
2525
};
26+
use datafusion_expr_common::signature::Coercion;
2627
use std::sync::Arc;
2728

2829
#[excalibur_function]
@@ -39,8 +40,12 @@ fn test_function_signature() {
3940
udf.signature(),
4041
&Signature::coercible(
4142
vec![
42-
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
43-
TypeSignatureClass::Native(Arc::new(NativeType::UInt32)),
43+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
44+
NativeType::Int32
45+
))),
46+
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
47+
NativeType::UInt32
48+
))),
4449
],
4550
Volatility::Immutable
4651
)

0 commit comments

Comments
 (0)