- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.7k
Description
Follow on to Jan 15, 2024
Boilerplate Introduction
The idea of this ticket is make my plans for DataFusion visible, largely for my own personal organizational needs, but also to:
- Communicate / coordinate in the community
- Help provide an interesting summary of what is happening in DataFusion this week
It would be great for other contributors to DataFusion who plan non trivial work could try to make them visible somehow as well 🙏 (feel free to copy / modify the format)
My (personal) plans for this week
-  Help test / optimize HashJoin outputs generation: feat: emitting partial join results in HashJoinStream#8020 from @korowa
-  Complete Optimize COUNT( DISTINCT ...)for strings (up to 9x faster) #8849 with @jayzhan211
- Begin work on Improve aggregate performance with specialized groups accumulator for single string group by #7064
-  Get first steps towards breaking up packages Create datafusion-functionscrate, extract encode and decode to #8705 reviewed, address comments, file follow on tickets
Project Queue (list of future projects)
- Improved Statistics: Epic: Statistics improvements #8227 (specifically, Introduce a way to represent constrained statistics / bounds on values in Statistics #8078)
Projects I am prioritizing reviewing / helping
- More advanced pruning predicates Don't error on unknown column when pruning if predicate can still be proven false #7869 with @appletreeisyellow
- Improve planning speed [Epic] A collection of issues to improve planning performance / speed / efficiency #5637 with @matthewmturner
-  Supporting various work to improve user defined functions and make functions packages more modular: [EPIC] Unify Function Interface (remove BuiltInScalarFunction) #8045 (thank you @guojidan)
- Supporting recursive CTEs Add support for recursive CTEs #462 with @matthewgapp and @jonahgao
Algorithm for (my) prioritizing PR reviews
Note there are many committers who can and do review and merge PRs, so this is not the priorities of the project as a whole, just the approximate algorithm I use to prioritize my own time
Priority:
- Bug fixes (where something is just incorrect), especially regressions (where it used to work and now does not)
- Improvements directly related to features needed for InfluxDB (my employer)
- Documentation and test improvements (I view these as very strategically important)
- PRs that I think are strategically important
- Other new features / additions to functionality (note this is the lowest)
The current strategically important projects in my head are:
- Making function packages modular and easier to mix/match: [EPIC] Unify Function Interface (remove BuiltInScalarFunction) #8045
- Getting started guide for new users (who want to use DataFusion in their project)
- Improving performance of aggregation - especially high cardinality groupings, where we still lag state of the art by 2x
Thus, if you are interested in contributing to DataFusion and are interested in a fast turn around time I would recommend looking into bug fixes / test improvements / documentation or the projects named above
If you propose adding new functionality, the review cycle will likely be longer. You can make it a shorter cycle by looking at the comments on other recent PRs and following the same model (e.g. ensure there are tests in sqllogictest for example, the CI passes, includes documentation, etc)