-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Description
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
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
- 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
- Verbose: Shows every failed signature match attempt with internal type system details (
TypeSignatureClass::Native(LogicalType(...))) - Lost context: The meaningful message "Sum not supported for Boolean" is no longer present
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels