dev/changelog/39.0.0.md
This release consists of 234 commits from 59 contributors. See credits at the end of this changelog for more information.
Breaking changes:
AggregateFunctionDefinition::Name #10441 (lewiszlw)CREATE EXTERNAL TABLE format options consistent, remove special syntax for HEADER ROW, DELIMITER and COMPRESSION #10404 (berkaysynnada)array_slice to take an optional stride parameter #10469 (jonahgao)expr_fn, Remove order args forcovar_samp and covar_pop #10492 (jayzhan211)file_type() from FileFormat #10499 (Jefffrey)state_fields and groups_accumulator_supported and introduce ReversedUDAF #10525 (jayzhan211)Expr::GetIndexedField, replace Expr::{field,index,range} with FieldAccessor, IndexAccessor, and SliceAccessor #10568 (jayzhan211)ConcreteTreeNode #10666 (peter-toth)TreeNode APIs, change ExecutionPlan::children() and PhysicalExpr::children() return references #10543 (peter-toth)Implemented enhancements:
unnest to support Struct datatype #10429 (duongcongtoai)Fixed bugs:
columnize_expr resistant to display_name collisions #10459 (jonahgao)array_slice panics #10547 (jonahgao)quote parameter to CSV writer #10671 (DDtKey)array_slice and array_element panicked on empty args #10804 (jonahgao)Documentation updates:
PushDownFilter rule #10437 (alamb)LogicalPlan::recompute_schema #10443 (alamb)LogicalPlanBuilder #10496 (AbrarNitk)Expr #10686 (alamb)Other:
Expr::unalias #10406 (alamb)exprlist_to_fields_aggregate #10408 (jonahgao)CommonSubexprEliminate rule #10396 (peter-toth)EliminateCrossJoin better #10427 (alamb)OptimizeProjections (2% faster planning) #10405 (alamb)EliminateCrossJoin(3%-5% faster planning) #10430 (alamb)simplify method to aggregate function #10354 (milenkovicm)Expr::try_as_col, deprecate Expr::try_into_col (speed up optimizer) #10448 (alamb)From<Arc<LogicalPlan>> for LogicalPlanBuilder #10466 (AbrarNitk)catalog.has_header config option #10452 (alamb)ReplaceDistinctWithAggregate #10460 (ClSlaid)EliminateCrossJoin (4% faster planning) #10431 (alamb)CREATE EXTERNAL TABLE OPTIONS: Don't require quotations for simple namespaced keys like foo.bar #10483 (ozankabak)GetFieldAccess with indexing function in SqlToRel #10375 (jayzhan211)udf.rs #10497 (jonahgao)current_time (no args) #10509 (alamb)TypeCoercion (10% faster planning) #10356 (alamb)IS_NULL to String and enhance the tests #10529 (goldmedal)IsNotFalse to String #10538 (goldmedal)Placeholder to String #10540 (reswqa)OuterReferenceColumn to String #10544 (goldmedal)PushDownFilter (4%-6% faster planning) #10444 (alamb)ScalarSubqueryToJoin #10489 (alamb)null_count on compute_record_batch_statistics to report null counts across partitions #10468 (samuelcolvin)PullUpCorrelatedExpr::new and improve documentation #10500 (alamb)PushDownLimit #10508 (alamb)ScalarVariable to String #10541 (reswqa)get_field function #10569 (lewiszlw)GroupingSet Expr --> String Support sql #10555 (xinlifoobar)ArrayFunctionRewriter name reporting #10581 (alamb)UserDefinedLogicalNode::from_template API to return Result #10575 (lewiszlw)rewrite API #10576 (lewiszlw)UNION ALL #10603 (phillipleblanc)UserDefinedLogicalNodeCore::from_template API to return Result #10597 (lewiszlw)core_integration #10588 (alamb)SingleDistinctToGroupBy #10527 (appletreeisyellow)RuntimeEnv::register_object_store, improve error messages #10617 (aditanase)Date32 parquet statistics as Date32Array rather than Int32Array #10593 (xinlifoobar)RowGroup #10641 (alamb)NULL["field"] for expr_API #10655 (alamb)FileScanConfig::new() API #10623 (alamb)GetFieldAccessSchema #10665 (jayzhan211)functions-aggregate and Introduce Numeric signature #10644 (jayzhan211)Coalesce casting logic to follows what Postgres and DuckDB do. Introduce signature that do non-comparison coercion #10268 (jayzhan211)ScalarValue #10675 (jonahgao)ParquetExec and related documentation #10647 (alamb)LogicalPlan::Unnest #10681 (akoshchiy)unnest operators #10689 (duongcongtoai)median, first_value and last_value #10696 (goldmedal)Partitioning protobuf serialization code #10708 (lewiszlw)LogicalPlan #10687 (alamb)ParquetExec::builder(), deprecate ParquetExec::new #10636 (alamb)fn octect_length() #10726 (marvinlanhenke)AggregateExpr, WindowExpr rewrite. #10742 (mustafasrepo)datafusion/functions mod files #10700 (MohamedAbdeen21)LargeUtf8 columns and Add tests for UTF8 And LargeUTF8 #10762 (Weijun-H)ScalarValue::Float16 #10763 (Lordworms)array_sort #10786 (jayzhan211)last_value coercion #10783 (appletreeisyellow)SessionState into its own module #10794 (alamb)StreamProvider for configuring StreamTable #10600 (matthewmturner)PREFER_HASH_JOIN env variable #10809 (comphead)ParquetAccessPlan, unify RowGroup selection and PagePruning selection #10738 (alamb)ScalarUDFImpl::propagate_constraints doc #10810 (lewiszlw)Interval column #10801 (marvinlanhenke)memory_limit derivation for datafusion-cli #10814 (comphead)52.0, object-store to 0.10 #10765 (waynexia)Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.
44 Andrew Lamb
18 Jay Zhan
14 张林伟
11 Andy Grove
11 Xin Li
10 Jonah Gao
8 Jax Liu
7 Mustafa Akur
7 Oleks V
7 dependabot[bot]
5 Arttu
5 Berkay Şahin
5 Marvin Lanhenke
4 Lordworms
4 Ruihang Xia
3 Bruce Ritchie
3 Devin D'Angelo
3 Duong Cong Toai
3 Eduard Karacharov
3 Junhao Liu
3 Liang-Chi Hsieh
3 Mohamed Abdeen
3 Nga Tran
3 Peter Toth
3 Phillip LeBlanc
2 Abrar Khan
2 Adam Curtis
2 Chunchun Ye
2 Jeffrey Vo
2 Michael Maletich
2 QP Hou
2 Trent Hauck
2 Weijie Guo
2 junxiangMu
2 yfu
1 Adrian Tanase
1 Alex Huang
1 Andrey Koshchiy
1 Artem Medvedev
1 ClSlaid
1 Dan Harris
1 Edmondo Porcu
1 Jeffrey Smith II
1 Kun Liu
1 Leonardo Yvens
1 Marko Milenković
1 Matthew Turner
1 Mehmet Ozan Kabak
1 Michael J Ward
1 NoeB
1 Samuel Colvin
1 Scott Anderson
1 VimT
1 Yue Yin
1 baishen
1 hsiang-c
1 nathaniel-daniel
1 shanretoo
1 tison
Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.