Bodo 2026.10 Release (Date: 10/02/2026)¶
🎉 Highlights¶
This release improves BodoSQL’s query optimizer with new transformation rules, better metadata and costing, and an upgrade to Apache Calcite 1.42. It also improves Decimal support across Bodo DataFrames and BodoSQL, fixing several correctness issues around precision, scale, arithmetic, and distributed execution.
✨ New Features¶
- Added support for
TO_TIMESTAMPin BodoSQL C++ backend. - Added a
regionparameter to BodoSQL’sGlueCatalogconstructor. - Added support for Decimal types in Groupby mean.
🐛 Bug Fixes¶
- Fixed missing dependency issue in BodoSQL’s
FileSystemCatalogfor S3 reads and writes. - Fixed correctness issue where Decimal types were not propagating their scale and precision to the output of filters.
- Fixed correctness issue where Decimal division was calculating the wrong output scale.
- Fixed correctness issue where shuffle was not sending a Decimal array's scale.
- Fixed correctness issue involving comparison between Decimals and integer literals.
- Re-enabled bloom filters for Runtime Join Filters in Bodo DataFrames and BodoSQL C++ backend.
🏎️ Performance Improvements¶
- Added a new rule to the BodoSQL planner for extracting join “OR” predicates that reference a single side, increasing filter pushdown opportunities.
- Enabled predicate metadata pullup inside the BodoSQL Volcano planner, allowing additional expression reduction rules to fire.
- Improved selectivity estimates for equality and string search expressions using NDVs.
- Added a heuristic for aggregate-join transpose inside the BodoSQL Volcano planner to avoid the transformation when the aggregate pushdown does not reduce input sizes substantially.
- Added tunable software prefetching for probing a join’s build table.
- Increased caching in BodoSQL C++ backend by converting the optimizer’s cache nodes into Physical CTEs.
- Preserve nullability of Iceberg fields when writing a table using Bodo DataFrames.
🛠️ Infrastructure¶
- Added end-to-end tests for Runtime Join Filters for Bodo DataFrames and BodoSQL C++ backend.
- Added a visualization tool to the Bodo query profile aggregator to generate graphs based on profiles.
- Added physical operator names and Iceberg table names to the query profiler.
- Changed operator ID generation for the query profiler so that BodoSQL C++ backend uses the IDs generated by the optimizer.
⚙️ Dependency Updates¶
- Upgraded fmt to 12.2
- Upgraded Apache Calcite from 1.38 to 1.42.