-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[Epic] Unify WindowFunction
Interface (remove built in list of BuiltInWindowFunction
s)
#8709
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
I'd like to try a small POC and migrate |
That would be awesome. Thank you I recommend trying to put it in its own crate if possible ( |
I'm going to move back to working on Also I think we have some functions that are implemented in aggregate that should be moved to window. Namely Notes (for myself) on how postgresql divides them: |
I filed a few more good first issues because of interest from new contributors, |
Thank you @jcsherin -- I added it tothe list above |
this has all tasks done 🚀 |
Sounds good! |
There is one final small cleanup I think that could help. Filed it as |
Is your feature request related to a problem or challenge?
For many of the same reasons as listed on #8045, having two types of aggregate functions ("built in" --BuiltInWindowFunction and WindowUDF is problematic for two reasons:
FIRST_VALUE
andLAST_VALUE
)Describe the solution you'd like
I propose moving DataFusion to only use
WindowURF
s and remove BuiltInWindowFunction for the same reasons as #8045We will keep the existing
WindowUDF
interface as much as possible, while also potentially providing an easier way to define them.Describe alternatives you've considered
Additional context
Proposed implementation steps:
WindowUDF
#8711WindowUDFImpl::simplfy()
API #9527row_number
to user-defined window function #12029nth_value
to UDAF #11287field
trait method toWindowUDFImpl
#12373row_number
to user-defined window function #12030BuiltInWindowFunction::{Rank, PercentRank, DenseRank}
to a user defined functions #12648BuiltInWindowFunction::{NthValue}
to a user defined functions #12649BuiltInWindowFunction::Ntile
to a user defined window function #12694BuiltInWindowFunction::CumeDist
to a user defined window function #12695BuiltInWindowFunction::{Lead, Lag}
to a user defined window function #12802The text was updated successfully, but these errors were encountered: