Avoid use of `Signature::user_defined` for normal functions
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 2.4k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 344
Description
_Originally posted by @alamb in https://github.com/apache/datafusion/issues/12698#issuecomment-2388306202_
> > Can we make it a goal that not to require Signature::user_defined to implement useful things?
>
> Yes, I think this should be the goal
>
> The usecase for `Signature::user_defined` that I recall was to implement coercion rules for very specific functions (like coalesce)
Extend signatures and function resolution so that `Signature::user_defined` is not needed.
Contributor guide
Research direction
Start by tracing Signature::user_defined through function signatures and function resolution, then review the discussion linked from this issue for the intended coercion behavior. Done means normal functions can be implemented and resolved without requiring Signature::user_defined, while preserving the special coercion behavior needed by functions such as coalesce.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100