- 2021-09-02Added
- Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
 - 2021-08-07Changed
- Add the KeySeq column to the sys_foreignkeys table.
 - 2021-08-06Changed
- Add the new sys_primarykeys system table.
 - 2021-07-23Changed
- 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 vs te predicate. Ie: 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. Ie: WHERE col > L_LAST_MONTH(). This will continue to resolve to the same values that previously were calculated in the criteria. Note that the "L_" prefix will only work in the predicate - it not available for the projection.
 - 2021-07-08Added
- 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.
 - 2021-04-23Added
- Added support for handling client side formulas during insert / update. For example: UPDATE Table SET Col1 = Concat(Col1, " - ", Col2) WHERE Col2 LIKE 'A%'
 - 2021-04-23Changed
- Updated how display sizes are determined for varchar primary key and foreign key columns so they will match the reported length of the column.
 - 2021-04-16Added
- Non-conditional updates between two columns is now available to all drivers. For example: UPDATE Table SET Col1=Col2
- Reduced the length to 255 for varchar primary key and foreign key columns.
- Updated implicit and metadata caching to improve performance and support for multiple connections. Old metadata caches are not compatible - you would need to generate new metadata caches if you are currently using CacheMetadata.
- Updated index naming convention to avoid duplicates
- Updated and standardized Getting Started connection help.
- Added the Advanced Features section to the help of all drivers.
- Categorized connection property listings in the help for all editions.
Excel Add-In Changes
 - 2021-07-26Added
- Added the possibility to sort via UI on the "CData Query" form. The order of the sort is defined by reordering the columns.
 - 2021-07-21Removed
- Removed support for .NET 3.5. Before upgrade/downgrade, a clean uninstall and then the same product versions install should be performed. So, if we want to downgrade, all the downgrade build versions must be with a .NET 3.5 support. If we want to upgrade, all the upgrade build versions must be with the dropped .NET 3.5 support.
 - 2021-07-06Added
- Added a config file option REPLACE_SYSTEM_LOCALE=TRUE. This indicates whether Office culture replaces system locale. The default value is TRUE. This way there is the option to disable overriding system locale by setting it to FALSE.
 - 2021-06-26Added
- Added the ability to move the columns up and down on the "CData Query" form grid view and change their order via UI.
 - 2021-06-24Added
- Added the default parameter "showPopups" so the user may decide to show or not popups when calling VBA functions.
 - 2021-05-21Added
- A new UI implementation is added for "in" and "not in" filter options on the "CData Query" form. The user is able to select via an interface from a list of distinct column values.
 - 2020-12-30Added
- Implemented user awareness during the upgrade process from 2019 to 2020 or 2021 editions.
 - 2020-12-18Added
- Added the "is null" and "is not null" filters on the "CData Query" form.
 - 2021-08-19Added
- Added the DownloadDocument stored procedure to download the file or image resource object.
- Added the Stored Procedure for Create Page.
 - 2021-06-05Added
- Added support for the AzureServicePrinciple authentication scheme.
- Added support to authenticate submitting JWT certs instead of the OAuthClientSecret for the AzureServicePrinciple and AzureAD authentication schemes.
 - 2021-04-01Changed
- The default scope for the embedded driver to avoid requiring admin consent. Admin consent is required for the Groups table since all Groups permissions require admin consent. It is recommended to use a custom OAuth app if access to the Groups table is required. If using the embedded driver, the GetAdminConsentURL stored procedure must be executed first. Then the requested scope must also be updated using either the input parameter for GetOAuthAccessToken / GetOAuthAuthorizationUrl, or via the connection property.
- The Tenant connection property is deprecated and replaced with AzureTenant to match our other products.