Description
Follow on to Nov 27 2023:
Boilerplate Overview
The idea of this ticket is make my plans for DataFusion visible, largely for my own personal organizational needs, but also to:
- Try some different ways to communicate / coordinate in the community
- Help provide an interesting summary of what is happening in DataFusion this week
It would be great if anyone else who has plans like this for DataFusion could try to make them visible somehow as well
My (personal) plans for this week
- Complete Support general pruning based on
<col> = 'const'
inPruningPredicate
#8376 - Reproduce and file several bugs / limitations we have hit in Influx recently (udpate: Incorrect results due to repartitioning a sorted ParquetExec #8451)
Project Queue (list of future projects)
- Epic: Statistics improvements #8227 (specifically, Consolidate statistics aggregation #8229 as a step towards Introduce a way to represent constrained statistics / bounds on values in Statistics #8078)
- FIFO
JoinHashMap
forHashJoin
#8130, in support of memory explosion in HashJoin outputs:HashJoinStream
memory tracking insufficient #7848 with @korowa
Additional major projects I hope to help review and coordinate
- Next steps towards function packages more modular (make all BuiltInScalarFunctions ScalarUDFs): [EPIC] Unify Function Interface (remove
BuiltInScalarFunction
) #8045 with @2010YOUY01 . This week I hope to get RFC: Demonstrate what a function package might look like -- encoding expressions #8046 mergable, which would require SupportExpr
creation forScalarUDF
: Resolve function calls by name during planning #8157) -
ARRAY
function hardening: [Epic] General ticket for the concept of the practical implementation ofARRAY
#6980 / Lots of code duplication in array_functions (array_replace_all
,array_replace_n
,array_replace
, etc) #7988 - Review any new ticket / bug reports
Algorithm for (my) prioritizing PR reviews
Note there are many committers who can review and merge PRs as well, so this is not the priorities of the project as a whole, just the approximate algorithm I am using
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 (as I am employed by them)
- Documentation and test improvements (I view these as very strategically important)
- PRs that I think are strategically important
- Other new features / additions to functionality
The current strategically important projects in my head are:
- [EPIC] Unify Function Interface (remove
BuiltInScalarFunction
) #8045 - Improving performance of high cardinality aggregation
Note that adding new array functionality (e.g. #6980 and its children) is very low on my priority list, not because I don't think they are valuable, but because I think they are less valuable than the other projects going on - it would be great if other people could help pick these up too.
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 / etc.
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)