Description
Follow on to #9555
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 Highlights from Last Week
- Add
StringViewArray
implementation and layout and basic construction + tests arrow-rs#5469 (first step towards [EPIC] ImplementStringViewArray
andBinaryViewArray
arrow-rs#5374 was merged -- thanks @ariesdevil and @XiangpengHao) - @backkem and @devinjdangelo began implementing [EPIC] Support LogicalPlan -->
SQL String
#8661 - @jayzhan211 started working on improving planning speed with [EPIC] Stop copying
LogicalPlan
during OptimizerPasses #9637 (and found a nice improvement already Minor: remove clone inexprlist_to_fields
#9657) - Recursive CTE's enabled by default: feat: track memory usage for recursive CTE, enable recursive CTEs by default #9619 (thanks @jonahgao !)
- Large scale "extract scalar functions from the core" continues at good pace way [Epic] Port BuiltInFunctons to
datafusion-functions-*
crates #9285 (thanks @jayzhan211 and @erenavsarogullari for being a machine here)
My (personal) goals for this project
1000 projects are built using DataFusion 📈
My (personal) plans for this week
- SIGMOD paper feedback : Finalize SIGMOD 2024 paper ~(if accepted)~ #8373 (10 days left)
- Prepare content for UPDATE: VENUE IS FULL Invitation: Mar 25, 2024 DataFusion meetup before the DataCouncil March 2024 in Austin TX #8522
- Fix Regression: Wrong result when there are 2 count(distinct) #9586
Project Queue (list of future projects)
Projects I plan to help actively help review / plan
- [EPIC] Implement
StringViewArray
andBinaryViewArray
arrow-rs#5374 - [Epic] Port BuiltInFunctons to
datafusion-functions-*
crates #9285 - Support "A column is known to be entirely NULL" in
PruningPredicate
#9171 with @appletreeisyellow (we need this for InfluxDB) - Supporting using parallel parquet writer outside of Datafusion query execution #9493 with @wiedld
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 top strategically important projects in my head are:
- Anything that makes it easier to use DataFusion as a user (docs, examples, better APIs, etc), including Getting started guide for new users (who want to use DataFusion in their project)
- Anything that improves DataFusion's quality such as bug fixes, and improved / expanded tests, etc
- Making function packages modular and easier to mix/match: [EPIC] Unify Function Interface (remove
BuiltInScalarFunction
) #8045 - 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)
Background
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