-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers
Description
Is your feature request related to a problem or challenge?
The goal is to extract function definitions out of the datafusion core.
Describe the solution you'd like
Move the abs function to datafusion-functions
Target location: https://github.com/apache/arrow-datafusion/blob/main/datafusion/functions/src/math
Here is an example function: isnan: https://github.com/apache/arrow-datafusion/blob/e1f7b245168c5762135abc4e594bd81c508d7186/datafusion/functions/src/math/nans.rs#L31-L48
There is already coverage in https://github.com/apache/arrow-datafusion/blob/main/datafusion/sqllogictest/test_files/scalar.slt
Here are the steps I followed when porting isnan:
- Create a ScalarUDFImpl in the functions crate following an existing example, and stub out the
invoke()function withtodo!(). - Make sure
cargo check -p datafusion-functions --all-featurescompiles successfully - Remove the enum in
BuiltInScalarFunctions(source link) - Try and build with
cargo check -p datafusionand the compiler will point out all the places in the code that has logic for this function - While removing old code, copy the relevant parts back into the UDFs (like
signature, andreturn_typeand implementation forinvoke() - Verify that the sqllogictests pass: `
Describe alternatives you've considered
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers