ADO.NET Provider for Databricks

Build 25.0.9434

Changelog

General Changes

DateBuild
Number
Change
Type
Description
10/06/20259410GeneralAdded
  • Support for parsing datetime formats using ".S" and ",S" for milliseconds and nanoseconds.
09/12/20259386GeneralAdded
  • Added the IsInsertable, IsUpdateable, and IsDeleteable columns to the sys_tables table.
09/10/20259384GeneralChanged
  • All columns in statically defined Views are now reported as read-only.
09/03/20259377GeneralChanged
  • Corrected the behavior when IN criteria with NULL values are used in the projection part. It now returns NULL instead of 0. For example, "NULL IN (1,2)" returns "NULL".
09/01/20259375GeneralAdded
  • Added support for using the CAST function with infinity values. This function can cast "inf" and "-inf" to DOUBLE, FLOAT, or REAL.
08/29/20259372DatabricksAdded
  • Added the IncludeSystemSchemas connection property to specify whether to expose the information_schema system schema. The default is false.
08/26/20259369DatabricksChanged
  • The WHERE clause now supports all SQL standard-compliant syntax.
08/21/20259364GeneralChanged
  • Report behavior change:
    • Fixed inconsistent string value comparisons in non-table queries.
    • For example, "SELECT 'A' = 'a'" previously returned false, but it now returns true.
08/13/20259356GeneralChanged
  • Changed the maximum number of pages held in memory from 15 to 5 for the page providers to decrease heap usage.
07/08/20259320DatabricksAdded
  • Added support for the ApplicationName property for connections to Databricks SQL Warehouse.
06/25/20259307GeneralRemoved
  • Removed the "ADLS Gen 1" value from the ConnectionType property.
06/20/20259302GeneralAdded
  • Created the following functions:
    • TEXT_ENCODE: encodes a string into a different charset (UTF8 → UTF7 and returns a binary array as the result).
    • TEXT_DECODE: takes a binary array and decodes it back into a string when provided the charset.
    • BASE64_ENCODE: takes a binary array and encodes it as a base64 string (varchar).
    • BASE64_DECODE: takes a base 64-encoded string and decodes it into a binary array.
06/18/20259300GeneralChanged
  • The internal code for exception handling has been refactored. Exception messages returned during certain error conditions may now have different wording or formatting.
06/16/20259298DatabricksDeprecated
  • Deprecated the Basic AuthScheme.
05/29/20259280ADO.NETChanged
  • We have improved our implementation of the ADO.NET DbDataReader.GetDataTypeName so that it now returns database data type names, such as varchar, tinyint, and datetime. Previously we returned the fully-qualified name of the column’s .NET type, in a format like "System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e".
05/27/20259278ADO.NETRemoved
  • Removed support for the C# implementation of SQLite. Features that previously used this implementation by default, such as AutoCache and EF6 schema caching, now require the native SQLite driver.
05/27/20259278GeneralRemoved
  • Removed the "Proprietary" enum option from ProxyAuthscheme.
05/08/20259259DatabricksChanged
  • Renamed the UseLegacyDataModel connection property to "SupportMultiCatalog".

Added
  • Added support for retrieving foreign key metadata. This requires Databricks Runtime 11.3 LTS or later with Unity Catalog and Delta Lake.
04/09/20259230DatabricksAdded
  • Added support for the Azure Managed Service Identity (MSI) AuthScheme connection property.
02/15/20259177GeneralAdded
  • Added support for converting unsigned integer types to the nearest signed data type that has enough precision to hold the unsigned value.This is done for JDBC only because it does not have support for unsigned data types.
11/27/20249097GeneralAdded
  • Added ThreadId to LogModule output. Logfile lines now include the Thread ID associated with the action being performed.
11/14/20249084DatabricksAdded
  • Added a new connection property, CheckSQLWarehouseAvailability, to specify whether the driver checks the availability of the SQL Warehouse. The default value is True, enabling the check by default.
11/08/20249078DatabricksChanged
  • Deprecated the UseInsertSelectSyntax property.
10/25/20249064DatabricksChanged
  • Exposed the DefaultColumnSize connection property, which was previously hidden. Default value is 1048576.
09/26/20249035DatabricksAdded
  • Added a new AuthScheme OAuthU2M to support user-to-machine authentication.
  • Added a new AuthScheme OAuthM2M to support machine-to-machine authentication.
  • Added a new connection property OAuthLevel, which specifies the valid range of the generated access token. Allowed entries are WorkspaceLevel and AccountLevel.
  • Added a new connection property DatabricksAccountId, which specifies the Databricks account ID and is only required when OAuthU2MLevel is AccountLevel.
