dev/changelog/53.0.0.md
This release consists of 475 commits from 114 contributors. See credits at the end of this changelog for more information.
See the upgrade guide for information on how to upgrade from previous versions.
Breaking changes:
ScalarValue::RunEndEncoded variant #19895 (Jefffrey)ExecutionPlans less costly) #19893 (askalt)simplify_const_expr #20234 (AdamGS)PlanProperties, add fast-path for with_new_children #19792 (askalt)JsonAccess as a binary operator, add Operator::Colon #20717 (Samyak2)Performance related:
HashTableLookupExpr::evaluate #19602 (UBarney)split_part #19570 (andygrove)Nullstate / accumulators #19625 (Dandandan)NthValue when ignore_nulls is true #19496 (mzabaluev)concat/concat_ws scalar path by pre-allocating memory #19547 (lyne7-sc)spark hex function #19738 (lyne7-sc)spark_hex dictionary path by avoiding dictionary expansion #19832 (lyne7-sc)array_remove, array_remove_n and array_remove_all functions #19996 (lyne7-sc)array_repeat function #20049 (lyne7-sc)PhysicalExprSimplifier #20111 (AdamGS)CASE WHEN x THEN y ELSE NULL expressions #20097 (pepijnve)array_union/array_intersect with batched row conversion #20243 (lyne7-sc)array_distinct with batched row conversion #20364 (lyne7-sc)array_has() for scalar needle #20374 (neilconway)regexp_like and rejects g inside combined flags like ig #20354 (kumarUjjawal)initcap() #20352 (neilconway)to_array_of_size #20459 (neilconway)array_has_any() with scalar arg #20385 (neilconway)array_position for scalar needle #20532 (neilconway)array_agg() using GroupsAccumulator #20504 (neilconway)array_to_string(), support more types #20553 (neilconway)Implemented enhancements:
datafusion-cli #19388 (jizezhang)SELECT DISTINCT id FROM t ORDER BY id LIMIT n query use GroupedTopKAggregateStream #19653 (haohuaijin)date_diff function #19845 (cht42)ProjectionExec #19404 (discord9)base64 and unbase64 functions #19968 (cht42)DataSourceExec #19977 (nuno-faria)SessionStateBuilderSpark to datafusion-spark #19865 (cht42)from/to_utc_timestamp functions #19880 (cht42)StringView for SparkConcat #19984 (aryan-212)left for Utf8 and LargeUtf8 #19980 (theirix)UnionExec nodes #20145 (haohuaijin)string_to_map function #20120 (unknowntpo)partition_stats() for EmptyExec #20203 (jonathanc-n)MapArray #20179 (jonathanc-n)bitmap_bit_position function #20275 (kazantsev-maksim)json_tuple function #20412 (CuteChuanChuan)bitmap_bucket_number function #20288 (kazantsev-maksim)arrays_zip function #20440 (comphead)bin function #20479 (kazantsev-maksim)TableScan #20548 (linhr)Fixed bugs:
ListFilesEntry #19804 (lonless9)extract(epoch) #19807 (lemorage)array_sort #19948 (Jefffrey)generate_series return an empty set with invalid ranges #19999 (nuno-faria)calculate_binary_math #19861 (Jefffrey)serialize_to_file test cross platform #20147 (nuno-faria)dict_id in physical plan proto #20063 (kumarUjjawal)LIKE operations for nested types. #20212 (jonathanc-n)cardinality() of an empty array should be zero #20533 (neilconway)array_to_string with columnar third arg #20536 (neilconway)shuffle function #20484 (erenavsarogullari)Documentation updates:
write_batch_size #19979 (nuno-faria)linux-build-lib and linux-test (2X faster CI) #20107 (blaginin)FileFormat::projection / FileFormat::filter and FileScanConfig::Statistics #20188 (alamb)FileSource::table_schema and FileSource::projection #20242 (alamb)array_repeat , shuffle and slice test coverage #20420 (erenavsarogullari)object_store 0.13.0 #19728 (alamb)Other:
rust_decimal, ignore RUSTSEC-2026-0001 to get clean CI #19657 (alamb)substring_index via single-byte fast path and direct indexing #19590 (lyne7-sc)Signature::coercible for isnan/iszero #19604 (kumarUjjawal)rust_decimal, remove ignore of RUSTSEC-2026-0001 #19666 (alamb)ParquetOpener::open() #19677 (2010YOUY01)expr = L1 AND expr != L2 to expr = L1 when L1 != L2 #19731 (simonvandel)required_columns from BTreeSet to Vec in struct PushdownChecker #19678 (kumarUjjawal)list_files_cache table function #19703 (alamb)reset_plan_states , plan re-use benchmark #19806 (askalt)date_add/date_sub/bitwise_not to remove unnecessary scalar arg check #19473 (Jefffrey)EnsureCooperative optimizer idempotent under multiple runs #19757 (danielhumanmod)array_union edge-case with nested null array #19904 (Jefffrey)unhex function #19909 (lyne7-sc)SessionState::register_catalog_list(...) #19925 (askalt)uuid into workspace dependencies #19997 (Jefffrey)hits view #19881 (kosiew)page_index_rows_pruned to verbose level in EXPLAIN ANALYZE #20026 (2010YOUY01)adapter serialization example #20035 (adriangb)52.1.0 (#19878) #20028 (alamb)clippy::allow_attributes globally across workspace #19576 (Jefffrey)sha2 implementation #19475 (Jefffrey)PhysicalExprSimplifier #20082 (AdamGS)iszero() and isnan() to accept all numeric types #20093 (kumarUjjawal)case_when DivideByZeroProtection benchmark so that "percentage of zeroes" corresponds to "number of times protection is needed" #20105 (pepijnve)FileSource::try_reverse_output to FileSource::try_pushdown_sort #20043 (kumarUjjawal)debug macro #19885 (Standing-Man)array_repeat handling of null count values #20102 (lyne7-sc)saturating_add to prevent potential overflow #20185 (dariocurr)StructArray and RunArray benchmark tests to with_hashes #20182 (notashes)nanvl & implement fast path #20205 (kumarUjjawal)SortExec removal before AggregateExec (option 2) #20247 (alamb)try_shrink not freeing back to pool #20382 (cetra3)datafusion-functions-nested #20442 (comphead)rust-toolchain.toml #20309 (dariocurr)custom_file_casts example schema nullable to allow null id values during casting #20486 (kosiew)repeat_n in a few places #20527 (neilconway)matches! on fieldless enums with == #20525 (neilconway)HashJoinExecBuilder to save state from previous fields #20276 (askalt)shrink and try_shrink #20422 (hareshkh)push_down_filter.slt into standalone sqllogictest files to reduce long-tail runtime #20566 (kosiew)sql feature truly optional (#20625) #20680 (linhr)array_has scalar path with sliced arrays (#20677) #20700 (neilconway)probe_side.len() for RightMark/Anti count(*) queries (#… #20726 (jonathanc-n)0.62.2 #20827 (milenkovicm)HashJoin panic with String dictionary keys (don't flatten keys) (#20505) #20791 (alamb)to_char to allocate less, fix NULL handling (#20635) #20885 (neilconway)mod/pmod with ANSI mode support (#20461) #20896 (davidlghellin)array_contains builtin function (#20685) #20914 (comphead)Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.
73 dependabot[bot]
37 Neil Conway
32 Kumar Ujjawal
28 Andrew Lamb
26 Adrian Garcia Badaracco
21 Jeffrey Vo
13 cht42
11 Albert Skalt
11 kosiew
10 lyne
8 Nuno Faria
8 Oleks V
7 Sergey Zhukov
7 xudong.w
6 Daniël Heres
6 Huaijin
5 Adam Gutglick
5 Gabriel
5 Jonathan Chen
4 Andy Grove
4 Dmitrii Blaginin
4 Eren Avsarogullari
4 Jack Kleeman
4 notashes
4 theirix
4 Tim Saucer
4 Yongting You
3 dario curreri
3 feniljain
3 Kazantsev Maksim
3 Kosta Tarasov
3 Liang-Chi Hsieh
3 Lía Adriana
3 Marko Milenković
3 mishop-15
3 Yu-Chuan Hung
2 Acfboy
2 Alan Tang
2 David López
2 Devanshu
2 Frederic Branczyk
2 Ganesh Patil
2 Heran Lin
2 jizezhang
2 Miao
2 Michael Kleen
2 niebayes
2 Pepijn Van Eeckhoudt
2 Peter L
2 Subham Singhal
2 Tobias Schwarzinger
2 UBarney
2 Xander
2 Yuvraj
2 Zhang Xiaofeng
1 Andrea Bozzo
1 Andrew Kane
1 Anjali Choudhary
1 Anna-Rose Lescure
1 Ariel Miculas-Trif
1 Aryan Anand
1 Aviral Garg
1 Bert Vermeiren
1 Brent Gardner
1 ChanTsune
1 comphead
1 danielhumanmod
1 Dewey Dunnington
1 discord9
1 Divyansh Pratap Singh
1 Eesh Sagar Singh
1 EeshanBembi
1 Emil Ernerfeldt
1 Emily Matheys
1 Eric Chang
1 Evangeli Silva
1 Filip Wojciechowski
1 Filippo
1 Gabriel Ferraté
1 Gene Bordegaray
1 Geoffrey Claude
1 Goksel Kabadayi
1 Guillaume Boucher
1 Haresh Khanna
1 hsiang-c
1 iamthinh
1 Josh Elkind
1 karuppuchamysuresh
1 Kristin Cowalcijk
1 Mason
1 Matt Butrovich
1 Matthew Kim
1 Mikhail Zabaluev
1 Mohit rao
1 nathan
1 Nathaniel J. Smith
1 Nick
1 Oleg V. Kozlyuk
1 Paul J. Davis
1 Pierre Lacave
1 pmallex
1 Qi Zhu
1 Raz Luvaton
1 Rosai
1 Ruihang Xia
1 Samyak Sarnayak
1 Sergio Esteves
1 Simon Vandel Sillesen
1 Siyuan Huang
1 Tim-53
1 Tushar Das
1 Vignesh
1 Xiangpeng Hao
1 XL Liang
Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.