jayzhan211 commented on code in PR #13840:
URL: https://github.com/apache/datafusion/pull/13840#discussion_r1893820169
##########
datafusion/expr-common/src/signature.rs:
##########
@@ -123,24 +127,29 @@ pub enum TypeSignature {
/// One or more arguments belonging to the [`TypeSignatureClass`], in
order.
///
/// For example, `Coercible(vec![logical_float64()])` accepts
- /// arguments like `vec![DataType::Int32]` or `vec![DataType::Float32]`
+ /// arguments like `vec![Int32]` or `vec![Float32]`
/// since i32 and f32 can be cast to f64
///
/// For functions that take no arguments (e.g. `random()`) see
[`TypeSignature::Nullary`].
Coercible(Vec<TypeSignatureClass>),
- /// One or more arguments that can be "compared"
+ /// One or more arguments cast to single, comparable type.
+ ///
+ /// Each argument will be coerced to a single type using the
+ /// coercion rules described in [`comparison_coercion_numeric`].
+ ///
+ /// # Examples
+ ///
+ /// If the `nullif(1, 2)` function is called with `i32` and `i64` arguments
+ /// the types will both be coerced to `i64` before the function is invoked.
///
- /// Each argument will be coerced to a single type based on comparison
rules.
- /// For example a function called with `i32` and `i64` has coerced type
`Int64` so
- /// each argument will be coerced to `Int64` before the function is
invoked.
+ /// If the `nullif('1', 2)` function is called with `Utf8` and `i64`
arguments
+ /// the types will both be coerced to `Utf8` before the function is
invoked.
///
/// Note:
- /// - If compares with numeric and string, numeric is preferred for
numeric string cases. For example, `nullif('2', 1)` has coerced types `Int64`.
- /// - If the result is Null, it will be coerced to String (Utf8View).
- /// - See [`comparison_coercion`] for more details.
/// - For functions that take no arguments (e.g. `random()` see
[`TypeSignature::Nullary`]).
+ /// - If all arguments have type [`DataType::Null`], they are coerced to
`Utf8`
Review Comment:
To fix this, we might need to find a way to differentiate string literal as
unknown type v.s. string type. Not yet have time to investigate on this.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]