Repository navigation
Description
Follow on to #9899
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
- 37.0.0 was released Release DataFusion 37.0.0 #9682 🚀
- DataFusion WASM is becoming a thing @milenkovicm showed us how to make WASM UDFs WASM UDFs #9326 / https://github.com/milenkovicm/wasaffi and @waynxia showed off a WASM playground: Web Playground with WASM #9834
- @peter-toth made
LogicalPlanrewriting withTreeNodeeasier and faster: Consistent LogicalPlan subquery handling in TreeNode::apply and TreeNode::visit #9913 - @jayzhan211 began pulling aggregate functions out of the core: Move First Value UDAF and builtin first / last function to
aggregate-functions#9960 - "Extract scalar functions from the core" continues: [Epic] Port BuiltInFunctons to
datafusion-functions-*crates #9285 (thanks @erenavsarogullari and @Omega359 for keeping the 🚋 running here) - Started talking about indexing: Indexing Support in DataFusion? #9963
- Started talking about ListingTable: [EPIC] Improve the performance of ListingTable #9964
My (personal) goals
1000 projects are built using DataFusion 📈
My (personal) plans for this week
- Release version
0.45.0datafusion-sqlparser-rs#1162 - Reviews !
- Make query planning (at least) 2x faster [EPIC] Stop copying
LogicalPlanduring OptimizerPasses #9637) - Document
ParquetExecmore (so it is clear / easier to understand what is already supported and what else could be useful API in ParquetExec to pass in RowSelections toParquetExec(enable custom indexes, finer grained pushdown) #9929)
Project Queue (list of future projects)
Projects I plan to help actively help review / plan
- [EPIC] Implement
StringViewArrayandBinaryViewArrayarrow-rs#5374 - [Epic] Port BuiltInFunctons to
datafusion-functions-*crates #9285 - [EPIC] Support converting Exprs and LogicalPlans --> SQL Strings #9494
- 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
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
Activity
alamb commentedon Apr 8, 2024
@Omega359 get the 🍀 with lucky PR 10,000: #10000
Omega359 commentedon Apr 8, 2024
It wasn't on purpose :)
alamb commentedon Apr 8, 2024
Review Queue:
DataFusion
arrow-rs/parquet:
StringViewArrayandBinaryViewArrayarrow-rs#5601StringViewandBinaryViewin parquet (part 2) arrow-rs#5557alamb commentedon Apr 8, 2024
BTW I don't think I say it enough, but @comphead I really appreciate all the effort you put in to review PRs
alamb commentedon Apr 9, 2024
Review Queue:
DataFusion
TreeNode::exists()API, avoid copying expressions #10008RepartitionExec::execute#10009sqlparser-rs:
UNIQUEtable constraint datafusion-sqlparser-rs#1164INSERT INTOdatafusion-sqlparser-rs#1157CREATE/DROP SECRETfor duckdb dialect datafusion-sqlparser-rs#1208arrow-rs/parquet:
StringViewandBinaryViewin parquet (part 2) arrow-rs#5557alamb commentedon Apr 10, 2024
Review Queue:
DataFusion
RepartitionExecmetrics #10025batch_sizerather thanbatch_size-1#10030arrow-rs/parquet:
alamb commentedon Apr 11, 2024
Review Queue:
DataFusion
lowerandupperfunctions #9971arrow-rs/parquet:
alamb commentedon Apr 12, 2024
Review Queue:
DataFusion
SessionConfiginSessionState#10050unnestmultiple arrays #10044lowerandupperfunctions #9971in_listphysical plans #10031arrow-rs/parquet:
StringViewandBinaryViewin parquet (part 2) arrow-rs#5557filterkernel for byte view arrays. arrow-rs#5624sqlparser-rs:
alamb commentedon Apr 15, 2024
4 BuiltInScalarFunctions left
liukun4515 commentedon Apr 18, 2024
Hi @alamb
I scan some PRs about #9285, and find the the item of datafusion/proto/proto/datafusion.proto was deleted.
I have the question about this, how to serialize and deserialize the other language logical plan/expr to datafusion?
alamb commentedon Apr 18, 2024
I @liukun4515 -- the logical plan serialization / deserialization handles
ScalarUDFand other user defined functions as before.So for example, here is an example of how functions are serialized:
https://github.com/apache/arrow-datafusion/blob/92318c808666695fb5c2f358083f1cb13158dca9/datafusion/proto/tests/cases/roundtrip_logical_plan.rs#L1867-L1892
alamb commentedon Apr 22, 2024
Next week in #10172