Skip to content

Commit

Permalink
fix breakage after rebase 😠
Browse files Browse the repository at this point in the history
  • Loading branch information
findepi committed Feb 18, 2025
1 parent 255c1fb commit 73efaf3
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 10 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions datafusion/excalibur/lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ arrow = { workspace = true }
datafusion-common = { workspace = true }
datafusion-excalibur-macros = { workspace = true }
datafusion-expr = { workspace = true }
datafusion-expr-common = { workspace = true }
7 changes: 6 additions & 1 deletion datafusion/excalibur/lib/src/signature.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use crate::ret_type::ExRetType;
use arrow::datatypes::DataType;
use datafusion_common::Result;
use datafusion_expr::{Signature, Volatility};
use datafusion_expr_common::signature::Coercion;

pub fn create_excalibur_signature<T>() -> ExcaliburSignature
where
Expand All @@ -30,7 +31,11 @@ where
{
ExcaliburSignature {
signature: Signature::coercible(
T::ArgumentRustTypes::type_signature(),
T::ArgumentRustTypes::type_signature()
.into_iter()
// TODO this *exact* is unintentional, see https://github.com/apache/datafusion/pull/14440#discussion_r1959483130
.map(Coercion::new_exact)
.collect(),
Volatility::Immutable,
),
return_type: T::ReturnRustType::data_type(),
Expand Down
5 changes: 4 additions & 1 deletion datafusion/excalibur/lib/tests/failing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -43,7 +44,9 @@ fn test_function_signature() {
assert_eq!(
udf.signature(),
&Signature::coercible(
vec![TypeSignatureClass::Native(Arc::new(NativeType::Boolean)),],
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Boolean
)))],
Volatility::Immutable
)
);
Expand Down
9 changes: 7 additions & 2 deletions datafusion/excalibur/lib/tests/null_arg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -39,8 +40,12 @@ fn test_function_signature() {
udf.signature(),
&Signature::coercible(
vec![
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Int32
))),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Int32
))),
],
Volatility::Immutable
)
Expand Down
9 changes: 7 additions & 2 deletions datafusion/excalibur/lib/tests/null_result.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -43,8 +44,12 @@ fn test_function_signature() {
udf.signature(),
&Signature::coercible(
vec![
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Int32
))),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Int32
))),
],
Volatility::Immutable
)
Expand Down
5 changes: 4 additions & 1 deletion datafusion/excalibur/lib/tests/smoke_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -38,7 +39,9 @@ fn test_function_signature() {
assert_eq!(
udf.signature(),
&Signature::coercible(
vec![TypeSignatureClass::Native(Arc::new(NativeType::UInt64))],
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::UInt64
)))],
Volatility::Immutable
)
);
Expand Down
5 changes: 4 additions & 1 deletion datafusion/excalibur/lib/tests/str_arg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -38,7 +39,9 @@ fn test_function_signature() {
assert_eq!(
udf.signature(),
&Signature::coercible(
vec![TypeSignatureClass::Native(Arc::new(NativeType::String)),],
vec![Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::String
)))],
Volatility::Immutable
)
);
Expand Down
9 changes: 7 additions & 2 deletions datafusion/excalibur/lib/tests/two_args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ use datafusion_excalibur_macros::excalibur_function;
use datafusion_expr::{
ColumnarValue, ScalarFunctionArgs, Signature, TypeSignatureClass, Volatility,
};
use datafusion_expr_common::signature::Coercion;
use std::sync::Arc;

#[excalibur_function]
Expand All @@ -39,8 +40,12 @@ fn test_function_signature() {
udf.signature(),
&Signature::coercible(
vec![
TypeSignatureClass::Native(Arc::new(NativeType::Int32)),
TypeSignatureClass::Native(Arc::new(NativeType::UInt32)),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::Int32
))),
Coercion::new_exact(TypeSignatureClass::Native(Arc::new(
NativeType::UInt32
))),
],
Volatility::Immutable
)
Expand Down

0 comments on commit 73efaf3

Please sign in to comment.