erratic-pattern opened a new issue, #20501:
URL: https://github.com/apache/datafusion/issues/20501

   ## Description
   
   After upgrading to DataFusion 52, error messages for function signature 
mismatches have become less concise and helpful. When a user tries to call an 
aggregate function with an unsupported type, they now see verbose internal 
errors instead of user-friendly messages.
   
   This regression was introduced in PR #18769 ("Refactor avg & sum signatures 
away from user defined"), which was part of the broader effort in #12725 to 
avoid use of `Signature::user_defined`.
   
   ## To Reproduce
   
   ```sql
   CREATE TABLE test (bool_col BOOLEAN);
   SELECT SUM(bool_col) FROM test;
   ```
   
   **Before (DataFusion 51):**
   ```
   Error during planning: Execution error: Function 'sum' user-defined coercion 
failed with "Execution error: Sum not supported for Boolean" No function 
matches the given name and argument types 'sum(Boolean)'. You might need to add 
explicit type casts.
        Candidate functions:
        sum(UserDefined)
   ```
   
   The key message **"Sum not supported for Boolean"** was clear and actionable.
   
   **After (DataFusion 52):**
   ```
   Error during planning: Internal error: Function 'sum' failed to match any 
signature, errors: Internal error: Expect TypeSignatureClass::Decimal but 
received NativeType::Boolean, DataType: Boolean.
   This issue was likely caused by a bug in DataFusion's code. Please help us 
to resolve this by filing a bug report in our issue tracker: 
https://github.com/apache/datafusion/issues,Internal error: Expect 
TypeSignatureClass::Native(LogicalType(Native(UInt64), UInt64)) but received 
NativeType::Boolean, DataType: Boolean.
   This issue was likely caused by a bug in DataFusion's code...
   [repeats for each signature variant]
        Candidate functions:
        sum(Coercion(TypeSignatureClass::Decimal))
        sum(Coercion(TypeSignatureClass::Native(LogicalType(Native(UInt64), 
UInt64)), implicit_coercion=...))
        ...
   ```
   
   ### Problems With New Error
   
   1. **Misleading**: Says "Internal error" and asks users to file a bug 
report, but this is a user error (wrong argument type), not a DataFusion bug
   2. **Verbose**: Shows every failed signature match attempt with internal 
type system details (`TypeSignatureClass::Native(LogicalType(...))`)
   3. **Lost context**: The meaningful message "Sum not supported for Boolean" 
is no longer present


-- 
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]

Reply via email to