Skip to content

Bodo 2026.8 Release (Date: 08/17/2026)

🎉 Highlights

This release, we are excited to once again significantly expand the range of queries that run in the BodoSQL C++ backend. We also added initial support for decimal types in Bodo DataFrames, fixed several bugs, and upgraded our Calcite and Arrow dependencies.

✨ New Features

  • Added support for storage_options argument in pd.read_parquet()
  • Added support for Series.astype()
  • Added support for aggregating on key columns in DataFrame.groupby()
  • Added initial support for decimal types in Bodo DataFrames
  • Support file:/ in Iceberg read

BodoSQL C++ backend

  • Added UNION
  • Added CREATE TABLE for Iceberg FileSystemCatalogs
  • Added numeric functions: ABS, LOG, LN, POW, EXP, SQRT, HAVERSINE, FACTORIAL, UNIFORM, CONV, TRUNCATE, and TO_NUMBER
  • Added date/time functions: TIMESTAMP_FROM_PARTS, DATE_FROM_PARTS, TIME_FROM_PARTS, MAKEDATE, MONTHS_BETWEEN, TIMEZONE_HOUR/TIMEZONE_MINUTE, EPOCH, CONVERT_TIMEZONE, tz-aware DATEDIFF, and tz-aware NEXT_DAY/PREVIOUS_DAY
  • Added string functions: TRIM, LTRIM, RTRIM, SUBSTRING, REGEXP_INSTR, REGEXP_REPLACE, REGEXP_COUNT, REGEXP_LIKE, STRCMP, FORMAT, STRTOK, STRTOK_TO_ARRAY, and SPLIT
  • Added ANY_VALUE aggregation function and COUNT_IF
  • Added IS_FALSE and IS_NOT_FALSE
  • Support named and dynamic params
  • Support decimal constants in plans
  • Improve return type support in CAST expressions

🐛 Bug Fixes

  • Fixed segfault in empty table for GPU broadcast join
  • Fixed correctness of GPU reductions on all-null data.
  • Fixed segfaults in the C++ backend when the plan contains a cached subplan node
  • Set timezone properly for timestamp reductions

🏎️ Performance Improvements

  • Added a new planner pass to split expressions where it can improve result caching
  • BodoSQL now uses estimated row counts instead of absolute row counts when using parquet files through the TablePath API, this significantly reduces the time taken to gather table metadata for large tables.

🛠️ Infrastructure

  • Added logging for runtime join filter expressions pushed to Iceberg I/O in the BodoSQL C++ backend

Dependency Updates

  • Upgraded to Arrow 25
  • Upgraded Calcite to 1.39.0