Apache DataFusion 50.0.0 Changelog

This release consists of 315 commits from 79 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:

  • Support multiple ordered array_agg aggregations #16625 (findepi)
  • Make AsyncScalarUDFImpl::invoke_async_with_args consistent with ScalarUDFImpl::invoke_with_args #16902 (geetanshjuneja)
  • Derive WindowUDFImpl equality, hash from Eq, Hash traits #17081 (findepi)
  • Remove redundant plan from extension's check_invariants #17199 (findepi)
  • feat: Make parquet_encryption a non-default feature #17137 (miroim)
  • chore: fix typos #17135 (waynexia)
  • Use a struct for ProjectionExpr #17398 (adriangb)
  • Use DataFusionError instead of ArrowError in FileOpenFuture #17397 (adriangb)
  • Use return_field instead of return_type for calling aggregates via FFI #17407 (timsaucer)

Performance related:

  • feat: improve LiteralGuarantee for the case like (a=1 AND b=1) OR (a=2 AND b=3) #16762 (haohuaijin)
  • optimize initcap function by avoiding memory allocation #16878 (waynexia)
  • speedup date_trunc (~7x faster) in some cases #16859 (waynexia)
  • Feature: Improve hash Expr performance #16977 (tobixdev)
  • Perf: Port arrow-rs optimization for get_buffer_memory_size and add fast path for no buffer for gc string view #17008 (zhuqi-lucas-001)
  • Simplify comparisons and binary operations involving NULL #17088 (findepi)
  • Eliminate all redundant aggregations #17139 (findepi)

Implemented enhancements:

  • feat: Allow tree explain format width to be customizable #16827 (nuno-faria)
  • feat(spark): Implement Spark string function luhn_check #16848 (Standing-Man)
  • feat(spark): implement Spark datetime function last_day #16828 (Standing-Man)
  • feat: Add ScalarValue::{new_one,new_zero,new_ten,distance} support for Decimal128 and Decimal256 #16831 (theirix)
  • feat: support distinct for window #16925 (zhuqi-lucas-001)
  • feat: add multi level merge sort that will always fit in memory #15700 (rluvaton)
  • feat: [datafusion-spark] Implement next_day function #16780 (petern48)
  • feat: Support distinct window for sum #16943 (zhuqi-lucas-001)
  • feat(spark): implement Spark math function rint #16924 (chenkovsky)
  • feat(spark): implement Spark string function like/ilike #16962 (chenkovsky)
  • feat: Cache Parquet metadata in built in parquet reader #16971 (nuno-faria)
  • feat: Add Arc<ConfigOptions> to ScalarFunctionArgs, don't copy ConfigOptions on each query #16970 (Omega359)
  • feat(spark): implement spark hash function crc32/sha1 #17032 (chenkovsky)
  • feat: Limit the memory used in the file metadata cache #17031 (nuno-faria)
  • feat: Dynamic Parquet encryption and decryption properties #16779 (adamreeve)
  • feat: Use Cached Metadata for ListingTable Statistics #17022 (shehabgamin)
  • feat(spark): implement Spark math function mod/pmod #16829 (chenkovsky)
  • feat(spark): implement Spark math function bit_get/bit_count #16942 (chenkovsky)
  • feat: add isodow (ISO day-of-week) support to date_part (Monday = 0) #17112 (ayemjay)
  • feat(spark): implement spark datetime function date_add/date_sub #17024 (chenkovsky)
  • feat: Add the ability to review the contents of the Metadata Cache #17126 (nuno-faria)
  • feat: add datafusion-physical-adapter, implement predicate adaptation missing fields of structs #16589 (adriangb)
  • feat: implement QUALIFY clause #16933 (haohuaijin)
  • feat: allow to spawn/spawn_blocking on a provided runtime in RecordBatchReceiverStreamBuilder #17239 (rluvaton)
  • feat: Support SortMergeJoin proto serde #17296 (milenkovicm)
  • feat(spark): implement Spark bitmap function bitmap_count #17179 (SparkApplicationMaster)
  • feat: Track peak value in tracked consumer #17327 (wForget)
  • feat(spark): implement Spark conditional function if #16946 (chenkovsky)
  • feat(spark): implement Spark width_bucket function #17331 (davidlghellin)
  • feat: Make Parquet EncryptionFactory async #17342 (adamreeve)
  • feat: Support FILTER clause in aggregate window functions #17378 (geoffreyclaude)
  • feat: Support binary data types for SortMergeJoin on clause #17431 (stuartcarnie)

