26.x Release Notes
26.0.0 (April 2025) Preview
This public preview release of Dremio 26.0.0 is intended exclusively for new deployments only using the latest versions of the Helm charts. Upgrades from earlier versions are not supported as part of this preview. See Terms of Service.
We welcome feedback on this public preview release. Please submit your feedback to beta@dremio.com.
What's New
General Updates
-
Autonomous Reflections automatically creates and manages reflections, accelerating query performance and optimizing data accessibility. This enables users to derive faster insights, scale effortlessly, and make data-driven decisions.
DX-89558 -
Dremio now supports results cache management and eviction without having to rely on the time-to-live (TTL) policy of the cache storage. The results are stored in a distributed storage configured via
dremio.conf
. If you are upgrading from 25.1, you must manually remove any existing TTL policy configured. Queries accelerated by the results cache now display a lightning bolt icon and indicate a cache hit on the Job Overview page.DX-101298, DX-94850 -
Dremio supports the creation, modification, introspection, and deletion of Kubernetes-based engines via the Dremio console or the Engine Management API. Engines are T-shirt sized and can be set up to automatically start and stop, i.e., they can automatically start up as needed by queries and stop after an idle time without queries. Dremio allows setting guardrails and timeouts for the engine lifecycle via the Dremio console or the Engine Management API. For more details, see Managing Engines.
DX-97061 -
Dremio clusters on Kubernetes will automatically transmit telemetry data back to Dremio's corporate endpoint. This telemetry is comprised of Prometheus metrics, which provide valuable insights into system performance and health, enabling Dremio to enhance product stability and support.
DX-97022 -
Dremio now deploys with a built-in Iceberg catalog, powered by Apache Polaris (incubating). Learn more about this Dremio Catalog.
DX-96982, DX-96991, DX-96989, DX-96988, DX-96907, DX-97113, DX-97955, DX-100986, DX-101757 -
You can now use clustering as a straightforward and effective alternative to partitioning. Clustering simplifies processes and helps ensure fast queries on Apache Iceberg tables.
DX-92001 -
Parameterized prepared statements are supported for Arrow Flight SQL JDBC to prevent SQL injection and to enable users to leverage client tools that support parameterized prepared statements. This update supports
SELECT
statements.DX-10013, DX-89042 -
Dremio now supports the OAuth2.0 token exchange endpoint, which allows client applications to set up external OAuth authentication for ODBC, JDBC, Arrow Flight, and REST API requests.
DX-95730 -
Dremio now supports a generic Iceberg REST Catalog as a source, which includes vended credentials. This would allow you to connect to Iceberg catalogs over the Iceberg REST API. This source is located within the Lakehouse Catalogs.
DX-102149, DX-98996, DX-98713, DX-100065 -
The Polaris Catalog (Preview) source has been renamed to Snowflake Open Catalog. This rename should happen automatically after upgrading to Dremio 26+. With this source connector, you can connect and read from internal and external Snowflake Open Catalogs and write to internal Snowflake Open Catalogs. All interaction with the underlying Iceberg tables is done via vended credentials resulting is a more secure solution.
DX-96947, DX-97271, DX-96947, DX-96951, DX-101757 -
Users can now connect to and read from Unity Catalog. All interaction with the underlying Delta tables is done via UniForm metadata. Access to the underlying storage layer is done via vended credentials.
DX-96951 -
Dremio supports SAP HANA as a source.
DX-93897, DX-47285 -
Dremio supports Google BigQuery as a source.
DX-93897
APP
-
Added a new Engines page in the Dremio console for managing engines and executors in Kubernetes deployments where users can create, set an idle time, and easily delete engines.
DX-99357 -
The Lineage tab has been updated to give a more modern and improved user experience, allowing users to customize the layers of information shown on the lineage nodes. Lineage is supported for Dremio Catalog (powered by Polaris), Unity, and all Iceberg REST Catalogs.
DX-96716, DX-97045, DX-97065 -
Quickly discover your data using the AI-enabled semantic search. Object names, wikis, labels, column names, and other metadata is used to serve the most relevant datasets and entities. This capability is only supported for Kubernetes deployments.
DX-96145, DX-93754, DX-97047
SQL
- Added support for
COPY INTO
transformations with CSV input type, extendedCOPY INTO
syntax to enable simple transformations during a data load, and addedEMPTY_AS_NULL
functionality withCOPY INTO
transformations. Note:EMPTY_AS_NULL
is evaluated only on the CSV input data, not on any function result or subresult.DX-96995, DX-96064, DX-90263
Improvements and Issues Fixed
General Updates
-
Improved the performance of AWS Glue Data Catalog table reads.
DX-96290 -
Following Microsoft's official retirement of Azure Data Lake Storage Gen1 last year (Feb 2024), Dremio has officially removed the Azure Data Lake Storage Gen1 Storage source from its product.
DX-88437, DX-88433, DX-86550 -
Dremio supports Azure Storage container writes with the Azure Blob File System (ABFSS) driver. Iceberg metadata on Azure now defaults to the
abfss://
format instead ofwasbs://
.DX-66589, DX-99125 -
You can now configure the managed identity that Dremio needs to use for Azure key vault authentication.
DX-94964 -
Fixed an issue that could prevent async Azure reads due to a time zone issue in locations east of Greenwich Mean Time (GMT).
DX-93739 -
The default
paths.dist
value indremio.conf
has been updated from the deprecated PDFs to a local filesystem path. Thepaths.dist
value must be updated to a Dremio-supported distributed store in production or multi-node situations. Dremio will now be fully functional for single-node demo installs.DX-89368, DX-91559 -
Upgraded AWS SDK to version 2.18.0+ along with related dependency updates and compatibility adjustments.
DX-60924 -
Changed the default from a 32 KB field size limit to a 16 MB row width limit, allowing users to interact with larger datasets without having to change support keys.
DX-89764, DX-94238 -
Fixed an issue where high setup times could be seen when running queries against Iceberg tables.
DX-100856 -
Fixed an issue where merge-on-read DML operations could fail on Apache Iceberg tables with partition transforms.
DX-99569 -
When writing Parquet files to Iceberg tables:
-
store.parquet.block-size
anddremio.iceberg.optimize.target_file_size_mb
are now ignored. -
The
write.parquet.row-group-size-bytes
property now controls row group and file size, with a default value of 128 MB instead of 256 MB. -
write.metadata.metrics.max-inferred-column-defaults
andwrite.metadata.metrics.default
now control file-level metrics in Iceberg metadata. Thewrite.metadata.metrics.max-inferred-column-defaults
property is now 100 instead of unlimited. -
The
write.metadata.metrics.default
mode is nowtruncate(16)
instead offull
. -
The default value for
write.parquet.page-row-limit
is now 20,000 instead of unlimited. -
The
write.parquet.page-size-bytes
property is now used to specify the Parquet data page size of newly created Parquet files in a table instead of thestore.parquet.page-size
support option and the default value has changed from 1 KB to 1 MB. -
The
write.parquet.dict-size-bytes
property is now used to specify the Parquet dictionary page size of newly created Parquet files in a table instead of thestore.parquet.dictionary.page-size
support option. The default value has changed from 1 MB to 2 MB. -
The
write.parquet.compression-codec
andwrite.parquet.compression-level
properties are now used to specify the Parquet compression codec/level for newly created Parquet files in a table instead of thestore.parquet.compression
andstore.parquet.compression.zstd.level
support options. The default value of the codec has changed fromsnappy
tozstd
. The default value of the level is up to the codec library. -
The
compatibility.snapshot-id-inheritance.enabled
property is no longer written by default but could be used for v1 Iceberg tables for backward compatibility reasons. -
Dremio may write multiple row groups into Parquet files according to the Iceberg table
properties write.target-file-size-bytes
andwrite.parquet.row-group-size-bytes
.DX-99417DX-99441DX-99743DX-98865DX-98550DX-97618DX-50828DX-101321
-
-
Fixed an issue where some correlated subqueries led to a "Cannot convert RexNode to equivalent Dremio expression" error message.
DX-58073 -
Fixed an issue where updating the source caused rerunning a query to fail with a "Source X was updated, and the given configuration has older version (current: y, given: z)" error message.
DX-69486 -
Fixed an issue that could cause an "Unable to find the reference field" error during query planning due to Common Subexpression Elimination (CSE).
DX-90660 -
Fixed an issue where a query with window functions used with non-nullable decimal columns fails with a "Schema does not match expected schema" error message.
DX-102023 -
Fixed a slow resource leak on the coordinator that can slow down queries and fill the heap memory for idle Workload Management (WLM) queues that are tied to engines. The leak is proportional to the number of idling WLM queues and may fix itself when a query is submitted to those queues.
DX-88418 -
Fixed an issue where queries using reflections failed or referenced stale materializations.
DX-100896 -
Reflection manager now starts to collect the duration for every refresh job:
- Fixed the miscalculation of the
lastRefreshDuration
field in the system materializations table - Enhanced the reflection refresh retry policy with a dynamic interval where long-running refresh jobs and a small number of maximum retries are better handled DX-101134
- Fixed the miscalculation of the
-
Fixed an issue where we could fail to write a generated reflection score due to concurrent modification exception.
DX-100983 -
Enhanced default raw reflection matching to include query tree hashes so that more SQL queries can match without direct view references.
DX-64652 -
Fixed an issue where query phase timeouts would not impact reflection matching.
DX-98080 -
Fixed an issue where, in rare cases, the retry policy for reflection refreshes would not exponentially back off.
DX-99314 -
Reduced the jobs metadata size by no longer persisting the reflection matching plans into
REFRESH REFLECTION
jobs.DX-98022 -
Fixed an issue where
REFLECTION REFRESH
jobs could fail for reflections involving joins in the query plan if field-based incremental refresh was configured on the underlying datasets. These reflection refreshes will now succeed using full refreshes.DX-97085 -
Enabled reflections for cases when there is an equivalent row and column access control (RCAC) filter on all children of a view that is the union of two or more datasets.
DX-95563 -
Fixed an issue that could cause garbage collection logs to not be accessible.
DX-98240 -
Fixed a
NullPointerException
that could occur during a metadata refresh due to closing a filesystem object already evicted from the cache.DX-88625 -
Reduced noise in the logs generated when reading data from Parquet files by changing the log level of certain messages from
WARNING
toDEBUG
.DX-101258 -
Changed automated backup not to reuse a backup destination folder. On every backup, a new folder with the pattern
<distStore>/backups/dremio_backup_<timestamp>-<dremio_version>
is now created.DX-95898 -
Incompatible runtime filters are now ignored so as to avoid an
UnsupportedOperationException
while setting up Parquet readers.DX-90910 -
Updated Apache Arrow to 18.1.
DX-96942 -
Fixed an issue that could occur when a routing rule with a
query_label()
condition would not work as expected for queries triggered using Arrow Flight client applications.DX-99808 -
When the results cache is enabled, certain ODBC and JDBC clients might receive an error when running a query involving complex types if the results for that query had been previously cached by a newer ODBC or JDBC driver.
DX-100448 -
You can now update Sample Source and SampleDB source settings with the necessary permissions.
DX-94810 -
Improved the planning time in the filter pushdown phase for a query with too many joins.
DX-96044 -
Reduced coordinator memory footprint due to interim query telemetry updates, thereby improving reliability. There will be a slight increase (~2MB per query) in transient disk space as these interim updates are now stored on disk. This additional storage space will be freed once the query finishes.
DX-90141 -
Fixed an issue that could cause higher resource utilization on the coordinators due to the incorrect scheduling of a background task that deletes old jobs.
DX-95235 -
Updated the Snowflake driver to 3.19.0 to resolve SNOW-928973.
DX-92315 -
When creating a new PAT, Dremio will read the initial value from the
auth.personal-access-token.max_lifetime_days
support key.DX-99097 -
Updated the following libraries to address potential security issues:
- Aircompressor from 0.10 to 0.27 [CVE-2024-36114] DX-96853
- Apache Avro library [CVE-2024-47561] DX-99132
- Apache HBase to version 2.6.0 [CVE-2023-44487] DX-96283
- AsyncHttpClient to 3.0.1 [CVE-2024-53990] DX-98578
- Avro from 1.11.3 to 1.11.4 [CVE-2024-47561] DX-96442
- Elasticsearch client library to 8.14.2 and removed support of clusters older than Elasticsearch version 7 DX-100797
- commons-configuration to version 2.11.0 [CVE-2024-29131] DX-96821
- jaeger-client library version 1.8.1 [CVE-2020-13949] DX-96096
- Aircompressor from 0.10 to 0.27 [CVE-2024-36114]
-
Disabled all
TRACE
web requests, which now return405(NOT_ALLOWED)
error codes.DX-97052 -
Fixed an issue where a duplicated table schema could be written to its metadata file.
DX-97502 -
Fixed a filter pushdown issue that could cause a query to run slowly or return incorrect results.
DX-97512, DX-97880 -
Fixed an issue with a permanent query slot loss in multi-coordinator setups that could gradually lose query concurrency slots on Workload Management (WLM) queues at very high loads when a client application pushes more queries to a particular WLM queue than the configured concurrency, causing the client application to time out and close its connection. Before the fix, restarting the coordinators was the only way to fix this issue.
DX-98355 -
Removed legacy support for pseudo-distributed file system (PDFS) nodes and non-Iceberg reflection storage.
DX-60382 -
Warnings about schema being out of date are no longer visible for views in Dremio.
DX-101973 -
Fixed a defect where we could get wrong data in a reflection when an extremely large amount of data files are present.
DX-101552 -
Join keys over 128 KB are now handled correctly.
DX-99636 -
Removed support for MapR Hadoop distributions.
DX-99456, DX-99455 -
Fixed an issue where excessive memory usage may occur when executing queries containing
UNION ALLs
or when executing highly parallelized queries.DX-97947 -
Adjusted metadata collection methods to reduce the load of queries to a MongoDB instance.
DX-85654 -
Removed the following support keys:
-
reflection.manager.skip_drop_table_job_for_incremental_refresh
DX-90480 -
reflection.manager.refresh_schedule_policy.enabled
DX-92633 -
exec.operator.aggregate.vectorize.use_spilling_operator
DX-96210 -
dremio.jobs.new.ui
DX-97516
-
-
Increased the default heap memory on executor nodes from 8 GB to 12 GB when memory is more than 100 GB to avoid query failures due to running out of heap.
DX-96441 -
Updated Hadoop version used with Azure paths to use Dremio's Hadoop 3.3.6 version.
DX-96228 -
Fixed an array index out of bound issue with query planning for views that do not project
ORDER BY
columns.DX-99095 -
The maximum number of max reflection refresh retry attempts is no longer user configurable.
DX-98535 -
Reduced the size of query profiles by removing serialized logical plans. Improves planner performance and reduces query profile footprint.
DX-98491 -
Improved user experience by minimizing the time during which no recommendations are available.
DX-98299
APP
-
Implemented new look and feel for logging in to the Dremio console.
DX-101440, DX-101647 -
Fixed an issue where a benign error would be logged with a message like "FileSystem is closed!" when shutting down Dremio.
DX-91951 -
Users with
MODIFY
privileges can now access source settings in the Dremio console without getting stuck in a permanent loading state.DX-96544 -
Deprecated and removed previous job pages.
DX-97516 -
Acceleration profile now shows full stack trace of the error when verbose profile is enabled.
DX-101247 -
Removed Acceleration Settings on the Reflections page.
DX-98300 -
Icons indicating that a column is Partitioned / Sorted are now visible in the Details panel and Details tab on the Datasets page. Also, the same icons will be visible in the Data panel without having to hover on a given column.
DX-99302 -
Fixed an issue when using a backslash in the search box for searching for reflections on the Reflections page.
DX-95530 -
Fixed an issue where a reflection could have an empty reflection score on the Reflections page.
DX-100774, DX-99208, DX-99040, DX-99129 -
The Recommended Joins tab in the SQL Runner is deprecated. Starting Dremio 26.0.0, all joins need to be created manually.
DX-101102, DX-96716 -
Switching between query tabs in the SQL Runner will no longer cause the duration timer to reset.
DX-99577 -
The script lookup in the All/Mine tabs on the Scripts panel in the SQL Runner was previously case-sensitive. Now, the script lookup is case insensitive.
DX-48612 -
Navigating to a dataset with dots in the name on the History tab of the Datasets page will now work as expected. History is no longer shown in the SQL Runner for views or scripts.
DX-98406, DX-98252, DX-98332 -
Fixed an issue that could prevent users from being able to run or preview a query in the SQL Runner after viewing the History tab for the query on the Datasets page.
DX-96139 -
Fixed an issue where clicking on a script in the search results on the Datasets page does not open that script in the SQL Runner.
DX-98620 -
Navigating to the wiki of a dataset from the SQL Runner will no longer cause (edited) to appear next to the dataset name.
DX-96470 -
Tables in the wiki view were previously cut off. You should now be able to see the full width of the table.
DX-97221 -
Added a new Rerun query on download option to the Preferences page in the Dremio console. When enabled, Dremio reruns the query before downloading the results.
DX-101308
SQL
-
The
SHOW TBLPROPERTIES
SQL command will now return the format version for Iceberg tables.DX-87471 -
The vacuum log
vacuum.json
file will now capture detailed information about scanning and deletion throughVACUUM TABLE
andVACUUM CATALOG
SQL commands.DX-99408 -
Fixed an issue that could cause
VACCUM CATALOG
to use synchronous readers for metadata JSON files, which might cause memory leak issues. NowVACUUM CATALOG
uses asynchronous readers instead.DX-98605 -
Addressed an issue with
REGEXP_COL_LIKE
in certain cases producing incorrect results.DX-97524 -
EXECUTE
statements can now utilize the plan cache entry created by the prepared statements.DX-100780 -
Improved performance of the varchar
IN
filter evaluation.DX-92584 -
Fixed an issue preventing access control policies to be added to Iceberg REST catalog tables using
ALTER TABLE
command.DX-100489 -
Queries that use
TABLESAMPLE
now throw a meaningful error message because they are not supported in Dremio.DX-48838 -
Fixed an issue that could cause a query with a
LIMIT
clause to not be accelerated due to miscalculated row adjustments.DX-96246 -
Improved implicit casting for some operands. As an example,
SUBSTRING
can cast integer input as characters, soSELECT SUBSTRING(42, 1)
successfully returns42
.DX-89554 -
Fixed an issue in some cases that could prevent runtime filtering if the
CONVERT_FROM
SQL function was used in the query.DX-93179 -
Fixed an issue that could cause an OutOfMemoryException (OOM) to be ignored in a
HASH_JOIN
operator, which is now explicitly thrown to prevent unexpected behavior with theHASH_JOIN
.DX-94029 -
Fixed an issue in some cases where filters on the date column with
COALESCE
were preventing the partition filter from being pushed down.DX-97665 -
Fixed an issue where decorrelating a subquery with an
EXISTS
statement and an emptyGROUP BY
clause could result in incorrect data.DX-96652, DX-96946 -
Fixed an issue with zero milliseconds that could occur when using the
CURRENT_TIME
function.99210 -
Fixed an issue where a schema error could be thrown if a user ran an
INSERT
SQL command with a subset of the columns in an Iceberg table.DX-92442 -
Fixed a nested user-defined function issue where a UDF was unable to call other UDFs.
DX-95612 -
Fixed a issue that could occur when you request reflection recommendations for a specific job and the query you want to accelerate contains a subquery.
DX-97274 -
Resolved an issue for
SELECT
queries when using theLAG
SQL function with anOFFSET
parameter that could cause incorrect results.DX-99536 -
Fixed an issue for
SELECT
queries when usingLIMIT
andOFFSET
for a value greater than the maximum value for a signed integer. NowLIMIT
andOFFSET
cannot exceed the maximum integer value.DX-97963, DX-18632 -
You can now use columns with a
VARCHAR
data type in aSELECT
subquery of aSELECT
statement.DX-83189 -
Fixed the
PARSE_URL
SQL function to handle URLs longer than 256 characters.DX-100691 -
Fixed an issue that could occur with class compilation when using a literal value in a window function.
DX-100466 -
Fixed a stack overflow issue with queries containing a long list of constants in a
WHERE IN
clause.DX-98414 -
Queries now scan only the required fields from complex structure type columns to prevent errors in query execution.
DX-93643 -
Added an explicit exception for the unsupported
IGNORE NULLS
option in window functions.DX-100400 -
Fixed a bug where queries using
ROW
types may fail with the error "DremioSqlValidator is a dummy SqlValidator to adapt to upstream API changes".DX-100331 -
Fixed an issue that could cause a
CompileException
error when using a large number of columns in anORDER BY
clause.DX-99689 -
OPTIMIZE TABLE
now will honor Iceberg table properties likewrite.target-file-size-bytes
. Also, the default has changed to 512 MB to align with Iceberg's default and increase Dremio's interoperability with other engines. In addition,OPTIMIZE TABLE
will honor the following table properties:dremio.iceberg.optimize.minimal_file_size_mb
dremio.iceberg.optimize.maximal_file_size_mb
dremio.iceberg.optimize.minimal_input_files
Breaking Changes
-
Enforced reflection count guardrail so new reflections cannot be created if there are already 500 or more active reflections.
DX-94627 -
Because the Arrow caching feature for reflections has been deprecated, any remaining references to Arrow cache for reflections have been removed, such as in the
sys.reflections
system table and APIs.DX-53451 -
Deprecated
COMPACTION
andLOAD MATERIALIZATION
for reflection jobs because they optimize non-Iceberg materialization and Dremio now supports only Iceberg materialization. Thesys.materializations
table now only showsREFRESH REFLECTION
jobs.COMPACT
andLOAD
are no longer considered reserved keywords for SQL queries.DX-64438
Known Issues
-
Dremio Catalog does not inherit role-based access control (RBAC) privileges that have been granted at the system level. Instead, you need to grant RBAC privileges directly on the Dremio Catalog.
DX-101932 -
You cannot drop tables and views through the Dremio console for Dremio Catalog, Snowflake Open Catalog, and Iceberg REST Catalog sources. Instead, you must use the
DROP TABLE
orDROP VIEW
SQL commands.DX-102380 -
If a user only has the
USAGE
andSELECT
privileges on a table and tries to run anINSERT
operation on that table, Dremio currently returns a false positive error message that says the table has been updated, but nothing actually happens.DX-102429 -
S3-compatible storage does not support credential vending as an authentication method. You must use master storage credentials to authenticate access to S3-compatible storage.
DX-101841