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

mbutrovich pushed a commit to branch branch-54
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/branch-54 by this push:
     new c8dddb8a03 [branch-54] add changelog (#22402)
c8dddb8a03 is described below

commit c8dddb8a03f098b92e0295118d12390381d23fa8
Author: Matt Butrovich <[email protected]>
AuthorDate: Wed May 20 17:10:47 2026 -0400

    [branch-54] add changelog (#22402)
---
 dev/changelog/54.0.0.md | 916 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 916 insertions(+)

diff --git a/dev/changelog/54.0.0.md b/dev/changelog/54.0.0.md
new file mode 100644
index 0000000000..22382d8683
--- /dev/null
+++ b/dev/changelog/54.0.0.md
@@ -0,0 +1,916 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache DataFusion 54.0.0 Changelog
+
+This release consists of 727 commits from 139 contributors. See credits at the 
end of this changelog for more information.
+
+See the [upgrade 
guide](https://datafusion.apache.org/library-user-guide/upgrading.html) for 
information on how to upgrade from previous versions.
+
+**Breaking changes:**
+
+- Add `ExecutionPlan::apply_expressions()` 
[#20337](https://github.com/apache/datafusion/pull/20337) (LiaCastaneda)
+- Add `Field` to `Expr::Cast` -- allow logical expressions to express a cast 
to an extension type [#18136](https://github.com/apache/datafusion/pull/18136) 
(paleolimbot)
+- feat: parse `JsonAccess` as a binary operator, add `Operator::Colon` 
[#20628](https://github.com/apache/datafusion/pull/20628) (Samyak2)
+- Wrap Arc to Statistics for `partition_statistics` API 
[#20570](https://github.com/apache/datafusion/pull/20570) (xudong963)
+- Replace ahash with foldhash for faster hashing in datafusion-common 
[#20958](https://github.com/apache/datafusion/pull/20958) (Dandandan)
+- fix: `arrays_zip/list_zip` allow single array argument 
[#21047](https://github.com/apache/datafusion/pull/21047) (hsiang-c)
+- Remove file prefetching from FileStream 
[#20916](https://github.com/apache/datafusion/pull/20916) (Dandandan)
+- Remove as_any from scalar UDF trait definition 
[#20812](https://github.com/apache/datafusion/pull/20812) (timsaucer)
+- Provide session to the udtf call 
[#20222](https://github.com/apache/datafusion/pull/20222) (askalt)
+- chore: remove as_any from aggregate and window functions 
[#21209](https://github.com/apache/datafusion/pull/21209) (timsaucer)
+- chore: remove as_any from ExecutionPlan 
[#21263](https://github.com/apache/datafusion/pull/21263) (timsaucer)
+- fix: Prefer numeric in type coercion for comparisons 
[#20426](https://github.com/apache/datafusion/pull/20426) (neilconway)
+- refactor(pruning): remove column param from PruningStatistics::row_counts 
[#21369](https://github.com/apache/datafusion/pull/21369) (adriangb)
+- Remove CastColumnExpr and custom_file_casts example; unify on field-aware 
CastExpr [#21563](https://github.com/apache/datafusion/pull/21563) (kosiew)
+- perf: Optimize NULL handling in `StringViewArrayBuilder` 
[#21538](https://github.com/apache/datafusion/pull/21538) (neilconway)
+- Remove `as_any` on the `PhysicalExpr` trait 
[#21573](https://github.com/apache/datafusion/pull/21573) (timsaucer)
+- Remove trait function `as_any` from datafusion-datasource 
[#21576](https://github.com/apache/datafusion/pull/21576) (timsaucer)
+- feat: change approx percentile/median UDFs to return floats 
[#21074](https://github.com/apache/datafusion/pull/21074) (theirix)
+- chore: Rename concat-specific string builders, make pub(crate) 
[#21695](https://github.com/apache/datafusion/pull/21695) (neilconway)
+- perf: Implement physical execution of uncorrelated scalar subqueries 
[#21240](https://github.com/apache/datafusion/pull/21240) (neilconway)
+- Add lambda support and array_transform udf 
[#21679](https://github.com/apache/datafusion/pull/21679) (gstvg)
+- perf: strength reduce hash partition modulo (up to 1.16x faster) 
[#21900](https://github.com/apache/datafusion/pull/21900) (Dandandan)
+- feat: Improve InListExpr types, flatten dict haystacks and validate in 
try_new_from_array [#21402](https://github.com/apache/datafusion/pull/21402) 
(buraksenn)
+- feat: type-keyed extensions map for PartitionedFile 
[#21993](https://github.com/apache/datafusion/pull/21993) (adriangb)
+- Add support for lambda column capture 
[#21323](https://github.com/apache/datafusion/pull/21323) (gstvg)
+- feat: Add Protobuf support for Explain node 
[#21994](https://github.com/apache/datafusion/pull/21994) (danielhumanmod)
+- deprecate: mark Statistics V2 framework (PR #14699) as deprecated 
[#22071](https://github.com/apache/datafusion/pull/22071) (alamb)
+- feat: impl Any for MemoryPool 
[#21803](https://github.com/apache/datafusion/pull/21803) (haohuaijin)
+- Add metrics to `FFI_ExecutionPlan` 
[#22136](https://github.com/apache/datafusion/pull/22136) (mailmindlin)
+- fix(aggregate): show aliased expr in explain 
[#21739](https://github.com/apache/datafusion/pull/21739) (kumarUjjawal)
+- proto: serialize dynamic filters on Sort, Aggregate, HashJoin plan nodes 
[#22011](https://github.com/apache/datafusion/pull/22011) (jayshrivastava)
+- Add exact HigherOrderSignature 
[#22326](https://github.com/apache/datafusion/pull/22326) (LiaCastaneda)
+- Add a memory bound FileStatisticsCache for the Listing Table 
[#20047](https://github.com/apache/datafusion/pull/20047) (mkleen)
+- Add configurable UNION DISTINCT to FILTER rewrite optimization 
[#21075](https://github.com/apache/datafusion/pull/21075) (xiedeyantu)
+- minor: make HigherOrderSignature less error-prone 
[#22106](https://github.com/apache/datafusion/pull/22106) (gstvg)
+- Expose `ExecutionPlan` statistics across the FFI boundary 
[#22157](https://github.com/apache/datafusion/pull/22157) (mailmindlin)
+- feat: optional timezone for coerce_int96 
[#22318](https://github.com/apache/datafusion/pull/22318) (andygrove)
+
+**Performance related:**
+
+- perf: Optimize `array_to_string` to avoid a copy 
[#20639](https://github.com/apache/datafusion/pull/20639) (neilconway)
+- perf: Apply logical regexp optimizations to Utf8View and LargeUtf8 inputs 
[#20581](https://github.com/apache/datafusion/pull/20581) (petern48)
+- perf: Optimize `array_concat` using `MutableArrayData` 
[#20620](https://github.com/apache/datafusion/pull/20620) (neilconway)
+- perf: Optimize `to_char` to allocate less, fix NULL handling 
[#20635](https://github.com/apache/datafusion/pull/20635) (neilconway)
+- Eliminate deterministic group by keys with deterministic transformations 
[#20706](https://github.com/apache/datafusion/pull/20706) (Dandandan)
+- perf: short-circuit and collect_bool for IN list with column references 
[#20694](https://github.com/apache/datafusion/pull/20694) (zhangxffff)
+- perf: sort replace free()->try_grow() pattern with try_resize() to reduce 
memory pool interactions 
[#20729](https://github.com/apache/datafusion/pull/20729) (mbutrovich)
+- perf: Optimize set operations to avoid RowConverter deserialization overhead 
[#20623](https://github.com/apache/datafusion/pull/20623) (neilconway)
+- perf: Use batched row conversion for `array_has_any`, `array_has_all` 
[#20588](https://github.com/apache/datafusion/pull/20588) (neilconway)
+- perf: Optimize array set ops on sliced arrays 
[#20693](https://github.com/apache/datafusion/pull/20693) (neilconway)
+- perf: Optimize comparison on nested types 
[#20716](https://github.com/apache/datafusion/pull/20716) (neilconway)
+- perf: Optimize `array_positions()` for scalar needle 
[#20770](https://github.com/apache/datafusion/pull/20770) (neilconway)
+- perf: Optimize `approx_distinct()` for string, binary inputs 
[#21037](https://github.com/apache/datafusion/pull/21037) (neilconway)
+- perf: Optimize `approx_distinct` for inline Utf8View 
[#21064](https://github.com/apache/datafusion/pull/21064) (neilconway)
+- perf: Optimize `strpos()` for scalar needle, plus optimize UTF-8 codepath 
[#20754](https://github.com/apache/datafusion/pull/20754) (neilconway)
+- perf: Optimize `lpad()`, `rpad()` for scalar args 
[#20657](https://github.com/apache/datafusion/pull/20657) (neilconway)
+- perf: add in-place fast path for ScalarValue::add 
[#20959](https://github.com/apache/datafusion/pull/20959) (kumarUjjawal)
+- perf: Optimize `array_sort()` 
[#21083](https://github.com/apache/datafusion/pull/21083) (neilconway)
+- Super fast extended tests and improved planning speed linux 
[#21084](https://github.com/apache/datafusion/pull/21084) (blaginin)
+- Add a builder to `SimplifyContext` to avoid allocating default values 
[#21092](https://github.com/apache/datafusion/pull/21092) (AdamGS)
+- Avoid creating new RecordBatches to simplify expressions 
[#20534](https://github.com/apache/datafusion/pull/20534) (alamb)
+- perf: optimize scatter with type-specific specialization 
[#20498](https://github.com/apache/datafusion/pull/20498) (CuteChuanChuan)
+- perf: Optimize `array_min`, `array_max` for arrays of primitive types 
[#21101](https://github.com/apache/datafusion/pull/21101) (neilconway)
+- perf: optimize map validation for common key types 
[#20805](https://github.com/apache/datafusion/pull/20805) (lyne7-sc)
+- perf: specialized SemiAntiSortMergeJoinStream 
[#20806](https://github.com/apache/datafusion/pull/20806) (mbutrovich)
+- Improvement: keep order-preserving repartitions for streaming aggregates 
[#21107](https://github.com/apache/datafusion/pull/21107) (xudong963)
+- perf: Add support for `GroupsAccumulator` to `string_agg` 
[#21154](https://github.com/apache/datafusion/pull/21154) (neilconway)
+- perf: Optimize `split_part`, support `Utf8View` 
[#21119](https://github.com/apache/datafusion/pull/21119) (neilconway)
+- perf: sort-merge join (SMJ) batch deferred filtering and move mark joins to 
bitwise stream. Near-unique LEFT and FULL SMJ 20-50x faster 
[#21184](https://github.com/apache/datafusion/pull/21184) (mbutrovich)
+- perf: Optimize `string_to_array` for scalar args 
[#21131](https://github.com/apache/datafusion/pull/21131) (neilconway)
+- Misc minor optimizations to query optimizer performance 
[#21128](https://github.com/apache/datafusion/pull/21128) (AdamGS)
+- ensure dynamic filters are correctly pushed down through aggregations 
[#21059](https://github.com/apache/datafusion/pull/21059) (jayshrivastava)
+- perf: Merge Precision in-place 
[#21219](https://github.com/apache/datafusion/pull/21219) (AdamGS)
+- feat: support GroupsAccumulator for first_value and last_value with 
string/binary types [#21090](https://github.com/apache/datafusion/pull/21090) 
(UBarney)
+- perf: Optimize `split_part` for scalar args 
[#21238](https://github.com/apache/datafusion/pull/21238) (neilconway)
+- perf: optimize object store requests when reading JSON 
[#20823](https://github.com/apache/datafusion/pull/20823) (ariel-miculas)
+- perf: Optimize `split_part` for `Utf8View` 
[#21420](https://github.com/apache/datafusion/pull/21420) (neilconway)
+- Eliminate outer joins with empty relations via null-padded projection 
[#21321](https://github.com/apache/datafusion/pull/21321) (SubhamSinghal)
+- Optimize `regexp_replace` by stripping trailing .\* from anchored patterns. 
2.4x improvement (ClickBench Q28) 
[#21379](https://github.com/apache/datafusion/pull/21379) (Dandandan)
+- perf: use DynComparator in sort-merge join (SMJ), microbenchmark queries up 
to 12% faster, TPC-H overall ~5% faster 
[#21484](https://github.com/apache/datafusion/pull/21484) (mbutrovich)
+- perf: Optimize NULL handling in `substr` 
[#21519](https://github.com/apache/datafusion/pull/21519) (neilconway)
+- perf: replace SMJ's join_filter_not_matched_map HashMap with 
Vec<FilterState> [#21517](https://github.com/apache/datafusion/pull/21517) 
(mbutrovich)
+- perf: Optimize NULL handling in `find_in_set` 
[#21464](https://github.com/apache/datafusion/pull/21464) (neilconway)
+- perf: Optimize NULL handling in `lcm`, `gcd` 
[#21468](https://github.com/apache/datafusion/pull/21468) (neilconway)
+- perf: Optimize NULL handling in `arrays_zip` 
[#21475](https://github.com/apache/datafusion/pull/21475) (neilconway)
+- perf: Optimize NULL handling in `array_remove` 
[#21532](https://github.com/apache/datafusion/pull/21532) (neilconway)
+- perf: Optimize NULL handling in `array_slice` 
[#21482](https://github.com/apache/datafusion/pull/21482) (neilconway)
+- perf: Optimize NULL handling in some datetime functions 
[#21477](https://github.com/apache/datafusion/pull/21477) (neilconway)
+- perf: Optimize NULL handling in `array_has` 
[#21471](https://github.com/apache/datafusion/pull/21471) (neilconway)
+- perf: Optimize `Utf8View` string concat 
[#21535](https://github.com/apache/datafusion/pull/21535) (neilconway)
+- Conditionally build page pruning predicates 
[#21480](https://github.com/apache/datafusion/pull/21480) (fpetkovski)
+- perf: add fast path for uniform fill values in `array_resize` 
[#20617](https://github.com/apache/datafusion/pull/20617) (lyne7-sc)
+- perf : Optimize count distinct using bitmaps instead of hashsets for smaller 
datatypes [#21456](https://github.com/apache/datafusion/pull/21456) 
(coderfender)
+- perf: Optimize `left`, `right` to reduce copying 
[#21442](https://github.com/apache/datafusion/pull/21442) (neilconway)
+- perf: Optimize `substr` for Utf8, LargeUtf8 
[#21366](https://github.com/apache/datafusion/pull/21366) (neilconway)
+- feat: Optimize ORDER BY by Pruning Functionally Redundant Sort Keys 
[#21362](https://github.com/apache/datafusion/pull/21362) (xiedeyantu)
+- perf: Optimize logical optimizer's `OptimizeProjections` pass 
[#21726](https://github.com/apache/datafusion/pull/21726) (neilconway)
+- perf: Optimize `DFSchema::qualified_name` 
[#21722](https://github.com/apache/datafusion/pull/21722) (neilconway)
+- perf: Tweak vec capacity in `project_statistics` 
[#21734](https://github.com/apache/datafusion/pull/21734) (neilconway)
+- perf: Reduce `Box` and `Arc` allocation churn during tree rewriting 
[#21749](https://github.com/apache/datafusion/pull/21749) (neilconway)
+- perf: Implement groups accumulator count distinct primitive types 
[#21561](https://github.com/apache/datafusion/pull/21561) (coderfender)
+- perf: Optimize approx count distinct using bitmaps instead of HLL for 
smaller int datatypes [#21453](https://github.com/apache/datafusion/pull/21453) 
(coderfender)
+- perf: Optimize `lower`, `upper` for sliced arrays 
[#21814](https://github.com/apache/datafusion/pull/21814) (neilconway)
+- perf: Add bulk NULL-aware string builders, use in `lower` and `upper` 
[#21789](https://github.com/apache/datafusion/pull/21789) (neilconway)
+- perf: Use bulk-NULL builder in `uuid` 
[#21845](https://github.com/apache/datafusion/pull/21845) (neilconway)
+- Skip map_expressions rebuild for Extension nodes with empty expressions 
[#21701](https://github.com/apache/datafusion/pull/21701) (zhuqi-lucas)
+- Refactor InListExpr into static-filter modules 
[#21649](https://github.com/apache/datafusion/pull/21649) (geoffreyclaude)
+- perf: Use bulk-NULL string builder in `initcap` 
[#21863](https://github.com/apache/datafusion/pull/21863) (neilconway)
+- perf: Use bulk-NULL builder in `chr` 
[#21847](https://github.com/apache/datafusion/pull/21847) (neilconway)
+- perf: implement convert_to_state for SparkAvg 
[#21548](https://github.com/apache/datafusion/pull/21548) (azhangd)
+- perf: optimise `first_value`, `last_value` aggregate function 
[#21383](https://github.com/apache/datafusion/pull/21383) (theirix)
+- perf(spark): use 256-entry byte-pair table in hex encoding 
[#21836](https://github.com/apache/datafusion/pull/21836) (Scolliq)
+- perf: Optimize `substr_index` to use bulk-NULL string builder 
[#21877](https://github.com/apache/datafusion/pull/21877) (neilconway)
+- perf: Use bulk-NULL builder in `replace` 
[#21849](https://github.com/apache/datafusion/pull/21849) (neilconway)
+- Add SQL based benchmarking harness, port tpch to use framework 
[#21707](https://github.com/apache/datafusion/pull/21707) (Omega359)
+- perf: Add `BulkNullStringArrayBuilder` trait, use in `repeat` 
[#21854](https://github.com/apache/datafusion/pull/21854) (neilconway)
+- perf: optimize retract_batch for `median` and `percentile_cont` 
[#21894](https://github.com/apache/datafusion/pull/21894) (lyne7-sc)
+- perf: Optimize `reverse` using bulk-NULL string builders 
[#21991](https://github.com/apache/datafusion/pull/21991) (neilconway)
+- perf: Optimize `lower`, `upper` for ASCII inputs 
[#21980](https://github.com/apache/datafusion/pull/21980) (neilconway)
+- perf: Cast entire Date32 array to Date64 on 1st failure 
[#21948](https://github.com/apache/datafusion/pull/21948) (huymq1710)
+- perf: Use `NullBuffer::union_many` 
[#22070](https://github.com/apache/datafusion/pull/22070) (neilconway)
+- perf: improve Int64 `generate_series` and `range` performance 
[#21891](https://github.com/apache/datafusion/pull/21891) (lyne7-sc)
+- perf: batch contiguous extend calls in `array_replace` 
[#22119](https://github.com/apache/datafusion/pull/22119) (lyne7-sc)
+- perf: Add `append_with` to string builders, use in `replace` 
[#22029](https://github.com/apache/datafusion/pull/22029) (neilconway)
+- perf: reuse mask in `truncate_list_nulls` and avoid counting all true bits 
[#22158](https://github.com/apache/datafusion/pull/22158) (rluvaton)
+- Skip RowFilter and page pruning for fully matched row groups 
[#21637](https://github.com/apache/datafusion/pull/21637) (xudong963)
+- perf: bypass values.value(i) for inline strings in ArrowBytesViewMap 
[#22172](https://github.com/apache/datafusion/pull/22172) (RyanJamesStewart)
+- perf: Elimiate SortExec on generate_series() 
[#22238](https://github.com/apache/datafusion/pull/22238) (2010YOUY01)
+- perf: coalesce batches before sending to distributor channels in 
RepartitionExec [#22010](https://github.com/apache/datafusion/pull/22010) 
(gabotechs)
+- Resolve MIN/MAX from Parquet metadata for Single-mode aggregates and CAST 
projections [#21651](https://github.com/apache/datafusion/pull/21651) 
(Dandandan)
+- Compact more aggressively in TopK based upon memory usage 
[#20381](https://github.com/apache/datafusion/pull/20381) (cetra3)
+
+**Implemented enhancements:**
+
+- feat: support nanosecond date_part 
[#20674](https://github.com/apache/datafusion/pull/20674) (mhilton)
+- feat: Support Spark `array_contains` builtin function 
[#20685](https://github.com/apache/datafusion/pull/20685) (comphead)
+- feat: Integrate CastColumnExpr into PhysicalExprAdapter 
[#20269](https://github.com/apache/datafusion/pull/20269) (kumarUjjawal)
+- feat: `partition_statistics()` for HashJoinExec 
[#20711](https://github.com/apache/datafusion/pull/20711) (jonathanc-n)
+- feat: make DefaultLogicalExtensionCodec support serialisation of buil… 
[#20638](https://github.com/apache/datafusion/pull/20638) (Acfboy)
+- feat: correct struct column names for `arrays_zip` return type 
[#20886](https://github.com/apache/datafusion/pull/20886) (comphead)
+- feat: Reduce allocations for aggregating `Statistics` 
[#20768](https://github.com/apache/datafusion/pull/20768) (jonathanc-n)
+- feat: add `custom_string_literal_override` to unparser Dialect trait 
[#20590](https://github.com/apache/datafusion/pull/20590) (goldmedal)
+- feat: Extract NDV (distinct_count) statistics from Parquet metadata 
[#19957](https://github.com/apache/datafusion/pull/19957) (asolimando)
+- feat: support repartitioning of FFI execution plans 
[#20449](https://github.com/apache/datafusion/pull/20449) (timsaucer)
+- feat: create a datafusion-example for in-memory file format 
[#20394](https://github.com/apache/datafusion/pull/20394) (kumarUjjawal)
+- feat: implement PhysicalOptimizerRule in FFI crate 
[#20451](https://github.com/apache/datafusion/pull/20451) (timsaucer)
+- feat(metric): Add output skewness metric to detect skewed plans easier 
[#21211](https://github.com/apache/datafusion/pull/21211) (2010YOUY01)
+- feat: add sort pushdown benchmark and SLT tests 
[#21213](https://github.com/apache/datafusion/pull/21213) (zhuqi-lucas)
+- feat(sql): unparse array_has as ANY for Postgres 
[#20654](https://github.com/apache/datafusion/pull/20654) (vimeh)
+- feat: feature-gate `sqllogictests` datafusion-substrait behind optional 
'substrait' feature [#21268](https://github.com/apache/datafusion/pull/21268) 
(zhuqi-lucas)
+- feat: generate reversed-name data for sort pushdown benchmark 
[#21266](https://github.com/apache/datafusion/pull/21266) (zhuqi-lucas)
+- feat: Complete basic `LATERAL JOIN` functionality 
[#21202](https://github.com/apache/datafusion/pull/21202) (neilconway)
+- feat: Use NDV for equality filter selectivity calculation 
[#20789](https://github.com/apache/datafusion/pull/20789) (jonathanc-n)
+- feat: make BatchPartitioner::partition_iter public 
[#21341](https://github.com/apache/datafusion/pull/21341) (hcrosse)
+- feat: spark compatible float to timestamp cast with ANSI support 
[#21212](https://github.com/apache/datafusion/pull/21212) (coderfender)
+- feat(spark): Adds spark round function 
[#21062](https://github.com/apache/datafusion/pull/21062) (SubhamSinghal)
+- feat: make DataFrame::create_physical_plan take &self instead of self 
[#20562](https://github.com/apache/datafusion/pull/20562) (xanderbailey)
+- feat: add support for parquet content defined chunking options 
[#21110](https://github.com/apache/datafusion/pull/21110) (kszucs)
+- feat: sort file groups by statistics during sort pushdown (Sort pushdown 
phase 2) [#21182](https://github.com/apache/datafusion/pull/21182) (zhuqi-lucas)
+- feat: Set NDV to Exact(1) for numeric equality filter predicates 
[#21077](https://github.com/apache/datafusion/pull/21077) (asolimando)
+- feat: make sort pushdown BufferExec capacity configurable, default 1GB 
[#21426](https://github.com/apache/datafusion/pull/21426) (zhuqi-lucas)
+- feat: Propagate orderings through struct-producing projections 
[#21218](https://github.com/apache/datafusion/pull/21218) (rkrishn7)
+- feat: add cast_to_type UDF for type-based casting 
[#21322](https://github.com/apache/datafusion/pull/21322) (adriangb)
+- feat: Add pluggable StatisticsRegistry for operator-level statistics 
propagation [#21483](https://github.com/apache/datafusion/pull/21483) 
(asolimando)
+- feat: Add Hash trait to Aggregate enums 
[#21569](https://github.com/apache/datafusion/pull/21569) (rluvaton)
+- feat(substrait): support Placeholder <-> DynamicParameter in Substrait 
producer/consumer [#20977](https://github.com/apache/datafusion/pull/20977) 
(bvolpato)
+- feat: add `with_metadata` scalar UDF to attach Arrow field metadata 
[#21509](https://github.com/apache/datafusion/pull/21509) (adriangb)
+- feat: Additional Canonical Extension Types 
[#21291](https://github.com/apache/datafusion/pull/21291) (tschwarzinger)
+- feat: Add memory-limited execution for NestedLoopJoinExec 
[#21448](https://github.com/apache/datafusion/pull/21448) (viirya)
+- feat(stats): cap NDV at row count in statistics estimation 
[#21081](https://github.com/apache/datafusion/pull/21081) (asolimando)
+- feat: support `array_compact` builtin function 
[#21522](https://github.com/apache/datafusion/pull/21522) (comphead)
+- feat: add a config to disable subquery_sort_elimination 
[#21614](https://github.com/apache/datafusion/pull/21614) (haohuaijin)
+- feat: extend single ndv optimization to non-arithmetic supporting types for 
equality predicates [#21473](https://github.com/apache/datafusion/pull/21473) 
(buraksenn)
+- feat: extend interval analysis support for temporal types 
[#21520](https://github.com/apache/datafusion/pull/21520) (buraksenn)
+- feat: add sort_pushdown_inexact benchmark for RG reorder 
[#21674](https://github.com/apache/datafusion/pull/21674) (zhuqi-lucas)
+- feat: support '>', '<', '>=', '<=', '<>' in all operator 
[#21416](https://github.com/apache/datafusion/pull/21416) (buraksenn)
+- feat: Add support for `LEFT JOIN LATERAL` 
[#21352](https://github.com/apache/datafusion/pull/21352) (neilconway)
+- feat: Expose used `MemoryPool` details in `ResourcesExhausted` error 
messages [#20387](https://github.com/apache/datafusion/pull/20387) 
(erenavsarogullari)
+- feat: estimate cardinality for semi and anti-joins using distinct counts 
[#20904](https://github.com/apache/datafusion/pull/20904) (buraksenn)
+- feat: support `ListView` and `LargeListView` in `ScalarValue` 
[#21669](https://github.com/apache/datafusion/pull/21669) (Jefffrey)
+- feat: add cosine_distance scalar function 
[#21542](https://github.com/apache/datafusion/pull/21542) (crm26)
+- feat: remove `__unnest_placeholder` from struct unnest projection 
[#21725](https://github.com/apache/datafusion/pull/21725) (akoshchiy)
+- feat(unparser): Keep inner join `Filter → TableScan` predicates to `WHERE` 
instead of moving to `JOIN ON` 
[#21694](https://github.com/apache/datafusion/pull/21694) (sgrebnov)
+- feat: minor lambda perf improvements 
[#21896](https://github.com/apache/datafusion/pull/21896) (comphead)
+- feat: automatically cast `ListView` to `List` for UDFs 
[#21855](https://github.com/apache/datafusion/pull/21855) (Jefffrey)
+- feat: support binary arguments for StringConcat operator 
[#21883](https://github.com/apache/datafusion/pull/21883) (theirix)
+- feat: add inner_product scalar function 
[#21861](https://github.com/apache/datafusion/pull/21861) (crm26)
+- feat: Support RIGHT/FULL joins in NLJ memory-limited execution 
[#21833](https://github.com/apache/datafusion/pull/21833) (viirya)
+- feat: Improved multiple column aggregation performance by using bitmasks 
rather than `Vec<bool>` 
[#21886](https://github.com/apache/datafusion/pull/21886) (huymq1710)
+- feat: Making 
From<ConfigFileDecryptionProperties/ConfigFileEncryptionProperties> conversions 
fallible with `TryFrom` 
[#21985](https://github.com/apache/datafusion/pull/21985) 
(Soham-Bhattacharjee-work)
+- feat: support spark compatible floor function 
[#21933](https://github.com/apache/datafusion/pull/21933) (athlcode)
+- feat: fix NTILE distribution logic 
[#22051](https://github.com/apache/datafusion/pull/22051) (comphead)
+- feat: implement retract_batch for array_agg sliding window support 
[#22015](https://github.com/apache/datafusion/pull/22015) (SubhamSinghal)
+- feat: Upgrade to sqlparser-rs 0.62.0 
[#22069](https://github.com/apache/datafusion/pull/22069) (andygrove)
+- feat: fix windows frame positive/neg overflows 
[#22140](https://github.com/apache/datafusion/pull/22140) (comphead)
+- feat: fix AVG sliding windows wrong results with NULLs 
[#22139](https://github.com/apache/datafusion/pull/22139) (comphead)
+- feat: fix windows decimal casting frame 
[#22174](https://github.com/apache/datafusion/pull/22174) (comphead)
+- feat: eliminate GlobalLimitExec when input statistics prove limit is already 
satisfied [#22150](https://github.com/apache/datafusion/pull/22150) (xiedeyantu)
+- feat: globally reorder files and row groups by statistics for TopK queries 
[#21956](https://github.com/apache/datafusion/pull/21956) (zhuqi-lucas)
+- feat: Restore nullability when consuming substrait fields 
[#22105](https://github.com/apache/datafusion/pull/22105) (neilconway)
+- feat: add array_normalize scalar function 
[#22013](https://github.com/apache/datafusion/pull/22013) (crm26)
+- feat: add Spark-compatible xxhash64 function 
[#21967](https://github.com/apache/datafusion/pull/21967) (andygrove)
+
+**Fixed bugs:**
+
+- fix: make the `sql` feature truly optional 
[#20625](https://github.com/apache/datafusion/pull/20625) (linhr)
+- fix: use try_shrink instead of shrink in try_resize 
[#20424](https://github.com/apache/datafusion/pull/20424) (ariel-miculas)
+- fix: Provide more generic API for the capacity limit parsing 
[#20372](https://github.com/apache/datafusion/pull/20372) (erenavsarogullari)
+- fix: Fix bug in `array_has` scalar path with sliced arrays 
[#20677](https://github.com/apache/datafusion/pull/20677) (neilconway)
+- fix: `HashJoin` panic with String dictionary keys (don't flatten keys) 
[#20505](https://github.com/apache/datafusion/pull/20505) (alamb)
+- fix: Return `probe_side.len()` for RightMark/Anti count(\*) queries 
[#20710](https://github.com/apache/datafusion/pull/20710) (jonathanc-n)
+- fix: preserve None projection semantics across FFI boundary in 
ForeignTableProvider::scan 
[#20393](https://github.com/apache/datafusion/pull/20393) (Kontinuation)
+- fix(spark): handle divide-by-zero in Spark `mod`/`pmod` with ANSI mode 
support [#20461](https://github.com/apache/datafusion/pull/20461) 
(davidlghellin)
+- fix: sqllogictest cannot convert <subquery> to Substrait 
[#19739](https://github.com/apache/datafusion/pull/19739) (kumarUjjawal)
+- fix: interval analysis error when have two filterexec that inner filter 
proves zero selectivity 
[#20743](https://github.com/apache/datafusion/pull/20743) (haohuaijin)
+- fix: SanityCheckPlan error with window functions and NVL filter 
[#20231](https://github.com/apache/datafusion/pull/20231) (EeshanBembi)
+- fix: Avoid unnecessary type casts in `concat_ws` 
[#20436](https://github.com/apache/datafusion/pull/20436) (neilconway)
+- fix: Remove `!=0` check from `supports_collect_by_thresholds` 
[#20730](https://github.com/apache/datafusion/pull/20730) (jonathanc-n)
+- fix: do not recompute hash join exec properties if not required 
[#20900](https://github.com/apache/datafusion/pull/20900) (askalt)
+- fix: Optimize `!~ '.*'` case to `col IS NULL AND Boolean(NULL)` instead of 
`Eq ""` [#20702](https://github.com/apache/datafusion/pull/20702) (petern48)
+- fix: Track metrics in hash joins with empty build sides 
[#20810](https://github.com/apache/datafusion/pull/20810) (nuno-faria)
+- fix: dfbench respects DATAFUSION_RUNTIME_MEMORY_LIMIT env var 
[#20631](https://github.com/apache/datafusion/pull/20631) (adriangb)
+- fix(spark): return input string for PATH/FILE on schemeless URLs in 
`parse_url` [#20506](https://github.com/apache/datafusion/pull/20506) 
(davidlghellin)
+- fix: InList Dictionary filter pushdown type mismatch 
[#20962](https://github.com/apache/datafusion/pull/20962) (erratic-pattern)
+- fix: Run release verification with `--profile=ci` 
[#20987](https://github.com/apache/datafusion/pull/20987) (alamb)
+- fix: move overflow guard before dense ratio in hash join to prevent 
overflows [#20998](https://github.com/apache/datafusion/pull/20998) (buraksenn)
+- fix: improve GroupOrdering docs 
[#20994](https://github.com/apache/datafusion/pull/20994) (alamb)
+- fix: update clickbench expected plan for NDV-aware optimization 
[#21050](https://github.com/apache/datafusion/pull/21050) (asolimando)
+- fix: use datafusion_expr instead of datafusion crate in spark 
[#21043](https://github.com/apache/datafusion/pull/21043) (davidlghellin)
+- Fix CTE reference resolution slt tests 
[#21049](https://github.com/apache/datafusion/pull/21049) (jonahgao)
+- fix: validate wrapped negation during type coercion 
[#20965](https://github.com/apache/datafusion/pull/20965) (myandpr)
+- fix(sql): handle GROUP BY ALL with aliased aggregates 
[#20943](https://github.com/apache/datafusion/pull/20943) (kumarUjjawal)
+- fix: string_to_array('', delim) returns empty array for PostgreSQL 
compatibility [#21104](https://github.com/apache/datafusion/pull/21104) 
(dd-david-levin)
+- Fix push_down_filter for children with non-empty fetch fields 
[#21057](https://github.com/apache/datafusion/pull/21057) (shivbhatia10)
+- fix(stats): widen sum_value integer arithmetic to SUM-compatible types 
[#20865](https://github.com/apache/datafusion/pull/20865) (kumarUjjawal)
+- fix: skip empty metadata in intersect_metadata_for_union to prevent s… 
[#21127](https://github.com/apache/datafusion/pull/21127) (RafaelHerrero)
+- fix: Df int timestamp cast fix failing CI 
[#21163](https://github.com/apache/datafusion/pull/21163) (coderfender)
+- fix(unparser): Fix BigQuery timestamp literal format in SQL unparsing 
[#21103](https://github.com/apache/datafusion/pull/21103) (sgrebnov)
+- fix: propagate errors for unsupported table function arguments instead of 
silently dropping them 
[#21135](https://github.com/apache/datafusion/pull/21135) (buraksenn)
+- fix: Fix `main` compilation failure 
[#21242](https://github.com/apache/datafusion/pull/21242) (2010YOUY01)
+- fix: Revert "Fix/support duplicate column names #6543 (#21126)" 
[#21254](https://github.com/apache/datafusion/pull/21254) (mbutrovich)
+- fix: Fix three bugs in query decorrelation 
[#21208](https://github.com/apache/datafusion/pull/21208) (neilconway)
+- fix: date overflow panic 
[#21233](https://github.com/apache/datafusion/pull/21233) (haohuaijin)
+- fix: `SELECT * EXCLUDE(...)` silently returns empty rows when all columns 
are excluded [#21259](https://github.com/apache/datafusion/pull/21259) 
(xiedeyantu)
+- fix(unparser): use to_rfc3339 for default TIMESTAMPTZ formatting 
[#21295](https://github.com/apache/datafusion/pull/21295) (sgrebnov)
+- fix: use spill writer's schema instead of the first batch schema for spill 
files [#21293](https://github.com/apache/datafusion/pull/21293) (gruuya)
+- fix: binary string concat 
[#20787](https://github.com/apache/datafusion/pull/20787) (theirix)
+- fix(sql): fix a bug when planning semi- or antijoins 
[#20990](https://github.com/apache/datafusion/pull/20990) (aalexandrov)
+- fix(datasource): keep stats absent when collect_stats is false 
[#21149](https://github.com/apache/datafusion/pull/21149) (kumarUjjawal)
+- fix: preserve source field metadata in TryCast expressions 
[#21390](https://github.com/apache/datafusion/pull/21390) (adriangb)
+- fix: skips projection pruning for whole subtree 
[#20545](https://github.com/apache/datafusion/pull/20545) (Acfboy)
+- fix: preserve subquery structure when unparsing SubqueryAlias over Ag… 
[#21099](https://github.com/apache/datafusion/pull/21099) (yonatan-sevenai)
+- fix: FilterExec should drop projection when apply projection pushdown 
[#21460](https://github.com/apache/datafusion/pull/21460) (haohuaijin)
+- fix: preserve duplicate GROUPING SETS rows 
[#21058](https://github.com/apache/datafusion/pull/21058) (xiedeyantu)
+- fix: apply the left side schema on the right side in set expressions 
[#21052](https://github.com/apache/datafusion/pull/21052) (gruuya)
+- fix: Use codepoints in `lpad`, `rpad`, `translate` 
[#21405](https://github.com/apache/datafusion/pull/21405) (neilconway)
+- fix: PostgreSQL dialect can not support tinyint type 
[#21445](https://github.com/apache/datafusion/pull/21445) (xiedeyantu)
+- fix: DataFusion benchmark panicked: failed to cast '2013-07-01' to UInt16 
[#21498](https://github.com/apache/datafusion/pull/21498) (xiedeyantu)
+- fix(sql): return planner error for malformed typed literals 
[#21454](https://github.com/apache/datafusion/pull/21454) (officialasishkumar)
+- fix: Preserve quoted mixed-case identifiers in the `pivot_unpivot` example 
[#21432](https://github.com/apache/datafusion/pull/21432) (niebayes)
+- fix(spark): array_repeat returns repeated NULLs instead of NULL when element 
is NULL [#21558](https://github.com/apache/datafusion/pull/21558) (buraksenn)
+- fix: grouping with alias 
[#21438](https://github.com/apache/datafusion/pull/21438) (timsaucer)
+- fix(spark): mod/pmod returns NULL instead of NaN for float division by zero 
[#21557](https://github.com/apache/datafusion/pull/21557) (buraksenn)
+- fix: LazyMemoryExec should produce independent streams per execute() 
[#21565](https://github.com/apache/datafusion/pull/21565) (viirya)
+- fix: json scan performance on local files 
[#21478](https://github.com/apache/datafusion/pull/21478) (ariel-miculas)
+- fix(benchmarks): correct TPC-H benchmark SQL 
[#21615](https://github.com/apache/datafusion/pull/21615) (kumarUjjawal)
+- fix: suppress nondeterministic metrics in agg_dyn_e2e sqllogictest 
[#21657](https://github.com/apache/datafusion/pull/21657) (mbutrovich)
+- fix: Fix compilation error on `main` 
[#21664](https://github.com/apache/datafusion/pull/21664) (2010YOUY01)
+- fix: `median` retract logic for sliding window frames 
[#21300](https://github.com/apache/datafusion/pull/21300) (lyne7-sc)
+- fix: Fix Spark `slice` function `Null` type to `GenericListArray` casting 
issue [#20469](https://github.com/apache/datafusion/pull/20469) 
(erenavsarogullari)
+- fix: Remove nested async block causing Stacked Borrows violation in 
PushDecoderStreamState 
[#21663](https://github.com/apache/datafusion/pull/21663) (mbutrovich)
+- fix: impl `handle_child_pushdown_result` for `SortExec` 
[#21527](https://github.com/apache/datafusion/pull/21527) (haohuaijin)
+- fix: SortMergeJoin full outer join incorrectly matches rows when filter 
evaluates to NULL [#21660](https://github.com/apache/datafusion/pull/21660) 
(mbutrovich)
+- fix: try again to fix Miri in ParquetOpener 
[#21680](https://github.com/apache/datafusion/pull/21680) (mbutrovich)
+- fix: `optimize_projections` failure after mark joins created by `EXISTS OR 
EXISTS` [#21265](https://github.com/apache/datafusion/pull/21265) (buraksenn)
+- fix: import from `datafusion_expr` in `make_valid_utf8` 
[#21687](https://github.com/apache/datafusion/pull/21687) (hcrosse)
+- fix: linearized operands in physical binaryexpr protobuf to avoid recursion 
limit [#21031](https://github.com/apache/datafusion/pull/21031) (haohuaijin)
+- fix: remove unnecessary `as_any()` to fix compilation error 
[#21693](https://github.com/apache/datafusion/pull/21693) (Jefffrey)
+- fix: Prevent CLI crash on wide tables 
[#21721](https://github.com/apache/datafusion/pull/21721) (Geethapranay1)
+- fix(unparser): make `BigQueryDialect` more robust 
[#21296](https://github.com/apache/datafusion/pull/21296) (sgrebnov)
+- fix: insert placeholder type inference showing wrong type when there is 
function wrapped placeholder (unknown type) 
[#20744](https://github.com/apache/datafusion/pull/20744) (buraksenn)
+- fix: array_concat widens container variant for mixed List/LargeList inputs 
[#21704](https://github.com/apache/datafusion/pull/21704) (hcrosse)
+- fix: Fix local `datafusion-cli` test failure 
[#21761](https://github.com/apache/datafusion/pull/21761) (2010YOUY01)
+- fix: Validate spill read schema 
[#21738](https://github.com/apache/datafusion/pull/21738) (2010YOUY01)
+- fix: improve sort pushdown benchmark data and add DESC LIMIT queries 
[#21711](https://github.com/apache/datafusion/pull/21711) (zhuqi-lucas)
+- fix: rebind RecursiveQueryExec batches to the declared output schema 
[#21770](https://github.com/apache/datafusion/pull/21770) (adriangb)
+- fix: Enable `arrow-ipc/zstd` in `datasource-arrow` to make 
`test_spill_compression` pass in every config 
[#21504](https://github.com/apache/datafusion/pull/21504) (AdamGS)
+- fix: Do not highlight the CLI hint directly 
[#21858](https://github.com/apache/datafusion/pull/21858) (nuno-faria)
+- fix: fix elapsed_compute metric in ParquetSink to report encoding time only 
[#21825](https://github.com/apache/datafusion/pull/21825) (fred1268)
+- fix: grouping separator for float and decimal 
[#20268](https://github.com/apache/datafusion/pull/20268) (Druva-D)
+- fix: Fix `.gitignore` in `benchmarks/` 
[#21954](https://github.com/apache/datafusion/pull/21954) (2010YOUY01)
+- fix(proto): correctly serialize FilterExec empty projection 
[#21885](https://github.com/apache/datafusion/pull/21885) (Adez017)
+- fix: Make conversion from FileDecryptionProperties to 
ConfigFileDecryptionProperties fallible 
[#21603](https://github.com/apache/datafusion/pull/21603) (adamreeve)
+- fix: Avoid unnecessary input repartitioning with `ScalarSubqueryExec` 
[#21986](https://github.com/apache/datafusion/pull/21986) (neilconway)
+- fix: error on CREATE EXTERNAL TABLE with no files and no explicit schema 
[#21965](https://github.com/apache/datafusion/pull/21965) (adriangb)
+- fix: `median` returns Float64 for integer inputs to avoid truncation 
[#21988](https://github.com/apache/datafusion/pull/21988) (CuteChuanChuan)
+- fix: Correct the number of pruned/matched Parquet pages 
[#22031](https://github.com/apache/datafusion/pull/22031) (nuno-faria)
+- fix: use datafusion_expr instead of datafusion crate 
[#22052](https://github.com/apache/datafusion/pull/22052) (hsiang-c)
+- fix(spark): align parse_url empty FILE path 
[#21969](https://github.com/apache/datafusion/pull/21969) (kumarUjjawal)
+- fix: drop input plan early in `CoalescePartitionsExec` 
[#22017](https://github.com/apache/datafusion/pull/22017) (Samyak2)
+- fix: track join_arrays memory in reservation after SMJ spill 
[#21962](https://github.com/apache/datafusion/pull/21962) (SubhamSinghal)
+- fix: Avoid `overlay` panic on valid Unicode input, Postgres compatibility 
[#22046](https://github.com/apache/datafusion/pull/22046) (neilconway)
+- fix: Panic in Spark's `format_string` for illegal characters 
[#22077](https://github.com/apache/datafusion/pull/22077) (neilconway)
+- fix: Incorrect behavior for `FILTER` on NULLs 
[#22068](https://github.com/apache/datafusion/pull/22068) (neilconway)
+- fix: coerce operand types in Interval mul/div/intersect/union/contains 
[#22027](https://github.com/apache/datafusion/pull/22027) (adriangb)
+- fix(bench): avoid OOM in `array_replace` bench 
[#22120](https://github.com/apache/datafusion/pull/22120) (kumarUjjawal)
+- fix: Nested self-referential CASE chains should not cause exponential 
hashing work during physical planning. 
[#22175](https://github.com/apache/datafusion/pull/22175) (avantgardnerio)
+- fix: preserve Inexact precision in Statistics 
[#22146](https://github.com/apache/datafusion/pull/22146) (timsaucer)
+- fix: Handle EXECUTE without statement name 
[#22204](https://github.com/apache/datafusion/pull/22204) (Dandandan)
+- fix(sql): reject duplicate unqualified names in CTAS, CREATE VIEW, and 
SELECT INTO [#22290](https://github.com/apache/datafusion/pull/22290) 
(kumarUjjawal)
+- fix: reduce memory allocation overhead during partial aggregation ear… 
[#22165](https://github.com/apache/datafusion/pull/22165) (ariel-miculas)
+- fix: Fix bug with structurally equal correlated subqueries 
[#22313](https://github.com/apache/datafusion/pull/22313) (neilconway)
+- fix: return error instead of capacity overflow panic in generate_series 
[#22323](https://github.com/apache/datafusion/pull/22323) (sweb)
+- fix: simplifier on leaf nodes returns null 
[#22368](https://github.com/apache/datafusion/pull/22368) (timsaucer)
+
+**Documentation updates:**
+
+- Update DataFusion meetups page on docs 
[#20629](https://github.com/apache/datafusion/pull/20629) (alamb)
+- docs: Update `datafusion-cli` doc for `top-memory-consumers` config 
[#20390](https://github.com/apache/datafusion/pull/20390) (erenavsarogullari)
+- [main] Update version to 52.2.0 
[#20573](https://github.com/apache/datafusion/pull/20573) (alamb)
+- Update releases links with releases in 2025-2026 
[#20630](https://github.com/apache/datafusion/pull/20630) (alamb)
+- doc: Add more context to `Precision` 
[#20713](https://github.com/apache/datafusion/pull/20713) (jonathanc-n)
+- Minor: Add comment explaining rationale to avoid dependencies on functions 
[#20667](https://github.com/apache/datafusion/pull/20667) (alamb)
+- Hash join buffering on probe side 
[#19761](https://github.com/apache/datafusion/pull/19761) (gabotechs)
+- Copy limits before repartitions 
[#20736](https://github.com/apache/datafusion/pull/20736) (avantgardnerio)
+- Allow SQL `TypePlanner` to plan SQL types as extension types 
[#20676](https://github.com/apache/datafusion/pull/20676) (paleolimbot)
+- doc: Add documentation for pushing limit into plan 
[#20271](https://github.com/apache/datafusion/pull/20271) (2010YOUY01)
+- [main] Bump to 52.3.0 and changelog (#20790) 
[#20849](https://github.com/apache/datafusion/pull/20849) (alamb)
+- refactor: Improve `SessionContext::parse_duration` API 
[#20816](https://github.com/apache/datafusion/pull/20816) (erenavsarogullari)
+- docs: in release email, be specific about changelog location 
[#20975](https://github.com/apache/datafusion/pull/20975) (kevinjqliu)
+- optimizer: Add configuration to disable join reordering 
[#21072](https://github.com/apache/datafusion/pull/21072) (2010YOUY01)
+- docs: Improve getting started and testing guides for humans and agents 
[#20970](https://github.com/apache/datafusion/pull/20970) (alamb)
+- docs: clarify NULL handling for array_remove functions (#21014) 
[#21018](https://github.com/apache/datafusion/pull/21018) (Xavrir)
+- chore: Add `substr()` benchmarks, refactor 
[#20803](https://github.com/apache/datafusion/pull/20803) (neilconway)
+- docs: Document the TableProvider evaluation order for filter, limit and 
projection [#21091](https://github.com/apache/datafusion/pull/21091) (alamb)
+- Add `arrow_try_cast` UDF 
[#21130](https://github.com/apache/datafusion/pull/21130) (adriangb)
+- docs: Add explicit fmt and clippy commands to AGENTS.md 
[#21171](https://github.com/apache/datafusion/pull/21171) (zhuqi-lucas)
+- docs: add KalamDB to known users 
[#21181](https://github.com/apache/datafusion/pull/21181) (jamals86)
+- [main] Update version to 53.0.0 and bring changelog 
[#21189](https://github.com/apache/datafusion/pull/21189) (alamb)
+- Migrate Avro reader to arrow-avro and remove internal conversion code 
[#17861](https://github.com/apache/datafusion/pull/17861) (getChan)
+- Add metric category filtering for EXPLAIN ANALYZE 
[#21160](https://github.com/apache/datafusion/pull/21160) (adriangb)
+- docs: Add `RESET` Command Documentation 
[#21245](https://github.com/apache/datafusion/pull/21245) (erenavsarogullari)
+- chore: fix upgrade guide link for object_store release notes 
[#21283](https://github.com/apache/datafusion/pull/21283) (haohuaijin)
+- doc: Add documentation explaining the behavior of `null` values ​​in struct 
comparisons [#21226](https://github.com/apache/datafusion/pull/21226) 
(xiedeyantu)
+- [docs] Add weekly sync details to contributor communication guide 
[#21298](https://github.com/apache/datafusion/pull/21298) (alamb)
+- [docs] add sql example to timestamp/datetime docs for time zone 
[#21082](https://github.com/apache/datafusion/pull/21082) (buraksenn)
+- Update documentation with recent blogs and events 
[#21462](https://github.com/apache/datafusion/pull/21462) (alamb)
+- Update 53 upgrade guide to note release, other changes 
[#21449](https://github.com/apache/datafusion/pull/21449) (alamb)
+- docs: Incorporate writing table provider blog post to user documentation 
[#21398](https://github.com/apache/datafusion/pull/21398) (buraksenn)
+- remove as_any from TableProvider, SchemaProvider, CatalogProvider, and 
CatalogProviderList [#21346](https://github.com/apache/datafusion/pull/21346) 
(timsaucer)
+- port 52.5.0 changelog to main 
[#21553](https://github.com/apache/datafusion/pull/21553) (alamb)
+- Add `arrow_field(expr)` scalar UDF 
[#21389](https://github.com/apache/datafusion/pull/21389) (adriangb)
+- Reorder `cargo publish` commands by dependency 
[#21552](https://github.com/apache/datafusion/pull/21552) (alamb)
+- chore(deps): update jinja2 requirement from <4,>=3.1 to >=3.1.6,<4 in /docs 
[#21606](https://github.com/apache/datafusion/pull/21606) (dependabot[bot])
+- chore(deps): update pydata-sphinx-theme requirement from <1,>=0.16 to 
>=0.17.0,<1 in /docs [#21609](https://github.com/apache/datafusion/pull/21609) 
(dependabot[bot])
+- Add release management page to the documentation 
[#21001](https://github.com/apache/datafusion/pull/21001) (alamb)
+- Perf: Window topn optimisation 
[#21479](https://github.com/apache/datafusion/pull/21479) (SubhamSinghal)
+- chore(deps): update setuptools requirement from <83,>=82 to >=82.0.1,<83 in 
/docs [#21607](https://github.com/apache/datafusion/pull/21607) 
(dependabot[bot])
+- chore(deps): update maturin requirement from <2,>=1.11 to >=1.13.1,<2 in 
/docs [#21608](https://github.com/apache/datafusion/pull/21608) 
(dependabot[bot])
+- docs: Update `map_extract` examples 
[#21360](https://github.com/apache/datafusion/pull/21360) (nuno-faria)
+- docs: add April 2026 readings and meetup links 
[#21644](https://github.com/apache/datafusion/pull/21644) (alamb)
+- chore: backport version from `branch-53`, update some dependencies 
[#21708](https://github.com/apache/datafusion/pull/21708) (comphead)
+- chore: add `array_remove_*` NULL handling changes to `Upgrade Guide` 
[#21769](https://github.com/apache/datafusion/pull/21769) (comphead)
+- docs: fix some comments on query_planning example 
[#21783](https://github.com/apache/datafusion/pull/21783) (jotare)
+- docs: fix typos in documentation 
[#21875](https://github.com/apache/datafusion/pull/21875) (jx2lee)
+- docs: refresh CLI usage output in the user guide 
[#21874](https://github.com/apache/datafusion/pull/21874) (jx2lee)
+- docs: clarify ExecutionProps and TaskContext docs 
[#21872](https://github.com/apache/datafusion/pull/21872) (alamb)
+- chore: add internal markdown link check 
[#21831](https://github.com/apache/datafusion/pull/21831) (Geethapranay1)
+- Update documentation for PhysicalExpr::evaluate_bounds 
[#21879](https://github.com/apache/datafusion/pull/21879) (alamb)
+- chore(deps): update pydata-sphinx-theme requirement from <1,>=0.17.0 to 
>=0.17.1,<1 in /docs [#21889](https://github.com/apache/datafusion/pull/21889) 
(dependabot[bot])
+- docs(optimizer): add generated optimizer rules reference 
[#21824](https://github.com/apache/datafusion/pull/21824) (kumarUjjawal)
+- add any_match higher-order function 
[#21903](https://github.com/apache/datafusion/pull/21903) (LiaCastaneda)
+- docs: update commiter list 
[#21978](https://github.com/apache/datafusion/pull/21978) (coderfender)
+- chore: update PMC/committer list 
[#21989](https://github.com/apache/datafusion/pull/21989) (comphead)
+- Support '0' value for parse_capacity_limit() 
[#22014](https://github.com/apache/datafusion/pull/22014) (mkleen)
+- docs: add llms.txt ecosystem hub at site root 
[#22003](https://github.com/apache/datafusion/pull/22003) (timsaucer)
+- chore(deps): update maturin requirement from <2,>=1.13.1 to >=1.13.3,<2 in 
/docs [#22127](https://github.com/apache/datafusion/pull/22127) 
(dependabot[bot])
+- fix `date_part('isodow')` 
[#22116](https://github.com/apache/datafusion/pull/22116) (sdf-jkl)
+- docs: updating arrays_zip output field naming 
[#22133](https://github.com/apache/datafusion/pull/22133) (timsaucer)
+- Add rand() alias for random() 
[#22147](https://github.com/apache/datafusion/pull/22147) (xiedeyantu)
+- chore: Update Rust toolchain to 1.95 
[#22177](https://github.com/apache/datafusion/pull/22177) (Dandandan)
+- docs: add DataFusion Java to subproject listings 
[#22149](https://github.com/apache/datafusion/pull/22149) (andygrove)
+- Fix: deadlink in "Concepts, Reading, Events" page to DataFusion blog 
[#22325](https://github.com/apache/datafusion/pull/22325) (JarroVGIT)
+- fixing factorial negative values 
[#22278](https://github.com/apache/datafusion/pull/22278) (raushanprabhakar1)
+- docs(optimizer): Fix PushDownFilter doc typos. 
[#22320](https://github.com/apache/datafusion/pull/22320) (JSOD11)
+- minor: add higher-order function methods to SessionContext 
[#21950](https://github.com/apache/datafusion/pull/21950) (gstvg)
+- Add higher-order functions changes to upgrade guide 
[#22107](https://github.com/apache/datafusion/pull/22107) (gstvg)
+- chore(deps): update myst-parser requirement from <6,>=5 to >=5.1.0,<6 in 
/docs [#22378](https://github.com/apache/datafusion/pull/22378) 
(dependabot[bot])
+- feat(functions-nested): add array_filter higher-order function 
[#21895](https://github.com/apache/datafusion/pull/21895) (ologlogn)
+- Add SQL as a category in breaking API change policy 
[#22179](https://github.com/apache/datafusion/pull/22179) (alamb)
+
+**Other:**
+
+- Add metrics for parquet sink 
[#20307](https://github.com/apache/datafusion/pull/20307) (xudong963)
+- Extend dynamic filter to joins that preserve probe side ON 
[#20447](https://github.com/apache/datafusion/pull/20447) (helgikrs)
+- Improve sqllogicteset speed by creating only a single large file rather than 
2 [#20586](https://github.com/apache/datafusion/pull/20586) (Tim-53)
+- cli: Fix datafusion-cli hint edge cases 
[#20609](https://github.com/apache/datafusion/pull/20609) (comphead)
+- Speedup sqllogictests by running long running tests first 
[#20576](https://github.com/apache/datafusion/pull/20576) (alamb)
+- Fix custom metric display 
[#20643](https://github.com/apache/datafusion/pull/20643) (gabotechs)
+- refactor: Set expected runtime config in error message when the used disk 
space during the spilling process has exceeded the allocation limit 
[#20375](https://github.com/apache/datafusion/pull/20375) (erenavsarogullari)
+- more families for the CI 
[#20663](https://github.com/apache/datafusion/pull/20663) (blaginin)
+- CI: Add CodeQL workflow for GitHub Actions security scanning 
[#20636](https://github.com/apache/datafusion/pull/20636) (kevinjqliu)
+- chore(deps): bump astral-sh/setup-uv from 7.3.0 to 7.3.1 
[#20660](https://github.com/apache/datafusion/pull/20660) (dependabot[bot])
+- chore(deps): bump taiki-e/install-action from 2.68.8 to 2.68.16 
[#20661](https://github.com/apache/datafusion/pull/20661) (dependabot[bot])
+- Improve formatting of datatypes 
[#20605](https://github.com/apache/datafusion/pull/20605) (emilk)
+- Add explain plans for ClickBench queries 
[#20666](https://github.com/apache/datafusion/pull/20666) (alamb)
+- Add files_processed and files_scanned metrics to FileStreamMetrics 
[#20592](https://github.com/apache/datafusion/pull/20592) (adriangb)
+- Speedup push_down_filter_regression.slt by using uncompressed parquet 
[#20652](https://github.com/apache/datafusion/pull/20652) (alamb)
+- Implement cardinality_effect for window execs and UnionExec 
[#20321](https://github.com/apache/datafusion/pull/20321) (getChan)
+- ci: Harden labeler workflow, remove unnecessary checkout from 
pull_request_target job 
[#20637](https://github.com/apache/datafusion/pull/20637) (kevinjqliu)
+- Add tests for sqllogictest prioritization 
[#20656](https://github.com/apache/datafusion/pull/20656) (alamb)
+- correct parquet leaf index mapping when schema contains struct cols 
[#20698](https://github.com/apache/datafusion/pull/20698) (friendlymatthew)
+- Reattach parquet metadata cache after deserializing in datafusion-proto 
[#20574](https://github.com/apache/datafusion/pull/20574) (nathanb9)
+- Wire up with_new_state with DataSource 
[#20718](https://github.com/apache/datafusion/pull/20718) (gabotechs)
+- chore: Enable `assigning_clones` clippy lint 
[#20670](https://github.com/apache/datafusion/pull/20670) (neilconway)
+- FFI_TableOptions are using default values only 
[#20721](https://github.com/apache/datafusion/pull/20721) (timsaucer)
+- Improve documentation for `AggregateUdfImpl::simplify` and 
`WindowUDFImpl::simplify` 
[#20712](https://github.com/apache/datafusion/pull/20712) (alamb)
+- Fix test that's broken on Windows due to naive path handling 
[#20692](https://github.com/apache/datafusion/pull/20692) (Rafferty97)
+- Fix DELETE/UPDATE filter extraction when predicates are pushed down into 
TableScan [#19884](https://github.com/apache/datafusion/pull/19884) (kosiew)
+- use linker optimization for extended sqllogictests 
[#20740](https://github.com/apache/datafusion/pull/20740) (blaginin)
+- Push even local limits past windows 
[#20752](https://github.com/apache/datafusion/pull/20752) (avantgardnerio)
+- Add case-heavy LEFT JOIN benchmark and debug timing/logging for 
PushDownFilter hot paths 
[#20664](https://github.com/apache/datafusion/pull/20664) (kosiew)
+- Fix repartition from dropping data when spilling 
[#20672](https://github.com/apache/datafusion/pull/20672) (xanderbailey)
+- test: Add `datafusion-cli` `fair` and `unbounded` memory-pool test coverage 
[#20565](https://github.com/apache/datafusion/pull/20565) (erenavsarogullari)
+- ser/de fetch in FilterExec 
[#20738](https://github.com/apache/datafusion/pull/20738) (haohuaijin)
+- Add tests for simplifying multiple aggregate expressions 
[#20723](https://github.com/apache/datafusion/pull/20723) (alamb)
+- Update reverse UDF to emit utf8view when input is utf8view 
[#20604](https://github.com/apache/datafusion/pull/20604) (Omega359)
+- Make lower and upper emit Utf8View for Utf8View input 
[#20616](https://github.com/apache/datafusion/pull/20616) (kumarUjjawal)
+- Fix FilterExec converting Absent column stats to Exact(NULL) 
[#20391](https://github.com/apache/datafusion/pull/20391) (fwojciec)
+- Clean up date_part preimage implementation 
[#20350](https://github.com/apache/datafusion/pull/20350) (sdf-jkl)
+- Make Physical CastExpr Field-aware and unify cast semantics across physical 
expressions [#20814](https://github.com/apache/datafusion/pull/20814) (kosiew)
+- Pass ConfigOptions to scalar UDFs via FFI 
[#20454](https://github.com/apache/datafusion/pull/20454) (timsaucer)
+- [datafusion-cli] Replace mutex with AtomicU64 for stream duration tracking 
in instrumentedObjectStore 
[#20802](https://github.com/apache/datafusion/pull/20802) (buraksenn)
+- Make translate emit Utf8View for Utf8View input 
[#20624](https://github.com/apache/datafusion/pull/20624) (shivaaang)
+- Allow filters on struct fields to be pushed down into Parquet scan 
[#20822](https://github.com/apache/datafusion/pull/20822) (friendlymatthew)
+- Used constant with mapping instead of write! to display scalar value bytes 
[#20719](https://github.com/apache/datafusion/pull/20719) (buraksenn)
+- chore(deps): bump taiki-e/install-action from 2.68.16 to 2.68.25 
[#20842](https://github.com/apache/datafusion/pull/20842) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.32.5 to 4.32.6 
[#20843](https://github.com/apache/datafusion/pull/20843) (dependabot[bot])
+- chore: Ignore RUSTSEC-2024-0421 
[#20850](https://github.com/apache/datafusion/pull/20850) (comphead)
+- chore(deps): bump quinn-proto from 0.11.13 to 0.11.14 
[#20859](https://github.com/apache/datafusion/pull/20859) (dependabot[bot])
+- Use `ParquetPushDecoder` in `ParquetOpener` 
[#20839](https://github.com/apache/datafusion/pull/20839) (Dandandan)
+- [Minor] Remove redundant ProjectionExec nodes in sort-based plans 
[#20780](https://github.com/apache/datafusion/pull/20780) (Dandandan)
+- impl ser/de for preserve_order in RepartitionExec 
[#20798](https://github.com/apache/datafusion/pull/20798) (haohuaijin)
+- Fix FileStream scanning_total to include sync next-file open time 
[#20627](https://github.com/apache/datafusion/pull/20627) (RatulDawar)
+- chore: Ignore RUSTSEC-2024-0014 
[#20862](https://github.com/apache/datafusion/pull/20862) (comphead)
+- chore: clean up dependencies 
[#20861](https://github.com/apache/datafusion/pull/20861) (comphead)
+- Add benchmark for struct field filter pushdown in Parquet 
[#20829](https://github.com/apache/datafusion/pull/20829) (friendlymatthew)
+- Add Null Type Coercions for Placeholders 
[#20543](https://github.com/apache/datafusion/pull/20543) (cetra3)
+- Minor: Deprecate unused `PartitionedFileStream` 
[#20869](https://github.com/apache/datafusion/pull/20869) (alamb)
+- chore(deps): bump substrait from 0.62 to 0.63.0 
[#20876](https://github.com/apache/datafusion/pull/20876) (benbellick)
+- [Minor] propagate distinct_count as inexact through unions 
[#20846](https://github.com/apache/datafusion/pull/20846) (buraksenn)
+- try to remove redundant alias in expression rewriter and select 
[#20867](https://github.com/apache/datafusion/pull/20867) (buraksenn)
+- Fix duplicate group keys after hash aggregation spill (#20724) 
[#20858](https://github.com/apache/datafusion/pull/20858) (gboucher90)
+- Include .proto files in datafusion-proto-common distribution 
[#20921](https://github.com/apache/datafusion/pull/20921) (haohuaijin)
+- Check sqllogictests for any dangling config settings (#17914) 
[#20838](https://github.com/apache/datafusion/pull/20838) (cj-zhukov)
+- Add support for ListView in unnest 
[#20760](https://github.com/apache/datafusion/pull/20760) (brancz)
+- Project only accessed struct leaves in Parquet row filter pushdown 
[#20854](https://github.com/apache/datafusion/pull/20854) (friendlymatthew)
+- minor: Move PreparedAccessPlan to same module as ParquetAccessPlan 
[#20929](https://github.com/apache/datafusion/pull/20929) (alamb)
+- chore(deps): bump pyjwt from 2.11.0 to 2.12.0 
[#20938](https://github.com/apache/datafusion/pull/20938) (dependabot[bot])
+- Rewrite `SUM(expr + scalar)` --> `SUM(expr) + scalar*COUNT(expr)` 
[#20749](https://github.com/apache/datafusion/pull/20749) (alamb)
+- Add AGENTS.md / CLAUDE.md 
[#20939](https://github.com/apache/datafusion/pull/20939) (Dandandan)
+- Support `columns_sorted` in row_filters 
[#20497](https://github.com/apache/datafusion/pull/20497) (sdf-jkl)
+- Add --simulate-latency / SIMULATE_LATENCY option to dfbench / ./bench.sh 
[#20954](https://github.com/apache/datafusion/pull/20954) (Dandandan)
+- Minor: make signatures of `SessionContext::register_*` methods consistent 
[#20873](https://github.com/apache/datafusion/pull/20873) (alexandreyc)
+- test: add reproducer for Dictionary InList pushdown type mismatch (#2… 
[#20960](https://github.com/apache/datafusion/pull/20960) (erratic-pattern)
+- Extract shared `ParquetReadPlan` for leaf column resolution 
[#20913](https://github.com/apache/datafusion/pull/20913) (friendlymatthew)
+- chore: Remove usage of `paste` crate 
[#20946](https://github.com/apache/datafusion/pull/20946) (coderfender)
+- Use exact distinct_count from statistics if exists for `COUNT(DISTINCT 
column))` calculations 
[#20845](https://github.com/apache/datafusion/pull/20845) (buraksenn)
+- thin-ci [#20972](https://github.com/apache/datafusion/pull/20972) (blaginin)
+- chore(deps): bump lz4_flex from 0.12.0 to 0.12.1 
[#20973](https://github.com/apache/datafusion/pull/20973) (dependabot[bot])
+- Fix decimal log precision for non-power values 
[#20433](https://github.com/apache/datafusion/pull/20433) (kumarUjjawal)
+- chore(deps): bump Swatinem/rust-cache from 2.8.2 to 2.9.1 
[#20979](https://github.com/apache/datafusion/pull/20979) (dependabot[bot])
+- chore(deps): bump taiki-e/install-action from 2.68.25 to 2.68.34 
[#20983](https://github.com/apache/datafusion/pull/20983) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.32.6 to 4.33.0 
[#20982](https://github.com/apache/datafusion/pull/20982) (dependabot[bot])
+- chore(deps): bump astral-sh/setup-uv from 7.3.1 to 7.6.0 
[#20981](https://github.com/apache/datafusion/pull/20981) (dependabot[bot])
+- chore(deps): bump runs-on/action from 2.0.3 to 2.1.0 
[#20980](https://github.com/apache/datafusion/pull/20980) (dependabot[bot])
+- [Minor] Update Cargo.lock, Fix Tokio minor breaking change 
[#20978](https://github.com/apache/datafusion/pull/20978) (Dandandan)
+- chore(deps): Revert "chore(deps): bump runs-on/action from 2.0.3 to 2.1.0 
(#20980)" [#21002](https://github.com/apache/datafusion/pull/21002) (mbutrovich)
+- bug: fix `array_remove_*` with NULLS 
[#21013](https://github.com/apache/datafusion/pull/21013) (comphead)
+- Simplify logic for memory pressure partial emit from ordered group by 
[#20559](https://github.com/apache/datafusion/pull/20559) (alamb)
+- Fix memory reservation starvation in sort-merge 
[#20642](https://github.com/apache/datafusion/pull/20642) (xudong963)
+- infra: automatically delete branch on pr merge 
[#21033](https://github.com/apache/datafusion/pull/21033) (kevinjqliu)
+- Add support for nested lists in substrait consumer 
[#20953](https://github.com/apache/datafusion/pull/20953) (alexanderbianchi)
+- build: update Rust toolchain version to 1.94.0 
[#21045](https://github.com/apache/datafusion/pull/21045) (dariocurr)
+- chore: Cleanup fully-qualified ScalarFunctionArgs 
[#20804](https://github.com/apache/datafusion/pull/20804) (neilconway)
+- Support '>', '<', '>=', '<=', '<>' in any operator 
[#20830](https://github.com/apache/datafusion/pull/20830) (buraksenn)
+- keep fetch when merge FilterExec in FilterPushdown 
[#21070](https://github.com/apache/datafusion/pull/21070) (haohuaijin)
+- Fix Subtraction overflow in `max_distinct_count` when hash join has a 
pushed-down limit [#20799](https://github.com/apache/datafusion/pull/20799) 
(KARTIK64-rgb)
+- Restore Sort unparser guard for correct ORDER BY placement 
[#20658](https://github.com/apache/datafusion/pull/20658) (krinart)
+- chore(deps): bump rustls-webpki from 0.103.9 to 0.103.10 
[#21089](https://github.com/apache/datafusion/pull/21089) (dependabot[bot])
+- chore: Remove duplicate imports in test code 
[#21061](https://github.com/apache/datafusion/pull/21061) (neilconway)
+- test: update sqllogictest expectation for negation type coercion 
[#21102](https://github.com/apache/datafusion/pull/21102) (myandpr)
+- fix[physical-expr-adapter]: support casting structs nested inside complex 
types [#20907](https://github.com/apache/datafusion/pull/20907) (asubiotto)
+- Fix index panic in unparser with mismatched stacked projections 
[#21094](https://github.com/apache/datafusion/pull/21094) (friendlymatthew)
+- chore: Fix all sqllogictest dangling configs 
[#21108](https://github.com/apache/datafusion/pull/21108) (2010YOUY01)
+- Preserve SPM when parent maintains input order 
[#21097](https://github.com/apache/datafusion/pull/21097) (rkrishn7)
+- chore: update testcontainers and astral-tokio-tar for cargo audit 
[#21114](https://github.com/apache/datafusion/pull/21114) (getChan)
+- Spark soundex function implementation 
[#20725](https://github.com/apache/datafusion/pull/20725) (kazantsev-maksim)
+- chore(deps): bump env_logger from 0.11.9 to 0.11.10 in the 
all-other-cargo-deps group across 1 directory 
[#21136](https://github.com/apache/datafusion/pull/21136) (dependabot[bot])
+- Fix `elapsed_compute` metric for Parquet DataSourceExec 
[#20767](https://github.com/apache/datafusion/pull/20767) (ernestprovo23)
+- chore(deps): bump taiki-e/install-action from 2.68.34 to 2.69.7 
[#21133](https://github.com/apache/datafusion/pull/21133) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.33.0 to 4.34.1 
[#21132](https://github.com/apache/datafusion/pull/21132) (dependabot[bot])
+- Update to arrow/parquet `58.1.0` 
[#21044](https://github.com/apache/datafusion/pull/21044) (alamb)
+- Simplify sqllogictest timing summary to boolean flag and remove top-N modes 
[#20598](https://github.com/apache/datafusion/pull/20598) (kosiew)
+- Substrait join consumer should not merge nullability of join keys 
[#21121](https://github.com/apache/datafusion/pull/21121) (hareshkh)
+- Enable debug assertions in CI. 
[#20832](https://github.com/apache/datafusion/pull/20832) (stuhood)
+- chore(deps): bump requests from 2.32.5 to 2.33.0 
[#21153](https://github.com/apache/datafusion/pull/21153) (dependabot[bot])
+- feat : support spark compatible int to timestamp cast 
[#20555](https://github.com/apache/datafusion/pull/20555) (coderfender)
+- [Minor]: support window functions in order by expressions 
[#20963](https://github.com/apache/datafusion/pull/20963) (buraksenn)
+- chore: Optimize schema rewriter usages 
[#21158](https://github.com/apache/datafusion/pull/21158) (comphead)
+- Add benchmarks for Parquet struct leaf-level projection pruning 
[#21180](https://github.com/apache/datafusion/pull/21180) (friendlymatthew)
+- chore: re-export projection in datafusion::datasource 
[#21185](https://github.com/apache/datafusion/pull/21185) (rluvaton)
+- test: add SMJ benchmarks from #21184 
[#21188](https://github.com/apache/datafusion/pull/21188) (mbutrovich)
+- Fix sort merge interleave overflow 
[#20922](https://github.com/apache/datafusion/pull/20922) (xudong963)
+- Reduce parquet struct projection benchmark data volume 
[#21187](https://github.com/apache/datafusion/pull/21187) (friendlymatthew)
+- Minor: compute qualify window expressions only when QUALIFY clause is 
present [#21173](https://github.com/apache/datafusion/pull/21173) (buraksenn)
+- fix[physical-plan/aggregates]: fix grouping by Ree<Dict> 
[#21195](https://github.com/apache/datafusion/pull/21195) (asubiotto)
+- [main] add 52.4.0 changelog 
[#21053](https://github.com/apache/datafusion/pull/21053) (alamb)
+- Use leaf level `ProjectionMask` for parquet projections 
[#20925](https://github.com/apache/datafusion/pull/20925) (friendlymatthew)
+- test: scale remaining sort-merge join (SMJ) benchmark queries 
[#21200](https://github.com/apache/datafusion/pull/21200) (mbutrovich)
+- Fix: MemTable LIMIT ignored with reordered projections 
[#21177](https://github.com/apache/datafusion/pull/21177) (RamakrishnaChilaka)
+- No cargo test for `sort_mem_validation` 
[#21222](https://github.com/apache/datafusion/pull/21222) (blaginin)
+- Fix/support duplicate column names #6543 
[#21126](https://github.com/apache/datafusion/pull/21126) (RafaelHerrero)
+- Use spot instances for extended tests 
[#21221](https://github.com/apache/datafusion/pull/21221) (blaginin)
+- chore: Cleanup Cargo profiles 
[#21214](https://github.com/apache/datafusion/pull/21214) (neilconway)
+- chore(benchmark): Fix/update compile profile benchmark 
[#21223](https://github.com/apache/datafusion/pull/21223) (2010YOUY01)
+- Basic Extension Type Registry Implementation 
[#20312](https://github.com/apache/datafusion/pull/20312) (tschwarzinger)
+- chore(deps): bump serialize-javascript, terser-webpack-plugin and 
copy-webpack-plugin in /datafusion/wasmtest/datafusion-wasm-app 
[#21235](https://github.com/apache/datafusion/pull/21235) (dependabot[bot])
+- chore(deps-dev): bump node-forge from 1.3.2 to 1.4.0 in 
/datafusion/wasmtest/datafusion-wasm-app 
[#21225](https://github.com/apache/datafusion/pull/21225) (dependabot[bot])
+- chore(deps): bump cryptography from 46.0.5 to 46.0.6 
[#21224](https://github.com/apache/datafusion/pull/21224) (dependabot[bot])
+- Fix FilterExec tree render missing fetch display 
[#21230](https://github.com/apache/datafusion/pull/21230) (zhuqi-lucas)
+- ci: use ubuntu-slim runner for lightweight CI jobs 
[#21252](https://github.com/apache/datafusion/pull/21252) (CuteChuanChuan)
+- kill `check_run_id` and `pr_number` from extended tests 
[#21228](https://github.com/apache/datafusion/pull/21228) (blaginin)
+- [Minor] add non topk benchmarks for utf8/utf8view string aggregates 
[#21073](https://github.com/apache/datafusion/pull/21073) (buraksenn)
+- ci: Add datafusion/sql as a folder to trigger extended tests for on changes 
[#21255](https://github.com/apache/datafusion/pull/21255) (mbutrovich)
+- Misc minor optimization in the Physical Optimizer 
[#21216](https://github.com/apache/datafusion/pull/21216) (AdamGS)
+- chore: Replace `TryInto` impl by `TryFrom` 
[#21203](https://github.com/apache/datafusion/pull/21203) (Tpt)
+- Refactor parquet datasource into an explicit state machine 
[#21190](https://github.com/apache/datafusion/pull/21190) (alamb)
+- Add flat vs. struct field projection benchmarks 
[#21257](https://github.com/apache/datafusion/pull/21257) (friendlymatthew)
+- Refactor: expose predicate constant inference from physical-expr 
[#21167](https://github.com/apache/datafusion/pull/21167) (xudong963)
+- Add end-to-end Parquet tests for List and LargeList struct schema evolution 
[#20840](https://github.com/apache/datafusion/pull/20840) (kosiew)
+- chore(deps): bump taiki-e/install-action from 2.69.7 to 2.70.3 
[#21271](https://github.com/apache/datafusion/pull/21271) (dependabot[bot])
+- chore(deps): bump rustyline from 17.0.2 to 18.0.0 
[#21276](https://github.com/apache/datafusion/pull/21276) (dependabot[bot])
+- chore(deps): bump ctor from 0.6.3 to 0.8.0 
[#21282](https://github.com/apache/datafusion/pull/21282) (dependabot[bot])
+- chore(deps): bump snmalloc-rs from 0.3.8 to 0.7.4 
[#21280](https://github.com/apache/datafusion/pull/21280) (dependabot[bot])
+- chore(deps): bump sha1 from 0.10.6 to 0.11.0 
[#21277](https://github.com/apache/datafusion/pull/21277) (dependabot[bot])
+- chore(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 
[#21272](https://github.com/apache/datafusion/pull/21272) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.34.1 to 4.35.1 
[#21273](https://github.com/apache/datafusion/pull/21273) (dependabot[bot])
+- chore(deps): bump pygments from 2.19.2 to 2.20.0 
[#21256](https://github.com/apache/datafusion/pull/21256) (dependabot[bot])
+- feat(memory_pool): add `TrackConsumersPool::metrics()` to expose cons… 
[#21147](https://github.com/apache/datafusion/pull/21147) (bert-beyondloops)
+- Update repeat UDF to emit utf8view when input is utf8view 
[#20645](https://github.com/apache/datafusion/pull/20645) (Omega359)
+- chore(deps): bump the all-other-cargo-deps group across 1 directory with 7 
updates [#21274](https://github.com/apache/datafusion/pull/21274) 
(dependabot[bot])
+- chore(deps): bump runs-on/action from 2.0.3 to 2.1.0 
[#21134](https://github.com/apache/datafusion/pull/21134) (dependabot[bot])
+- chore: add `.claude/settings.local.json` to `.gitignore` 
[#21312](https://github.com/apache/datafusion/pull/21312) (jonahgao)
+- Add `FileStreamBuilder` for creating FileStreams 
[#21261](https://github.com/apache/datafusion/pull/21261) (alamb)
+- refactor: Split Parquet BloomFilter CPU and IO into separate states 
[#21285](https://github.com/apache/datafusion/pull/21285) (alamb)
+- chore(deps): bump object_store from 0.13.1 to 0.13.2 
[#21275](https://github.com/apache/datafusion/pull/21275) (dependabot[bot])
+- Merge queue: make dev checks required + add .asf.yaml validation 
[#21239](https://github.com/apache/datafusion/pull/21239) (blaginin)
+- Adds INList and Between expr to skip outer join 
[#21303](https://github.com/apache/datafusion/pull/21303) (SubhamSinghal)
+- No merge group for rust.yml yet 
[#21343](https://github.com/apache/datafusion/pull/21343) (blaginin)
+- Disallow order by within ordered-set aggregate functions argument lists 
[#20421](https://github.com/apache/datafusion/pull/20421) (cj-zhukov)
+- chore: Fix clippy and CI 
[#21287](https://github.com/apache/datafusion/pull/21287) (comphead)
+- Split FileStreamMetrics into its own module 
[#21340](https://github.com/apache/datafusion/pull/21340) (alamb)
+- Skip probe-side consumption when hash join build side is empty 
[#21068](https://github.com/apache/datafusion/pull/21068) (kosiew)
+- Use ParquetMetaDataPushDecoder instead of ParquetMetaDataReader 
[#21357](https://github.com/apache/datafusion/pull/21357) (Dandandan)
+- Eliminate redundant `ProjectionExec`s 
[#21333](https://github.com/apache/datafusion/pull/21333) (Dandandan)
+- Minor: add tests for regexp_replace and capture groups 
[#21413](https://github.com/apache/datafusion/pull/21413) (alamb)
+- bench: add benchmarks for first_value, last_value 
[#21409](https://github.com/apache/datafusion/pull/21409) (theirix)
+- chore(deps): bump the all-other-cargo-deps group with 4 updates 
[#21435](https://github.com/apache/datafusion/pull/21435) (dependabot[bot])
+- chore(deps): bump taiki-e/install-action from 2.70.3 to 2.74.0 
[#21434](https://github.com/apache/datafusion/pull/21434) (dependabot[bot])
+- test: Add `datafusion.format.*` configs test coverage 
[#21355](https://github.com/apache/datafusion/pull/21355) (erenavsarogullari)
+- Estimate aggregate output rows using existing NDV statistics 
[#20926](https://github.com/apache/datafusion/pull/20926) (buraksenn)
+- Follow-up: remove interleave panic recovery after Arrow 58.1.0 
[#21436](https://github.com/apache/datafusion/pull/21436) (xudong963)
+- writing table to parquet followed by read and schema check 
[#21444](https://github.com/apache/datafusion/pull/21444) (Rich-T-kid)
+- chore(deps): bump cryptography from 46.0.6 to 46.0.7 
[#21489](https://github.com/apache/datafusion/pull/21489) (dependabot[bot])
+- Preserve logical cast field semantics during physical lowering with 
field-aware CastExpr [#20836](https://github.com/apache/datafusion/pull/20836) 
(kosiew)
+- Add more regexp_replace test coverage 
[#21485](https://github.com/apache/datafusion/pull/21485) (alamb)
+- Introduce Morselizer API, rewrite `ParquetOpener` to `ParquetMorselizer` 
[#21327](https://github.com/apache/datafusion/pull/21327) (alamb)
+- chore: create benches small ints for count_distinct 
[#21521](https://github.com/apache/datafusion/pull/21521) (coderfender)
+- refactor: extract sort pushdown logic from FileScanConfig into separate 
module [#21457](https://github.com/apache/datafusion/pull/21457) (zhuqi-lucas)
+- chore: Add array_slice tests for overlapping nulls across inputs 
[#21540](https://github.com/apache/datafusion/pull/21540) (neilconway)
+- Migrate PhysicalExprAdapter to unified CastExpr and remove CastColumnExpr 
usage [#21493](https://github.com/apache/datafusion/pull/21493) (kosiew)
+- Unify cast handling by removing `CastColumnExpr` branches in pruning and 
ordering equivalence [#21545](https://github.com/apache/datafusion/pull/21545) 
(kosiew)
+- [datafusion-spark] Add Spark-compatible ceil function 
[#20593](https://github.com/apache/datafusion/pull/20593) (shivbhatia10)
+- sql: render PostgreSQL array literals as ARRAY[...] in unparser 
[#21513](https://github.com/apache/datafusion/pull/21513) (xiedeyantu)
+- physical_optimizer: preserve_file_partitions when num file groups < 
target_partitions [#21533](https://github.com/apache/datafusion/pull/21533) 
(jayshrivastava)
+- EliminateOuterJoin with Like, IsTrue, IsFalse, IsNotUnknown 
[#21549](https://github.com/apache/datafusion/pull/21549) (SubhamSinghal)
+- chore(deps): bump hashbrown from 0.16.1 to 0.17.0 
[#21611](https://github.com/apache/datafusion/pull/21611) (dependabot[bot])
+- chore(deps): bump ctor from 0.8.0 to 0.10.0 
[#21612](https://github.com/apache/datafusion/pull/21612) (dependabot[bot])
+- Rewrite FileStream in terms of Morsel API 
[#21342](https://github.com/apache/datafusion/pull/21342) (alamb)
+- Consolidate special case `regexp_match` logic 
[#21486](https://github.com/apache/datafusion/pull/21486) (alamb)
+- chore(deps): bump taiki-e/install-action from 2.74.0 to 2.75.10 
[#21605](https://github.com/apache/datafusion/pull/21605) (dependabot[bot])
+- chore(deps): bump the all-other-cargo-deps group across 1 directory with 3 
updates [#21610](https://github.com/apache/datafusion/pull/21610) 
(dependabot[bot])
+- bench: first_last remove noisy benchmarks, add update_batch 
[#21487](https://github.com/apache/datafusion/pull/21487) (theirix)
+- chore: Fix `typo` problems 
[#21495](https://github.com/apache/datafusion/pull/21495) (erenavsarogullari)
+- chore(deps-dev): bump follow-redirects from 1.15.6 to 1.16.0 in 
/datafusion/wasmtest/datafusion-wasm-app 
[#21601](https://github.com/apache/datafusion/pull/21601) (dependabot[bot])
+- bench: Scale sort benchmarks to 1M rows to exercise merge path 
[#21630](https://github.com/apache/datafusion/pull/21630) (mbutrovich)
+- Port filter_pushdown.rs async tests to sqllogictest 
[#21620](https://github.com/apache/datafusion/pull/21620) (adriangb)
+- chore: fix cargo audit and dependencies check on main 
[#21655](https://github.com/apache/datafusion/pull/21655) (alamb)
+- Spark make_valid_utf8 function implementation 
[#20633](https://github.com/apache/datafusion/pull/20633) (kazantsev-maksim)
+- chore(deps): update tokio from 1.51 to 1.52 
[#21670](https://github.com/apache/datafusion/pull/21670) (ahmed-mez)
+- Use ListArray nullability instead of offsets for `array_element`, 
`array_any_value`. [#21672](https://github.com/apache/datafusion/pull/21672) 
(tabac)
+- chore: breakdown `array.slt` into smaller files 
[#21658](https://github.com/apache/datafusion/pull/21658) (comphead)
+- chore: Add more tests with `GROUP BY` to test spark `collect_set` 
[#21659](https://github.com/apache/datafusion/pull/21659) (comphead)
+- Add strategy-focused InList benchmarks 
[#21648](https://github.com/apache/datafusion/pull/21648) (geoffreyclaude)
+- Fix massive spill files for StringView/BinaryView columns II 
[#21633](https://github.com/apache/datafusion/pull/21633) (adriangb)
+- chore: Backport 53.1.0 changelog 
[#21686](https://github.com/apache/datafusion/pull/21686) (comphead)
+- refactor: Introduce SpillState enum for memory-limited NLJ execution 
[#21636](https://github.com/apache/datafusion/pull/21636) (viirya)
+- Support Date32/Date64 in unwrap_cast optimization 
[#21665](https://github.com/apache/datafusion/pull/21665) (Dandandan)
+- feat[expr-common]: add REE arithmetic coercion for numeric and decimal 
[#21179](https://github.com/apache/datafusion/pull/21179) (asubiotto)
+- Make `test_display_pg_json` pass regardless of build setup and dependencies 
[#21502](https://github.com/apache/datafusion/pull/21502) (AdamGS)
+- refactor: Share left-side spill file across partitions on OOM fallback 
[#21699](https://github.com/apache/datafusion/pull/21699) (viirya)
+- Spark is_valid_utf8 function implementation 
[#21627](https://github.com/apache/datafusion/pull/21627) (kazantsev-maksim)
+- chore: use bench array helpers from Arrow bench_util 
[#21544](https://github.com/apache/datafusion/pull/21544) (theirix)
+- chore: add count distinct group benchmarks 
[#21575](https://github.com/apache/datafusion/pull/21575) (coderfender)
+- minor: More comments to `read_spill_as_stream` 
[#21713](https://github.com/apache/datafusion/pull/21713) (2010YOUY01)
+- Dynamic work scheduling in FileStream 
[#21351](https://github.com/apache/datafusion/pull/21351) (alamb)
+- chore: Update Release instructions 
[#21705](https://github.com/apache/datafusion/pull/21705) (comphead)
+- test: add tests for spill file sizes to verify View GC 
[#21750](https://github.com/apache/datafusion/pull/21750) (RatulDawar)
+- chore(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 
[#21759](https://github.com/apache/datafusion/pull/21759) (dependabot[bot])
+- chore(deps): bump aws-config from 1.8.15 to 1.8.16 in the 
all-other-cargo-deps group 
[#21760](https://github.com/apache/datafusion/pull/21760) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 
[#21758](https://github.com/apache/datafusion/pull/21758) (dependabot[bot])
+- chore(deps): bump taiki-e/install-action from 2.75.10 to 2.75.18 
[#21757](https://github.com/apache/datafusion/pull/21757) (dependabot[bot])
+- Snowflake Unparser dialect and UNNEST support 
[#21593](https://github.com/apache/datafusion/pull/21593) (yonatan-sevenai)
+- Skip files outside partition structure in hive-partitioned listing tables 
[#21756](https://github.com/apache/datafusion/pull/21756) (zhuqi-lucas)
+- Handle canceled partitioned hash join dynamic filters lazily 
[#21666](https://github.com/apache/datafusion/pull/21666) (adriangb)
+- Improve ergonomics for ExecutionPlanMetricsSet and MetricsSet 
[#21762](https://github.com/apache/datafusion/pull/21762) (gabotechs)
+- [Minor]: unify ANY/ALL planning and align ANY NULL semantics with PG 
[#21743](https://github.com/apache/datafusion/pull/21743) (buraksenn)
+- [Minor]: fix security audit because of rustls-webpki version 
[#21785](https://github.com/apache/datafusion/pull/21785) (buraksenn)
+- refactor: Simplify NLJ re-scans with `ReplayableStreamSource` 
[#21742](https://github.com/apache/datafusion/pull/21742) (2010YOUY01)
+- ci: permit stale workflow to delete cache 
[#21772](https://github.com/apache/datafusion/pull/21772) (Jefffrey)
+- Unparser drops ORDER BY alias when flattening Projection through 
SubqueryAlias [#21491](https://github.com/apache/datafusion/pull/21491) 
(yonatan-sevenai)
+- chore: re-enable `add_months` overflow test 
[#21774](https://github.com/apache/datafusion/pull/21774) (Jefffrey)
+- chore: add aggregation test for listview types 
[#21776](https://github.com/apache/datafusion/pull/21776) (Jefffrey)
+- chore: re-enable `array_union` nested null array edge case test 
[#21773](https://github.com/apache/datafusion/pull/21773) (Jefffrey)
+- Fix: allow coercion from Binary and LargeBinary into BinaryView 
[#21800](https://github.com/apache/datafusion/pull/21800) (bert-beyondloops)
+- chore: leave specialised bench helpers 
[#21810](https://github.com/apache/datafusion/pull/21810) (theirix)
+- Add quote style and trimming to csv writier 
[#20813](https://github.com/apache/datafusion/pull/20813) (xanderbailey)
+- chore(deps): bump picomatch from 2.3.1 to 2.3.2 in 
/datafusion/wasmtest/datafusion-wasm-app 
[#21164](https://github.com/apache/datafusion/pull/21164) (dependabot[bot])
+- perf(substr_index): speed up scalar and Utf8View 
[#21754](https://github.com/apache/datafusion/pull/21754) (kumarUjjawal)
+- Fix PushdownSort dropping LIMIT when eliminating SortExec 
[#21744](https://github.com/apache/datafusion/pull/21744) (sgrebnov)
+- chore: use Arc::unwrap_or_clone in more places 
[#21823](https://github.com/apache/datafusion/pull/21823) (Dandandan)
+- build: explicitly set `publish = false` for internal crates 
[#21869](https://github.com/apache/datafusion/pull/21869) (rluvaton)
+- chore: bump API limit for stale workflow 
[#21867](https://github.com/apache/datafusion/pull/21867) (Jefffrey)
+- chore: bump `sha` & `md-5` to `0.11.0` 
[#21840](https://github.com/apache/datafusion/pull/21840) (Jefffrey)
+- feat : ABI upgrade from abi_stabby to stabby since abi_stable is no longer 
maintained [#21030](https://github.com/apache/datafusion/pull/21030) 
(coderfender)
+- Add protobuf serialization/deserialization support for `EmptyTable` scans 
[#20844](https://github.com/apache/datafusion/pull/20844) (OlegWock)
+- Support Dictionary Arrays in MIN/MAX Aggregates 
[#21315](https://github.com/apache/datafusion/pull/21315) (kosiew)
+- Fix some GH action permission issues identified by CodeQL 
[#21838](https://github.com/apache/datafusion/pull/21838) (Jefffrey)
+- Add support for nested types to nullif. 
[#21764](https://github.com/apache/datafusion/pull/21764) (tabac)
+- chore(deps): bump taiki-e/install-action from 2.75.18 to 2.75.23 
[#21887](https://github.com/apache/datafusion/pull/21887) (dependabot[bot])
+- chore(deps): bump libloading from 0.8.9 to 0.9.0 
[#21890](https://github.com/apache/datafusion/pull/21890) (dependabot[bot])
+- refactor `array_remove` benchmarks & add nested benches 
[#21834](https://github.com/apache/datafusion/pull/21834) (Jefffrey)
+- Update `astral-tokio-tar` to appease cargo_audit 
[#21902](https://github.com/apache/datafusion/pull/21902) (alamb)
+- Remove unnecessary Mutex in SharedMemoryReservation 
[#21899](https://github.com/apache/datafusion/pull/21899) (gabotechs)
+- ci: add breaking change detector 
[#21499](https://github.com/apache/datafusion/pull/21499) (rluvaton)
+- Fix GH action permissions in `rust.yml` and `docs.yaml` workflows 
[#21884](https://github.com/apache/datafusion/pull/21884) (Jefffrey)
+- chore: fix `iff` typos 
[#21904](https://github.com/apache/datafusion/pull/21904) (comphead)
+- Deduplicate InList primitive static filters 
[#21932](https://github.com/apache/datafusion/pull/21932) (geoffreyclaude)
+- Fix nesting of permissions block in docs workflow 
[#21930](https://github.com/apache/datafusion/pull/21930) (Jefffrey)
+- dependencies check are now required to merge ci 
[#21940](https://github.com/apache/datafusion/pull/21940) (blaginin)
+- build: allow posting comments on PRs made from forks and fix missing 
protobuf [#21913](https://github.com/apache/datafusion/pull/21913) (rluvaton)
+- Use shared statistics merge for union stats 
[#21430](https://github.com/apache/datafusion/pull/21430) (kumarUjjawal)
+- Add ClickBench URL pushdown benchmark 
[#21945](https://github.com/apache/datafusion/pull/21945) (xudong963)
+- test(sqllogictest): stabilize parquet output_rows_skew with WITH ORDER 
[#21898](https://github.com/apache/datafusion/pull/21898) (RatulDawar)
+- Skip unnecessary plan rebuild in adjust_input_keys_ordering for non-join 
plans [#21947](https://github.com/apache/datafusion/pull/21947) (zhuqi-lucas)
+- Adding Use of arrow's has_true() / has_false() 
[#21806](https://github.com/apache/datafusion/pull/21806) (raushanprabhakar1)
+- feat[expr-common]: support regex and LIKE coercion on REE and Dict value 
types that require an extra coercion step 
[#21924](https://github.com/apache/datafusion/pull/21924) (asubiotto)
+- feat[expr-common]: support REE in coalesce 
[#21919](https://github.com/apache/datafusion/pull/21919) (asubiotto)
+- proto: serialize and dedupe dynamic filters v2 
[#21807](https://github.com/apache/datafusion/pull/21807) (jayshrivastava)
+- chore: fix `datafusion-spark` substring 
[#21963](https://github.com/apache/datafusion/pull/21963) (comphead)
+- Respect DATA_DIR location for sql benchmarks 
[#21961](https://github.com/apache/datafusion/pull/21961) (Omega359)
+- ci: use base repository branch for breaking change detector 
[#22006](https://github.com/apache/datafusion/pull/22006) (rluvaton)
+- bench: add to_char_array_date32 
[#22007](https://github.com/apache/datafusion/pull/22007) (huymq1710)
+- ci: add `auto detected api change` label on breaking change detecting in the 
CI [#21953](https://github.com/apache/datafusion/pull/21953) (rluvaton)
+- Fix fully matched row groups with null counts 
[#21907](https://github.com/apache/datafusion/pull/21907) (xudong963)
+- functions: Add dict support for get field 
[#21115](https://github.com/apache/datafusion/pull/21115) (brancz)
+- fix(physical-plan): set column byte_size to 0 in FilterExec zero-row 
interval stats [#21999](https://github.com/apache/datafusion/pull/21999) 
(buraksenn)
+- Explicitly declare spill codec dependency in `physical-plan` 
[#21917](https://github.com/apache/datafusion/pull/21917) (kosiew)
+- Add benchmark_runner for sql_benchmarks with help and list commands 
[#22001](https://github.com/apache/datafusion/pull/22001) (Omega359)
+- chore: `datafusion-spark` substring to support Binary types 
[#21979](https://github.com/apache/datafusion/pull/21979) (comphead)
+- Add reusable plan-time schema alignment helper and apply to 
RecursiveQueryExec [#21912](https://github.com/apache/datafusion/pull/21912) 
(kosiew)
+- Upgrade to arrow-rs / parquet / avro 58.2.0 
[#21812](https://github.com/apache/datafusion/pull/21812) (alamb)
+- kill `linux-build-lib` from extended tests 
[#21227](https://github.com/apache/datafusion/pull/21227) (blaginin)
+- chore: Rust checks are required + merge queue 
[#21941](https://github.com/apache/datafusion/pull/21941) (blaginin)
+- Add wide-schema benchmark suite for measuring per-file metadata overhead 
[#21970](https://github.com/apache/datafusion/pull/21970) (adriangb)
+- chore(deps): bump ctor from 0.10.1 to 1.0.1 
[#22023](https://github.com/apache/datafusion/pull/22023) (dependabot[bot])
+- ci: narrow macOS test scope to datafusion-ffi, run benchmarks on amd64 
[#22048](https://github.com/apache/datafusion/pull/22048) (blaginin)
+- chore(deps): bump github/codeql-action from 4.35.2 to 4.35.3 
[#22019](https://github.com/apache/datafusion/pull/22019) (dependabot[bot])
+- chore(deps): bump taiki-e/install-action from 2.74.0 to 2.77.0 
[#22018](https://github.com/apache/datafusion/pull/22018) (dependabot[bot])
+- chore(deps): bump the all-other-cargo-deps group across 1 directory with 2 
updates [#22022](https://github.com/apache/datafusion/pull/22022) 
(dependabot[bot])
+- Allow benchmark allocator features together 
[#21905](https://github.com/apache/datafusion/pull/21905) (xudong963)
+- Rich t kid/introduce dict benchmarks 
[#21860](https://github.com/apache/datafusion/pull/21860) (Rich-T-kid)
+- Add benchmarks for dictionary path of new_group_values 
[#22004](https://github.com/apache/datafusion/pull/22004) (Rich-T-kid)
+- Support `IS (NOT) DISTINCT FROM` in Unparser 
[#22054](https://github.com/apache/datafusion/pull/22054) (cetra3)
+- chore: Fix broken build with `--benches --all-features` 
[#22081](https://github.com/apache/datafusion/pull/22081) (neilconway)
+- Chore: Fix TPC-DS schema/query (fixes q30 run) 
[#22086](https://github.com/apache/datafusion/pull/22086) (Dandandan)
+- chore(deps): (fix CI) bump taiki-e/install-action from 2.77.0 to 2.77.6 
[#22110](https://github.com/apache/datafusion/pull/22110) (gstvg)
+- Prevent empty grouping sets from being eliminated on empty input 
[#22039](https://github.com/apache/datafusion/pull/22039) (xiedeyantu)
+- Consolidate and document SQL AST shims 
[#22094](https://github.com/apache/datafusion/pull/22094) (alamb)
+- Support distinct-from predicates in Parquet pruning 
[#22084](https://github.com/apache/datafusion/pull/22084) (Dandandan)
+- minor: Track Parquet rows and pages matched when the page index is skipped 
[#22085](https://github.com/apache/datafusion/pull/22085) (nuno-faria)
+- Update to `arrow` / `parquet` from 58.2.0 --> 58.3.0 
[#22066](https://github.com/apache/datafusion/pull/22066) (alamb)
+- Add sqllogictest coverage for unused UNNEST pruning edge cases 
[#22074](https://github.com/apache/datafusion/pull/22074) (kosiew)
+- chore(deps): bump actions/labeler from 6.0.1 to 6.1.0 
[#22124](https://github.com/apache/datafusion/pull/22124) (dependabot[bot])
+- chore(deps): bump the all-other-cargo-deps group with 5 updates 
[#22128](https://github.com/apache/datafusion/pull/22128) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 
[#22122](https://github.com/apache/datafusion/pull/22122) (dependabot[bot])
+- mem: Cleanup resources of done streams immediately 
[#22064](https://github.com/apache/datafusion/pull/22064) (EmilyMatt)
+- Propagate field metadata through NTH_VALUE, FIRST_VALUE, and LAST_VALUE 
window functions [#22112](https://github.com/apache/datafusion/pull/22112) 
(paleolimbot)
+- Minor: Disallow async function in lambdas 
[#22097](https://github.com/apache/datafusion/pull/22097) (gstvg)
+- chore(deps): bump runs-on/action from 2.1.0 to 2.1.2 
[#22123](https://github.com/apache/datafusion/pull/22123) (dependabot[bot])
+- bench: remove stale `array_expression` benchmark 
[#22143](https://github.com/apache/datafusion/pull/22143) (kumarUjjawal)
+- Add resolve_lambda_variables helper to Expr and LogicalPlan 
[#22101](https://github.com/apache/datafusion/pull/22101) (gstvg)
+- Fix panic on deep compound identifiers 
[#22186](https://github.com/apache/datafusion/pull/22186) (Dandandan)
+- Refactor scalar min/max dispatch into function-based helpers 
[#22062](https://github.com/apache/datafusion/pull/22062) (kosiew)
+- fix missing window expressions when unparsing plans without outer 
projections [#21801](https://github.com/apache/datafusion/pull/21801) (nathanb9)
+- chore(deps): bump urllib3 from 2.6.3 to 2.7.0 
[#22109](https://github.com/apache/datafusion/pull/22109) (dependabot[bot])
+- Call take arrays once per repartitioned input batch 
[#22159](https://github.com/apache/datafusion/pull/22159) (gene-bordegaray)
+- Refactor parquet row filter setup 
[#22191](https://github.com/apache/datafusion/pull/22191) (xudong963)
+- fix date_bin overflows subtracting extreme nanosecond timestamp origin 
[#22251](https://github.com/apache/datafusion/pull/22251) (xiedeyantu)
+- fix date_trunc overflows converting extreme non-ns timestamps to nanoseconds 
[#22262](https://github.com/apache/datafusion/pull/22262) (xiedeyantu)
+- Extract parquet push decoder module 
[#22289](https://github.com/apache/datafusion/pull/22289) (xudong963)
+- Track spill read-back memory in SMJ 
[#22103](https://github.com/apache/datafusion/pull/22103) (SubhamSinghal)
+- refactor(parquet-datasource): split opener.rs into an opener/ module 
[#22346](https://github.com/apache/datafusion/pull/22346) (adriangb)
+- refactor(parquet-datasource): split sink and schema_coercion out of 
file_format.rs [#22347](https://github.com/apache/datafusion/pull/22347) 
(adriangb)
+- fixing negative power to zero 
[#22277](https://github.com/apache/datafusion/pull/22277) (raushanprabhakar1)
+- refactor(parquet-datasource): split bloom_filter out of row_group_filter.rs 
[#22348](https://github.com/apache/datafusion/pull/22348) (adriangb)
+- Revert "[Minor]: unify ANY/ALL planning and align ANY NULL semantics with PG 
(#21743)" [#22345](https://github.com/apache/datafusion/pull/22345) (alamb)
+- Fix pruning predicate for `LIKE` expressions with escape sequences 
[#22375](https://github.com/apache/datafusion/pull/22375) (masonh22)
+- Fix: lead/lag extreme offsets handling 
[#22243](https://github.com/apache/datafusion/pull/22243) (Dandandan)
+- chore(deps): fix CI, bump astral-tokio-tar 
[#22382](https://github.com/apache/datafusion/pull/22382) (gstvg)
+- chore: Replace stray old-style string builder in `substr` 
[#22183](https://github.com/apache/datafusion/pull/22183) (neilconway)
+- chore(deps): bump taiki-e/install-action from 2.77.6 to 2.79.2 
[#22377](https://github.com/apache/datafusion/pull/22377) (dependabot[bot])
+- chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 
[#22376](https://github.com/apache/datafusion/pull/22376) (dependabot[bot])
+- chore(deps-dev): bump webpack-dev-server from 5.2.1 to 5.2.4 in 
/datafusion/wasmtest/datafusion-wasm-app 
[#22349](https://github.com/apache/datafusion/pull/22349) (dependabot[bot])
+- chore(deps): bump idna from 3.11 to 3.15 
[#22381](https://github.com/apache/datafusion/pull/22381) (dependabot[bot])
+- Refactor Spark `format_string` numeric `%c` conversion dispatch 
[#22166](https://github.com/apache/datafusion/pull/22166) (kosiew)
+- chore(deps): bump sysinfo from 0.38.4 to 0.39.2 
[#22380](https://github.com/apache/datafusion/pull/22380) (dependabot[bot])
+- fix regexp_count should count empty-pattern matches 
[#22311](https://github.com/apache/datafusion/pull/22311) (xiedeyantu)
+- Actually preserve predicate execution order in PushDownFilter 
[#21643](https://github.com/apache/datafusion/pull/21643) (joroKr21)
+- chore(deps): bump qs and body-parser in 
/datafusion/wasmtest/datafusion-wasm-app 
[#22321](https://github.com/apache/datafusion/pull/22321) (dependabot[bot])
+
+## Credits
+
+Thank you to everyone who contributed to this release. Here is a breakdown of 
commits (PRs merged) per contributor.
+
+```
+    70 Neil Conway
+    68 dependabot[bot]
+    51 Andrew Lamb
+    26 Burak Şen
+    25 Oleks V
+    21 Daniël Heres
+    20 Adrian Garcia Badaracco
+    18 Kumar Ujjawal
+    16 kosiew
+    15 Matt Butrovich
+    15 Tim Saucer
+    14 Qi Zhu
+    14 Zhen Chen
+    13 Dmitrii Blaginin
+    13 Jeffrey Vo
+    13 Yongting You
+    13 xudong.w
+    12 Huaijin
+    11 Bhargava Vadlamani
+    10 Eren Avsarogullari
+    10 Matthew Kim
+     9 gstvg
+     8 Raz Luvaton
+     8 Subham Singhal
+     8 theirix
+     6 Adam Gutglick
+     6 Gabriel
+     6 Jonathan Chen
+     5 Alessandro Solimando
+     5 Alfonso Subiotto Marqués
+     5 Bruce Ritchie
+     5 Liang-Chi Hsieh
+     5 Nuno Faria
+     5 Sergei Grebnov
+     4 Andy Grove
+     4 Ariel Miculas-Trif
+     4 Jayant Shrivastava
+     4 Kevin Liu
+     4 lyne
+     3 Brent Gardner
+     3 David López
+     3 Dewey Dunnington
+     3 Geoffrey Claude
+     3 Harrison Crosse
+     3 Huy Mac
+     3 Kazantsev Maksim
+     3 Konstantin Tarasov
+     3 Lía Adriana
+     3 Namgung Chan
+     3 Peter L
+     3 RIchard Baah
+     3 Ratul Dawar
+     3 Raushan Prabhakar
+     3 Xander
+     3 Yonatan Striem Amit
+     3 Yu-Chuan Hung
+     3 crm26
+     2 Acfboy
+     2 Adam Curtis
+     2 Albert Skalt
+     2 Anastasios Bakogiannis
+     2 Bert Vermeiren
+     2 Frederic Branczyk
+     2 Geethapranay1
+     2 Jonah Gao
+     2 Liam Feehery
+     2 Marko Grujic
+     2 Michael Kleen
+     2 Peter Nguyen
+     2 Rafael Herrero
+     2 Rohan Krishnaswamy
+     2 Samyak Sarnayak
+     2 Sergey Zhukov
+     2 Shiv Bhatia
+     2 Tobias Schwarzinger
+     2 hsiang-c
+     2 jj.lee
+     2 linfeng
+     2 yaommen
+     1 Adam Reeve
+     1 Ahmed Mezghani
+     1 Alex Zhang
+     1 Alexander Alexandrov
+     1 Alexander Rafferty
+     1 Alexandre Crayssac
+     1 Andrey Koshchiy
+     1 Asish Kumar
+     1 Ben Bellick
+     1 Bruno Volpato
+     1 Daniel Tu
+     1 Druva
+     1 EeshanBembi
+     1 Emil Ernerfeldt
+     1 Emily Matheys
+     1 Ernest Provo
+     1 Filip Petkovski
+     1 Filip Wojciechowski
+     1 Florian Müller
+     1 Fred Thomas
+     1 Gene Bordegaray
+     1 Georgi Krastev
+     1 Guillaume Boucher
+     1 Haresh Khanna
+     1 Helgi Kristvin Sigurbjarnarson
+     1 Heran Lin
+     1 Jamal Saad
+     1 Jarro van Ginkel
+     1 Jax Liu
+     1 Joan Antoni RE
+     1 Justin O'Dwyer
+     1 Kartik Gupta
+     1 Krishna Sudarshan J
+     1 Kristin Cowalcijk
+     1 Krisztián Szűcs
+     1 Lavkesh Lahngir
+     1 Martin Hilton
+     1 Mason
+     1 Nathan
+     1 Oleh
+     1 Ramakrishna Chilaka
+     1 Rizky Mirzaviandy Priambodo
+     1 RyanStewart
+     1 Shivaang
+     1 Soham Bhattacharjee
+     1 Stu Hood
+     1 Thomas Tanon
+     1 Tim-53
+     1 UBarney
+     1 Viktor Yershov
+     1 Vinay Mehta
+     1 Zhang Xiaofeng
+     1 aditya singh rathore
+     1 alexanderbianchi
+     1 blaginin
+     1 dario curreri
+     1 dd-david-levin
+     1 gabriel
+     1 nathan
+     1 niebayes
+```
+
+Thank you also to everyone who contributed in other ways such as filing 
issues, reviewing PRs, and providing feedback on this release.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to