Fixed bugs:

  • fix: The inconsistency between scalar and array on the cast decimal to timestamp #16539 (chenkovsky)
  • fix: unit test for object_storage #16824 (chenkovsky)
  • fix(docs): Update broken links to TableProvider docs #16830 (jcsherin)
  • fix: PlaceholderRowExec::partition_statistics #16851 (crepererum)
  • fix: skip predicates on struct unnest in PushDownFilter #16790 (akoshchiy)
  • fix: regex bench #16890 (chenkovsky)
  • fix: ComposedPhysicalExtensionCodec does not use the same codec as encoding when decoding #16986 (Thearas)
  • fix: Remove datafusion.execution.parquet.cache_metadata config #17062 (jonathanc-n)
  • fix: Add missing member to visitor for ConfigFileEncryptionProperties #17103 (corwinjoy)
  • fix(ci): update datafusion-physical-expr-adapter version to 49.0.1in Cargo.lock #17209 (miroim)
  • fix: respect inexact flags in row group metadata #16412 (CookiePieWw)
  • fix: deserialization error for FilterExec (predicates with inlist) #17224 (haohuaijin)
  • FFI_RecordBatchStream was causing a memory leak #17190 (timsaucer)
  • fix: Windows paths crashing core tests #17231 (nuno-faria)
  • fix: sort should always output batches with batch_size rows #17244 (rluvaton)
  • fix: align array_has null buffer for scalar #17272 (comphead)
  • fix: dataframe function count_all with alias #17282 (Loaki07)
  • fix: correct readme field in Cargo.toml #17310 (Weijun-H)
  • fix(doc): update the link of deprecation guidelines (#17328) #17329 (ivila)
  • fix: lazy case else evaluation #17311 (chenkovsky)
  • fix: set distinct_count to Absent when merging statistics #17385 (adriangb)
  • fix: Remove duplicate filter from CrossJoin unparsing #17382 (jonathanc-n)
  • fix: set IPC alignment based on schema #17363 (ding-young)
  • fix: return ALL constants in EquivalenceProperties::constants #17404 (crepererum)
  • fix: align map_keys nullability flag #17454 (comphead)

Documentation updates:

  • docs: Fix broken links #16839 (2010YOUY01)
  • Add note to upgrade guide about MSRV update #16845 (alamb)
  • [main] Update version to 49.0.0, add 49.0.0 changelog #16855 (alamb)
  • Improve async_udf example and docs #16846 (alamb)
  • Docs: Update Upgrading.md to reflect 49.0.0 is released #16853 (alamb)
  • docs: Remove references to DataFusion for Ray sub project #16966 (andygrove)
  • Add temp_directory and max_temp_directory_size runtime config variables #16934 (delamarch3)
  • Add sql_parser.default_null_ordering config option to customize the default null ordering #16963 (goldmedal)
  • Added Example for Statistical Functions in Docs #16927 (Adez017)
  • Fix window_functions docs formatting #17005 (mattmatravers)
  • docs: Fix ‘Analaysis’ typo in query optimizer docs #17015 (petern48)
  • docs: Fix random extra bullet for ‘Analytical Functions’ #17014 (petern48)
  • docs: Fix failing documentation check in CI #17026 (adamreeve)
  • Upgrade arrow/parquet to 56.0.0 #16690 (alamb)
  • fix error result in execute&pre_selection #16930 (acking-you)
  • docs: Fix failing CI #17041 (liamzwbao)
  • Docs: Add Examples to Config Options page #17039 (alamb)
  • Docs: Add Tuning Guide for small data / short queries #17040 (alamb)
  • Docs: Update the crate configuration / build settings page #17038 (alamb)
  • Support centroids config for approx_percentile_cont_with_weight #17003 (liamzwbao)
  • Add ExecutionPlan::reset_state #17028 (adriangb)
  • Docs: Add Tuning Guide for larger-than-memory queries #17069 (2010YOUY01)
  • Link UdfEq and PtrEq to help understand relationship #17082 (findepi)
  • Derive AggregateUDFImpl equality, hash from Eq, Hash traits #17130 (findepi)
  • chore: Clarify EmptyRelation description #17157 (comphead)
  • Update dev env documentation to reflect pinned rust version #17107 (Jefffrey)
  • Differentiate 0-row and 1-row EmptyRelation in EXPLAIN #17145 (findepi)
  • (Re)Support old syntax for approx_percentile_cont and approx_percentile_cont_with_weight #16999 (alamb)
  • Derive ScalarUDFImpl equality, hash from Eq, Hash traits #17164 (findepi)
  • #17128 Add support for chr(0) #17131 (pepijnve)
  • [main] Update version to 49.0.1 and add changelog (#17175) #17191 (alamb)
  • Docs: Consolidate feature proposal content into roadmap #17156 (alamb)
  • Doc: Update upgrade guide for the rewritten NLJ operator #17202 (2010YOUY01)
  • Support serializing generate_series in datafusion-proto #17200 (cetra3)
  • Fix broken links in user docs #17228 (AdamGS)
  • Format Date32 to string given timestamp specifiers #15361 (friendlymatthew)
  • Improve documentation for Signature, Volatility, and TypeSignature #17264 (alamb)
  • [main] Forward port 49.0.2 version and changelog (#17277) #17287 (alamb)
  • Document schema merging. #17249 (wiedld)
  • Support from-first SQL syntax #17295 (simonvandel)
  • Add cfg(feature = "avro") attribute to Avro example in SQL API docs #17142 (kosiew)
  • Push the limits past window functions #17347 (avantgardnerio)
  • Refactor DataSourceExec::try_swapping_with_projection to simplify and remove abstraction leakage #17395 (adriangb)
  • doc: Document caveats of swap_inputs() interface in join executors #17373 (2010YOUY01)
  • Fix syntax error in DDL documentation example #17412 (pepijnve)
  • Add MSRV change to upgrade guide #17406 (findepi)
  • Add PhysicalExpr::is_volatile_node to upgrade guide #17443 (adriangb)
  • docs: Render -- properly in profiling docs #17430 (petern48)

Other:

  • chore: use equals_datatype for BinaryExpr #16813 (comphead)
  • chore: add tests for out of bounds for NullArray #16802 (comphead)
  • Refactor binary.rs tests into modular submodules under binary/tests #16782 (kosiew)
  • cache generation of dictionary keys and null arrays for ScalarValue #16789 (adriangb)
  • refactor(examples): remove redundant call to create directory in parquet_embedded_index.rs #16825 (jcsherin)
  • Add benchmark for ByteViewGroupValueBuilder #16826 (zhuqi-lucas-001)
  • Simplify try cast expr evaluation #16834 (lewiszlw)
  • Fix flaky test case in joins.slt #16849 (findepi)
  • chore(deps): bump sysinfo from 0.35.2 to 0.36.1 #16850 (dependabot[bot])
  • chore(deps): bump aws-credential-types from 1.2.3 to 1.2.4 #16815 (dependabot[bot])
  • fix(build-wasm): put arrow-ipc/zstd dep under compression feature #16844 (chrisvander)
  • chore(deps): bump serde_json from 1.0.140 to 1.0.141 #16863 (dependabot[bot])
  • chore(deps): bump aws-config from 1.8.1 to 1.8.2 #16864 (dependabot[bot])
  • test: Fix flaky join tests #16860 (2010YOUY01)
  • chore(deps): bump rand from 0.9.1 to 0.9.2 #16882 (dependabot[bot])
  • Report error when SessionState::sql_to_expr_with_alias does not consume all input #16811 (pepijnve)
  • test: fix more flaky join tests #16880 (2010YOUY01)
  • MINOR: add unit tests for chr function #16856 (waynexia)
  • remove deprecated methods from FileScanConfig / DataSourceExec #16901 (adriangb)
  • Support utf8view for spark hex #16885 (xudong963)
  • Fixes 3 bugs during serialization and deserialization of physical plans #16858 (NGA-TRAN)
  • chore(deps): bump aws-config from 1.8.2 to 1.8.3 #16912 (dependabot[bot])
  • Derive UDF equality from PartialEq, Hash #16842 (findepi)
  • Ensure Substrait consumer can handle expressions in VirtualTable #16857 (lorenarosati)
  • Mutable Join Unwind #16883 (berkaysynnada)
  • fix(datafusion-proto): support serializing/deserilizing ArrowFormat tables #16875 (colinmarc)
  • ScalarValue Default + Min + Max #16891 (berkaysynnada)
  • minor: add is_superset() method for Interval's #16895 (berkaysynnada)
  • minor: implement with_new_expressions for AggregateFunctionExpr #16897 (berkaysynnada)
  • minor: Rename add_spm_on_top as add_merge_on_top #16913 (berkaysynnada)
  • Implement Helpers for ScopedTimerGuard and Time Structs #16911 (berkaysynnada)
  • Fix Partial Sort Get Slice Point Between Batches #16881 (berkaysynnada)
  • Fix schema_adapter integration tests not running #16835 (kosiew)
  • Update release process #16929 (xudong963)
  • Fix next_up and next_down behavior for zero float values #16745 (liamzwbao)
  • Add Fetch Property to OutputRequirementExec #16892 (berkaysynnada)
  • chore(deps): bump tokio from 1.46.1 to 1.47.0 #16952 (dependabot[bot])
  • chore(deps): bump serde_json from 1.0.140 to 1.0.141 #16951 (dependabot[bot])
  • chore: Remove attributes to allow dead_code that aren't relevant anymore #16953 (AdamGS)
  • chore(deps): bump rand from 0.9.1 to 0.9.2 #16960 (dependabot[bot])
  • chore(deps): bump ctor from 0.4.2 to 0.4.3 #16961 (dependabot[bot])
  • disallow pushdown of volatile functions #16861 (adriangb)
  • remove warning from every file open #16968 (adriangb)
  • Pin github actions to commit sha #16964 (gopidesupavan)
  • Enable physical filter pushdown for hash joins #16954 (adriangb)
  • Fix [Bug] Aggregate + TopK fails when asc = false #16972 (avantgardnerio)
  • Use tokio::task::coop::poll_proceed by default in CooperativeStream #16748 (pepijnve)
  • Add benchmark utility to profile peak memory usage #16814 (ding-young)
  • chore(deps): bump indicatif from 0.17.11 to 0.18.0 #16992 (dependabot[bot])
  • test(datafusion-cli): migrate tests to insta in print_format.rs #16993 (Thearas)
  • Chore: remove ‘spill_record_batch_by_size’ api #16958 (ding-young)
  • chore(deps): bump serde_json from 1.0.141 to 1.0.142 #17006 (dependabot[bot])
  • Add tests for yielding in SpillManager::read_spill_as_stream #16616 (ding-young)
  • #16994 Ensure CooperativeExec#maintains_input_order returns a Vec of the correct size #16995 (pepijnve)
  • test: Add logic tests for string_agg with order #17033 (nuno-faria)
  • Implement From<Option<String>>' for ScalarValue` #17043 (findepi)
  • chore(deps): bump tokio-util from 0.7.15 to 0.7.16 #17030 (dependabot[bot])
  • Add missing Substrait to DataFusion function name mappings #16950 (lorenarosati)
  • refactor: use upstream arrow-rs inline_key_fast #17044 (zhuqi-lucas-001)
  • Implement spark array function array #16936 (Standing-Man)
  • Address memory over-accounting in array_agg #16816 (gabotechs)
  • chore(deps): bump aws-credential-types from 1.2.4 to 1.2.5 #17053 (dependabot[bot])
  • Support Substrait functions and_not, xor, and between in consumer built-in expression builder #16984 (lorenarosati)
  • Derive UDWF equality from PartialEq, Hash #17057 (findepi)
  • fix return field for is_not_null expression #17056 (davidhewitt)
  • chore(deps): bump tokio from 1.47.0 to 1.47.1 #17063 (dependabot[bot])
  • Optimize char expression #16076 (ajita-asthana)
  • Fix equality of parametrizable ArrayAgg function #17065 (findepi)
  • Implement Spark url function parse_url #16937 (Standing-Man)
  • Derive UDAF equality from Eq, Hash #17067 (findepi)
  • Remove elements deprecated since v 45 #17075 (findepi)
  • Deprecate ScalarUDF::is_nullable #17074 (findepi)
  • Re-export object_store crate via DataFusion Core and Common #17070 (kosiew)
  • Fix hash/equality issues for ScalarFunctionExpr #17078 (findepi)
  • Fill missing methods in aliased UDF impls #17080 (findepi)
  • Improve Hash speed for ScalarFunctionExpr #17099 (findepi)
  • chore(deps): bump clap from 4.5.42 to 4.5.43 #17079 (dependabot[bot])
  • minor: remove unused import in docstring of datafusion_common::record_batch #17106 (Jefffrey)
  • Make macros in common::test_util hygenic and not dependent on user dependencies #17102 (AdamGS)
  • minor: remove unnecessary clippy:large_enum_variant allows #17108 (Jefffrey)
  • minor: Improve equivalence handling of joins #16893 (berkaysynnada)
  • Fix incorrect NULL IN () optimization #17092 (findepi)
  • Add prettier to the devcontainer (GitHub codespaces) #17019 (alamb)
  • Set a lower threshold for clippy to flag large error variants #17109 (Jefffrey)
  • chore(deps): bump rustyline from 16.0.0 to 17.0.0 #17116 (dependabot[bot])
  • Add dynamic filter (bounds) pushdown to HashJoinExec #16445 (adriangb)
  • Remove the “run extended tests” github PR commend action #17119 (alamb)
  • chore(deps): bump sysinfo from 0.36.1 to 0.37.0 #17124 (dependabot[bot])
  • chore(deps): bump libc from 0.2.174 to 0.2.175 #17121 (dependabot[bot])
  • ff: Preserve cached plan information when pushing projection #17129 (friendlymatthew)
  • chore: Enforce checks for RC branches #17132 (comphead)
  • chore(deps): bump actions/checkout from 4.2.2 to 5.0.0 #17149 (dependabot[bot])
  • minor: enhance comment in SortPreservingMergeStream.abort #17115 (mapleFU)
  • Update workspace to use Rust 1.89 #17100 (shruti2522)
  • chore(deps): bump on-headers and compression in /datafusion/wasmtest/datafusion-wasm-app #16812 (dependabot[bot])
  • chore(deps): bump slab from 0.4.10 to 0.4.11 #17161 (dependabot[bot])
  • refactor character_length impl by unifying null handling logic #16877 (waynexia)
  • chore(deps): bump clap from 4.5.43 to 4.5.44 #17148 (dependabot[bot])
  • Pass the input schema to stats_projection for ProjectionExpr #17123 (hareshkh)
  • Fix extended tests failure on main by updating datafusion-testing pin #17176 (alamb)
  • Minor: display filter in HashJoin's tree explain #17170 (2010YOUY01)
  • add test for multi-column topk dynamic filter pushdown #17162 (adriangb)
  • Test: Add checks to sqllogictest temporary file creations #17017 (2010YOUY01)
  • Deprecate unused ScalarUDF::display_name #17168 (findepi)
  • CI: Fix extended test failure by updating datafusion-testing submodule #17187 (2010YOUY01)
  • Normalize NUL to \0 in sqllogictests #17181 (Jefffrey)
  • Simplify GetFieldFunc's display_name, schema_name #17167 (findepi)
  • Rewrite Nested Loop Join executor for 5× speed and 1% memory usage #16996 (2010YOUY01)
  • Minor: Fix compiler warning when compiling datafusion-cli #17205 (2010YOUY01)
  • Refactor: Do not silently ignore errors in stats_projection #17154 (alamb)
  • Miscellaneous cleanups #17189 (findepi)
  • [Parquet Metadata Cache] Document the ListingTable cache #17133 (alamb)
  • Fix: Show backtrace for ArrowError #17204 (2010YOUY01)
  • minor: clean up distinct window code #17215 (zhuqi-lucas-001)
  • chore: Add drop table test on create_drop.rs #17219 (caicancai)
  • chore(deps): bump async-trait from 0.1.88 to 0.1.89 #17203 (dependabot[bot])
  • Bump MSRV to 1.86.0 #17230 (adriangb)
  • Minor: improve error message when file creation failed #17217 (2010YOUY01)
  • Fix dynamic filter pushdown in HashJoinExec #17201 (adriangb)
  • Fix Analyze Exec protobuf roundtrip #17234 (cetra3)
  • Preserve distinct and ignore_nulls in window expressions during proto serde #17235 (cetra3)
  • chore(deps): bump serde_json from 1.0.142 to 1.0.143 #17240 (dependabot[bot])
  • chore(deps): bump syn from 2.0.105 to 2.0.106 #17243 (dependabot[bot])
  • Push dynamic pushdown through cooperative and projection execs #17238 (jackkleeman)
  • Configure cli test that requires backtrace to be optional #17236 (Jefffrey)
  • chore(deps): Update sqlparser to 0.58 #16456 (Dimchikkk)
  • chore(deps): bump rustyline from 17.0.0 to 17.0.1 #17252 (dependabot[bot])
  • chore(deps): bump thiserror from 2.0.14 to 2.0.16 #17257 (dependabot[bot])
  • Fix HashJoinExec sideways information passing for partitioned queries #17197 (adriangb)
  • Fix HashJoinExec test snapshot under force_hash_collisions=true #17265 (adriangb)
  • Deprecate confusingly named UserDefinedFunctionPlanner #17247 (alamb)
  • Fix: ListingTableFactory paths with dots #17233 (BlakeOrth)
  • chore(deps): bump tempfile from 3.20.0 to 3.21.0 #17268 (dependabot[bot])
  • Fix PartialOrd for ScalarUDF #17182 (findepi)
  • chore(deps): bump url from 2.5.4 to 2.5.6 #17283 (dependabot[bot])
  • Make dynamic filter creation in HashJoinExec deterministic against partition evaluation order #17280 (adriangb)
  • Consolidate Parquet Metadata handling into its own module and struct DFParquetMetadata #17127 (alamb)
  • Only update TopK dynamic filters if the new ones are more selective #16433 (adriangb)
  • Add documentation for UNION schema handling. #17248 (wiedld)
  • Replace π-related bound constants with next_up/next_down #16823 (rthummaluru)
  • chore: add example for how to use TrackConsumersPool #17213 (wiedld)
  • minor: Remove extra line break in explain physical plan #17303 (nuno-faria)
  • Support avg(distinct) for float64 type #17255 (Jefffrey)
  • chore: check the error message log #17308 (caicancai)
  • Expand sql_planner benchmark for benchmarking physical and logical optimization. #17276 (Omega359)
  • Encapsulate early File pruning in parquet opener in its own stream #17293 (alamb)
  • Implement partition_statistics API for RepartitionExec #17061 (liamzwbao)
  • chore: replace Schema with SchemaRef in PruningExpressionBuilder #17216 (etolbakov)
  • chore(deps): bump regex-syntax from 0.8.5 to 0.8.6 #17320 (dependabot[bot])
  • chore(deps): bump indexmap from 2.10.0 to 2.11.0 #17316 (dependabot[bot])
  • refactor: Split SortMergeJoin into multiple modules #17304 (jonathanc-n)
  • MINOR: add missing examples to example list #17333 (waynexia)
  • chore: split hash join to smaller modules #17300 (2010YOUY01)
  • chore(deps): bump url from 2.5.6 to 2.5.7 #17324 (dependabot[bot])
  • chore(deps): bump regex from 1.11.1 to 1.11.2 #17325 (dependabot[bot])
  • add a ci job for typo checking #17339 (waynexia)
  • chore(deps): bump clap from 4.5.45 to 4.5.46 #17338 (dependabot[bot])
  • chore(deps): bump korandoru/hawkeye from 6.1.1 to 6.2.0 #17321 (dependabot[bot])
  • chore: avoid very cheap copy in SchemaMapping #17344 (rluvaton)
  • chore(deps): bump actions/checkout from 4.2.2 to 5.0.0 #17345 (dependabot[bot])
  • chore(deps): bump libmimalloc-sys from 0.1.43 to 0.1.44 #17343 (dependabot[bot])
  • fix EquivalenceProperties calculation in DataSourceExec #17323 (adriangb)
  • chore(deps): bump mimalloc from 0.1.47 to 0.1.48 #17353 (dependabot[bot])
  • chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 #17355 (dependabot[bot])
  • refactor: simplify json_shredding example by using ListingTable #17369 (waynexia)
  • Fix incorrect memory accounting for sliced StringViewArray #17315 (ding-young)
  • chore(deps): bump aws-credential-types from 1.2.5 to 1.2.6 #17368 (dependabot[bot])
  • minor: use debug level log for physical optimizer #17383 (waynexia)
  • chore(deps): bump uuid from 1.18.0 to 1.18.1 #17384 (dependabot[bot])
  • chore(deps): bump aws-config from 1.8.5 to 1.8.6 #17386 (dependabot[bot])
  • minor: make dict_from_values public #17376 (parthchandra)
  • chore: add memory catalog test to handle table removal before schema deregistration #17307 (caicancai)
  • chore(deps): bump actions/setup-node from 4.4.0 to 5.0.0 #17410 (dependabot[bot])
  • chore(deps): bump actions/stale from 9.1.0 to 10.0.0 #17409 (dependabot[bot])
  • chore(deps): bump actions/labeler from 5.0.0 to 6.0.0 #17408 (dependabot[bot])
  • Avoid panic when ‘with order’ expression could not be converted to a logical expression #17394 (pepijnve)
  • chore(deps): bump apache-avro from 0.17.0 to 0.20.0 #16092 (dependabot[bot])
  • chore(deps): bump actions/setup-python from 5.6.0 to 6.0.0 #17413 (dependabot[bot])
  • Test grouping by FixedSizeList #17415 (findepi)
  • re-export physical_expr_adapter #17414 (adriangb)
  • Benchmark window function with multiple partitioning columns #17402 (findepi)
  • Fix PartialOrd for Window #17393 (findepi)
  • Memory datasource protobuf support #17290 (lewiszlw)
  • fix bounds accumulator reset in HashJoinExec dynamic filter pushdown #17371 (adriangb)
  • Unimplement PartialOrd for TDigest's Centroid #17440 (findepi)
  • Unimplement PartialEq, PartialOrd from ToRepartition, RePartition #17441 (findepi)
  • chore(deps): bump insta from 1.43.1 to 1.43.2 #17436 (dependabot[bot])
  • chore(deps): bump actions/labeler from 6.0.0 to 6.0.1 #17433 (dependabot[bot])
  • chore(deps): bump clap from 4.5.46 to 4.5.47 #17435 (dependabot[bot])
  • Add PhysicalExpr::is_volatile #17351 (adriangb)
  • refactor: Use BufferedBatchState enum for SMJ spilling #17429 (jonathanc-n)
  • Re-enable page index for encrypted Parquet #17426 (adamreeve)
  • Re-export apache-avro when avro feature flag is set #17388 (shivbhatia10)
  • Improved experience when remote object store URL does not end in / #17364 (xiedeyantu)

Credits

Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.

    51	dependabot[bot]
    31	Piotr Findeisen
    24	Adrian Garcia Badaracco
    21	Andrew Lamb
    14	Yongting You
    11	Chen Chongchen
     9	Berkay Şahin
     9	Ruihang Xia
     7	Jeffrey Vo
     7	Nuno Faria
     6	Oleks V
     6	Pepijn Van Eeckhoudt
     6	Qi Zhu
     5	ding-young
     4	Adam Reeve
     4	Alan Tang
     4	Jonathan Chen
     4	Liam Bao
     4	Peter Nguyen
     4	Raz Luvaton
     4	kosiew
     3	Adam Gutglick
     3	Cancai Cai
     3	Huaijin
     3	Peter L
     3	lorenarosati
     3	wiedld
     2	Brent Gardner
     2	Bruce Ritchie
     2	Marco Neumann
     2	Matthew Kim
     2	Sherin Jacob
     2	Thearas
     2	Tim Saucer
     2	miro
     2	xudong.w
     2	张林伟
     1	Ajeeta Asthana
     1	Alex Huang
     1	Andrey Koshchiy
     1	Andy Grove
     1	Blake Orth
     1	Christian van der Loo
     1	Colin Marc
     1	Corwin Joy
     1	David Hewitt
     1	David López
     1	Dima
     1	Eugene Tolbakov
     1	Evgenii Glotov
     1	GPK
     1	Gabriel
     1	Geetansh Juneja
     1	Geoffrey Claude
     1	Haresh Khanna
     1	Jack Kleeman
     1	Jax Liu
     1	Jensen
     1	LB7666
     1	Loakesh Indiran
     1	Marko Milenković
     1	Matt Matravers
     1	Nga Tran
     1	Parth Chandra
     1	Ronit Thummaluru
     1	Shehab Amin
     1	Shiv Bhatia
     1	Shruti Sharma
     1	Simon Vandel Sillesen
     1	Stuart Carnie
     1	Tobias Schwarzinger
     1	Yuhan Wang
     1	ZC
     1	Zhen Wang
     1	aditya singh rathore
     1	ayemjay
     1	delamarch3
     1	mwish
     1	theirix

Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.