08/20/20248998DatabricksAdded
  • Added support for the following AWS regions: HYDERABAD, MELBOURNE, CALGARY, SPAIN, ISOLATEDUSEAST, ISOLATEDUSEASTB, and ISOLATEDUSWEST.
08/02/20248980DatabricksAdded
  • Added a new connection property ServerTimezone to allow users to specify the time zone ID of the current platform. Options are UTC (default), LOCAL, or a user-specified time zone.
07/05/20248952DatabricksDeprecated
  • Deprecated the following properties: AzureSubscriptionId, AzureResourceGroup, and AzureWorkspace. These properties are no longer required when using AzureServicePrincipal authentication, but they are retained for compatibility.
06/18/20248935DatabricksChanged
  • Improved performance of batch INSERT operations when the "UseUploadAPI" connection property is enabled.
05/09/20248895GeneralChanged
  • The ROUND function previously did not accept negative precision values. That feature has now been restored.
03/21/20248846DatabricksChanged
  • Change the behavior of the property "QueryAllMetadata". When it is False and the property "Database" is empty, the driver will query metadata from all schemas/databases under the default catalog, not only from the default schema/database under the default catalog.
03/15/20248840GeneralAdded
  • Created a new SQL function called STRING_COMPARE that provides java's String.compare() ability to SQL queries. Returns a number representative of the compared value of two strings
01/18/20248783ADO.NETAdded
  • Added support for EFCore 8.
11/29/20238733GeneralChanged
  • The ROUND function doesn't accept the negative precision values anymore.

Changed
  • The returning types of the FDMonth, FDQuarter, FDWeek, LDMonth, LDQuarter, LDWeek functions are changed from Timestamp to Date.
  • The return type of the ABS function will be consistent with the parameter value type.
11/28/20238732GeneralAdded
  • Added the HMACSHA256 formatter to allow for secrets to be decoded if it is in base64 format
11/15/20238719ADO.NETChanged
  • NuGet license and icon are now embedded within the package itself, in compliance with the package authoring best practices.
10/20/20238693DatabricksAdded
  • Support Bulk Update and Bulk Delete for Databricks SQL Endpoint(SQL Warehouse).
08/24/20238636DatabricksChanged
  • Support new AuthScheme "Basic", set this to authenticate with Databricks' user and access token.
07/20/20238601DatabricksAdded
  • Add new property "QueryAllMetadata" to specify whether to query all catalogs and schemas(databases) or only the default catalog and schema(database).
06/20/20238571GeneralAdded
  • Added the new sys_lastresultinfo system table.
06/08/20238559DatabricksChanged
  • The default value of the "UseLegacyDataModel" property has been changed to True, indicating that the driver now supports multi-catalog by default.
05/15/20238535DatabricksAdded
  • Add new property "AllowPreparedStatement" to prepare a query statement before its execution.
04/25/20238515GeneralRemoved
  • Removed support for the SELECT INTO CSV statement. The core code doesn't support it anymore.
04/19/20238509ADO.NETRemoved
  • Removed support for EFCore 3.1.
04/18/20238508ADO.NETRemoved
  • Removed support for SSRS 2012

Added
  • Added support for SSRS 2022.
03/31/20238490DatabricksChanged
  • Support new AuthScheme "AzureAD".
03/15/20238474DatabricksAdded
  • Add new property "PersonalAccessTokenExpiresIn" to specifies the lifetime in seconds of the Databricks personal access token.
02/01/20238432DatabricksAdded
  • Add new property "ConnectRetryWaitTime" to specifies the number of seconds to wait to retry a connection request.
12/14/20228383GeneralChanged
  • Added the Default column to the sys_procedureparameters table.
11/11/20228350DatabricksAdded
  • Added a new "UseLegacyDataModel" property. Set it to "true" to support the Unity Catalog. The default is "false", which does not change the previous behavior (the catalog is always "CData").
09/30/20228308GeneralChanged
  • Added the IsPath column to the sys_procedureparameters table.
08/12/20228259DatabricksAdded
  • Added the connection property UseUploadApi to specify whether the Databricks Upload API will be used when executing Bulk Insert operations.
  • Added the connection property DeleteDataOnDrop to specify whether to completely delete the data and schema information of the delta table.
07/14/20228230DatabricksReplacements
  • Refactored metadata queries to improve the performance of GetTables and GetColumns.

Added
  • Added support for retrieving all schemas rather than just the default schema.
06/08/20228194ADO.NETRemoved
  • Removed support for VS2010.
05/19/20228174ADO.NETRemoved
  • Removed support for .NET 2.0.
04/27/20228152ADO.NETRemoved
  • Removed support for EFCore 3.0 and EFCore5.0.
