You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/04/09 18:38:19 UTC

(datafusion) 01/01: Update 53 upgrade guide to note release, other changes (#21449)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-readonly-queue/main/pr-21449-249c23c2b630fc1e43fc0de5e6ccc7d4c308a00b
in repository https://gitbox.apache.org/repos/asf/datafusion.git

commit 8d91fb0e233b540a323039dfb28a9f03984537f7
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Thu Apr 9 14:37:54 2026 -0400

    Update 53 upgrade guide to note release, other changes (#21449)
    
    ## Which issue does this PR close?
    
    - Related to https://github.com/apache/datafusion/issues/19692
    
    ## Rationale for this change
    
    @rluvaton noted some issues with the 53 upgrade guide
    https://github.com/apache/datafusion/issues/19692#issuecomment-4198963869:
    
    > FYI, the migration guide says 53.0.0 was not released yet and it miss
    the following breaking changes:
    >
    > https://github.com/apache/datafusion/pull/20319 - removed deprecated
    function from ExecutionPlan trait
    > https://github.com/apache/datafusion/pull/19635 - added argument to
    HashJoinExec::try_new function
    
    ## What changes are included in this PR?
    
    Fix the above
    
    ## Are these changes tested?
    Yes by CI
    
    ## Are there any user-facing changes?
    
    Better docs
---
 docs/source/library-user-guide/upgrading/53.0.0.md | 49 ++++++++++++++++++----
 1 file changed, 42 insertions(+), 7 deletions(-)

diff --git a/docs/source/library-user-guide/upgrading/53.0.0.md b/docs/source/library-user-guide/upgrading/53.0.0.md
index f616220778..f572b2a3f7 100644
--- a/docs/source/library-user-guide/upgrading/53.0.0.md
+++ b/docs/source/library-user-guide/upgrading/53.0.0.md
@@ -21,13 +21,6 @@
 
 ## DataFusion 53.0.0
 
-**Note:** DataFusion `53.0.0` has not been released yet. The information provided
-*in this section pertains to features and changes that have already been merged
-*to the main branch and are awaiting release in this version. See [#19692] for
-\*more details.
-
-[#19692]: https://github.com/apache/datafusion/issues/19692
-
 ### Upgrade arrow/parquet to 58.0.0 and object_store to 0.13.0
 
 DataFusion 53.0.0 uses `arrow` and `parquet` 58.0.0, and `object_store` 0.13.0.
@@ -39,6 +32,39 @@ See the [Arrow 58.0.0 release notes] and the [object_store 0.13.0 upgrade guide]
 [arrow 58.0.0 release notes]: https://github.com/apache/arrow-rs/releases/tag/58.0.0
 [object_store 0.13.0 upgrade guide]: https://github.com/apache/arrow-rs-object-store/blob/v0.13.0/CHANGELOG.md
 
+### `ExecutionPlan::statistics` removed
+
+The deprecated `ExecutionPlan::statistics()` method has been removed. If you
+implement custom `ExecutionPlan`s, remove that method from your impl and
+implement `partition_statistics()` instead.
+
+**Before:**
+
+```rust,ignore
+impl ExecutionPlan for MyExec {
+    // ...
+
+    fn statistics(&self) -> Result<Statistics> {
+        Ok(Statistics::new_unknown(&self.schema()))
+    }
+}
+```
+
+**After:**
+
+```rust,ignore
+impl ExecutionPlan for MyExec {
+    // ...
+
+    fn partition_statistics(&self, _partition: Option<usize>) -> Result<Statistics> {
+        Ok(Statistics::new_unknown(&self.schema()))
+    }
+}
+```
+
+If you do not have partition-specific statistics, return the same value for
+`None` and for any partition index.
+
 ### `ExecutionPlan::properties` now returns `&Arc<PlanProperties>`
 
 Now `ExecutionPlan::properties()` returns `&Arc<PlanProperties>` instead of a
@@ -125,6 +151,15 @@ let sub_plan = self.query_to_plan(subquery, planner_context)?;
 planner_context.pop_outer_query_schema();
 ```
 
+### `HashJoinExec::try_new` adds `null_aware`
+
+`HashJoinExec::try_new` now takes an extra `null_aware: bool` argument. This
+flag is used for null-aware anti joins, such as plans generated for `NOT IN`
+subqueries.
+
+Most callers should pass `false`, the previous behavior. Pass `true` only for null-aware
+`JoinType::LeftAnti` joins.
+
 ### `FileSinkConfig` adds `file_output_mode`
 
 `FileSinkConfig` now includes a `file_output_mode: FileOutputMode` field to control


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org