Description
Follow on to #11190
My (personal) North ⭐ : 1000 projects are built using DataFusion 📈
It would be great for other contributors to DataFusion to to make them visible somehow as well 🙏 (feel free to copy / modify the format of this ticket)
Externally Facing News
DataFusion mentioned in "What goes around, comes around... and around...." paper from Andy Pavlo and Mike Stonebreaker
https://twitter.com/andy_pavlo/status/1807799839616614856
Feature Highlights
- Introduce user defined SQL planner API from @jayzhan211
- docs: add example for custom file format with COPY TO @tshauk
- @lewiszlw continues to make the code better Enable
clone_on_ref_ptr
clippy lint on execution crate #11239 ❤ - @Blizzara and @Lordworms continue to bash out substrait support (they are up to tpch q4 and 5)! Implement TPCH substrait integration teset, support tpch_3 #11298
- @jayzhan211 supported DUCKDB style struct syntax: Support DuckDB style struct syntax #11214
> select {'foo': 1};
+------------------------------------+
| named_struct(Utf8("foo"),Int64(1)) |
+------------------------------------+
| {foo: 1} |
+------------------------------------+
1 row(s) fetched.
Elapsed 0.015 seconds.
> select {'foo': {'bar': 2}};
+--------------------------------------------------------------+
| named_struct(Utf8("foo"),named_struct(Utf8("bar"),Int64(2))) |
+--------------------------------------------------------------+
| {foo: {bar: 2}} |
+--------------------------------------------------------------+
1 row(s) fetched.
Elapsed 0.002 seconds.
My (personal) plans for this week
- SQLParser release: Release sqlparser-rs version
0.48.0
datafusion-sqlparser-rs#1296 - "move the needle" projects: improve docs + writing [EPIC] Improve examples to make them easier to navigate #11172 Blog post with DataFusion Jan - June 2024 #9602,
- (Fun Project): Faster multi-column aggregation with @jayzhan211 Improve performance for grouping by variable length columns (strings) #9403 (Optionally display schema in explain plan #11177 was a step towards this)
- July 10, 2024 ASF Board Report #10282
Project Queue (list of future projects)
Projects I plan to help actively help review / plan
-
Complete SQL planner extension API Discussion: make it easier for specify SQL --> function translation #10534 with @jayzhan211 and @samuelcolvin, @xinlifoobar, @dharanad)
-
Various upstream parquet metadata changes: Add
ParquetMetadataWriter
allow ad-hoc encoding ofParquetMetadata
arrow-rs#6000, Do not writeColumnIndex
for null columns when not writing page statistics arrow-rs#6011, Add size statistics toParquetMetaData
introduced in PARQUET-2261 arrow-rs#5486, -
Help push user defined aggregates over the line ([Epic] Unify
AggregateFunction
Interface (remove built in list ofAggregateFunction
s), improve the system #8708) - thanks to @Rachelint and @jcsherin) -
[EPIC] Continued correct and improved extracting Parquet statistics into ArrayRefs #10922 (kudos to @Rachelint and @efredine) most of what is left is porting it upstream to arrow-rs)
-
[EPIC] Implement
StringViewArray
andBinaryViewArray
arrow-rs#5374 and [Epic] Implement support forStringView
in DataFusion #10918 with @XiangpengHao and others
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
- Improved performance (with benchmarks)
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, especially if the PR is large/complex and not connected to a wider need, 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