03/08/20228102DatabricksAdded
  • Added the connection property PrimaryKeyIdentifiers to specify primary keys.
  • Added support for Batch Update/Delete operations.
03/01/20228095DatabricksAdded
  • Added support for Delta Tables with the following ALTER features:
  • ALTER TABLE table_name
  • RENAME TO new_table_name
  • ADD [COLUMN | COLUMNS] (column_name column_type, ...)
  • ALTER COLUMN [SET | DROP] NOT NULL
  • RENAME COLUMN column_name TO new_column_name
02/08/20228074DatabricksAdded
  • Added the connection property ApplicationName to specify the HTTP header UserAgent.
02/07/20228073DatabricksAdded
  • Added the following Azure connection properties: AzureSubscriptionId, AzureResourceGroup and AzureWorkspace.

Removed
  • Removed the AuthScheme AzureAD.
  • Removed five AzureAD connection properties: AzureUsername, AzurePassword, AzureADTenantId, AzureADClientId and AzureADClientSecret.

Replacements
  • Use AzureServicePrincipal as the AuthScheme instead of AzureAd a replacement for AzureAD.
  • Added six AzureServicePrincipal connection properties as replacements: AzureTenantId, AzureClientId, AzureClientSecret.
01/14/20228049DatabricksAdded
  • Added support for the NATIVEQUERY table function. This function can be used after a FROM to execute a query using Databricks native SQL. For example,
    SELECT * FROM NATIVEQUERY('SELECT * FROM default.tbl PIVOT (...)')
    will execute the inner query in Databricks directly and return the results. This will work even in tools which are not normally compatible with QueryPassthrough=true.
12/03/20218007DatabricksDeprecated
  • Connection properties UseShowDatabasesQuery, UseDescTableQuery, and UseShowTablesQuery are deprecated. They were not being used.
09/16/20217929DatabricksAdded
  • Added four connection properties SSLClientCert, SSLClientCertPassword, SSLClientCertSubject, SSLClientCertType.
09/02/20217915GeneralAdded
  • Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
08/07/20217889GeneralChanged
  • Added the KeySeq column to the sys_foreignkeys table.
08/06/20217888GeneralChanged
  • Added the new sys_primarykeys system table.
07/23/20217874GeneralChanged
  • Updated the Literal Function Names for relative date/datetime functions. Previously, relative date/datetime functions resolved to a different value when used in the projection as opposed to the predicate. For example: SELECT LAST_MONTH() AS lm, Col FROM Table WHERE Col > LAST_MONTH(). Formerly, the two LAST_MONTH() methods would resolve to different datetimes. Now, they will match.
  • As a replacement for the previous behavior, the relative date/datetime functions in the criteria may have an 'L' appended to them. For example: WHERE col > L_LAST_MONTH(). This will continue to resolve to the same values that were previously calculated in the criteria. Note that the "L_" prefix will only work in the predicate - it not available for the projection.
07/08/20217859GeneralAdded
  • Added the TCP Logging Module for the logging information happening on the TCP wire protocol. The transport bytes that are incoming and ongoing will be logged at verbosity=5.
06/07/20217828ADO.NETAdded
  • Added support for the DbCommand.CommandTimeout property.
05/29/20217819ADO.NETRemoved
  • Removed support for SSRS 2008.
04/25/20217785GeneralAdded
  • Added support for handling client side formulas during insert / update. For example: UPDATE Table SET Col1 = CONCAT(Col1, " - ", Col2) WHERE Col2 LIKE 'A%'
04/23/20217783GeneralChanged
  • Updated how display sizes are determined for varchar primary key and foreign key columns so they will match the reported length of the column.
04/16/20217776ADO.NETChanged
  • Separated the ADO.NET Provider assembly and Entity Framework Core 5 Nuget packages.
  • Single precision floating point numbers are now reported as with the Data Type Name as "real". Double precision floating point numbers now have their Data Type Name reported as "float". This change does not impact the actual data types of these columns - only the reported data type name.
  • Separate EFCore 3.0, 3.1 and EFCore 5 dlls are now shipped with the driver. The 2.0 and 2.1 EFCore dlls are removed.
04/16/20217776GeneralAdded
  • Non-conditional updates between two columns is now available to all drivers. For example: UPDATE Table SET Col1=Col2
04/16/20217776GeneralChanged
  • Reduced the length to 255 for varchar primary key and foreign key columns.

Changed
  • Updated index naming convention to avoid duplicates.
04/16/20217776GeneralChanged
  • Updated implicit and metadata caching to improve performance and support for multiple connections. Old metadata caches are not compatible - you need to generate new metadata caches if you are currently using CacheMetadata.

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434