| |
| Date | Build Number | Change Type | Description |
| 10/06/2025 | 9410 | General | Added
- Support for parsing datetime formats using ".S" and ",S" for milliseconds and nanoseconds.
|
| 10/01/2025 | 9405 | JDBC | Added
- Added the following methods to the cdata.jdbc.graphql.GraphQLDriver class. If you pass these methods an exception with no error records, an InvalidArgumentException is thrown.
- containsErrorSource: Returns true if the exception contains an error record for the provided source name, or false if otherwise.
- getErrorCodeFromSource: Returns the numeric error code from the error record with the given source, or -1 if there is no error record from that source.
- containsErrorCode: Returns true if the exception contains an error record with the provided error code, or false otherwise.
- findErrorProperty: Returns the value of the property with the given name, or null if no property with that name is defined.
- formatErrorRecords: Returns a string containing all the exception's error records. Includes the messages, codes, properties, and error location for each record.
|
| 09/12/2025 | 9386 | General | Added
- Added the IsInsertable, IsUpdateable, and IsDeleteable columns to the sys_tables table.
|
| 09/10/2025 | 9384 | General | Changed
- All columns in statically defined Views are now reported as read-only.
|
| 09/03/2025 | 9377 | General | Changed
- 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/2025 | 9375 | General | Added
- Added support for using the CAST function with infinity values. This function can cast "inf" and "-inf" to DOUBLE, FLOAT, or REAL.
|
| 08/21/2025 | 9364 | General | Changed
- 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/2025 | 9356 | General | Changed
- Changed the maximum number of pages held in memory from 15 to 5 for the page providers to decrease heap usage.
|
| 07/23/2025 | 9335 | GraphQL | Changed
- Changed the default value of the OAuthVersion connection property from 'Disabled' to '2.0'.
Removed
- Removed 'Disable' as a valid value from the OAuthVersion connection property.
|
| 07/18/2025 | 9330 | GraphQL | Removed
- Removed the OAuthGrantType property. The grant type is now set implicitly through the 'AuthScheme' property. For example, you can use the 'OAuthPassword' AuthScheme instead of AuthScheme=OAuth with OAuthGrantType=Password.
|
| 07/10/2025 | 9322 | GraphQL | Added
- Added the Scope connection property.
|
| 06/27/2025 | 9309 | GraphQL | Added
- Added support for GraphQL interfaces and unions in generated schema files.
- Added ExposeAbstractTypes connection property.
|
| 06/25/2025 | 9307 | General | Removed
- Removed the "ADLS Gen 1" value from the ConnectionType property.
|
| 06/20/2025 | 9302 | General | Added
- 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/2025 | 9300 | General | Changed
- The internal code for exception handling has been refactored. Exception messages returned during certain error conditions may now have different wording or formatting.
|
| 05/27/2025 | 9278 | General | Removed
- Removed the "Proprietary" enum option from ProxyAuthscheme.
|
| 02/15/2025 | 9177 | General | Added
- 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/2024 | 9097 | General | Added
- Added ThreadId to LogModule output. Logfile lines now include the Thread ID associated with the action being performed.
|
| 08/28/2024 | 9006 | GraphQL | Removed
- Removed the ExposeRootObjects connection property.
Added
- Added the ExposeObjectTables connection property. This property exposes GraphQL objects that meet certain conditions as tables. See its connection property page for more information.
- Added support for pagination for arguments nested in input objects.
Changed
- Changed the names of arguments that the driver expects when customizing the other:Pagination attribute of the rsb:info element in schema files (.rsd). "cursorName" is now "cursorPath", "offsetArgumentName" is now "offsetArgumentPath", and "pageSizeArrgumentName" is now "pageSizeArgumentPath".
|
| 05/09/2024 | 8895 | General | Changed
- The ROUND function previously did not accept negative precision values. That feature has now been restored.
|
| 03/15/2024 | 8840 | General | Added
- 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
|
| 11/29/2023 | 8733 | General | Changed
- 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/2023 | 8732 | General | Added
- Added the HMACSHA256 formatter to allow for secrets to be decoded if it is in base64 format
|
| 10/27/2023 | 8700 | JDBC | Changed
- Added support for Connection.abort() method.
|
| 06/20/2023 | 8571 | General | Added
- Added the new sys_lastresultinfo system table.
|
| 04/27/2023 | 8517 | GraphQL | Changed
- Columns with a GraphQL type of "Float" - defined as a "signed double-precision finite value" - will be pushed having a data type of "double".
|
| 04/25/2023 | 8515 | General | Removed
- Removed support for the SELECT INTO CSV statement. The core code doesn't support it anymore.
|
| 01/24/2023 | 8424 | GraphQL | Added
- Added support for using PKCE with the authorization code OAuth grant type.
|
| 12/14/2022 | 8383 | General | Changed
- Added the Default column to the sys_procedureparameters table.
|
| 11/16/2022 | 8355 | GraphQL | Added
- Added support for flatenning arguments of type "INPUT_OBJECT". The depth can be controlled by the ExpandArgumentsDepth connection property.
Changed
- Optimized metadata discovery. If a specific argument is the plural form ("subregions") of a column ("subregion") it will not be pushed anymore as a separate column but it will be used as a serverside filter for the column ("subregion").
|
| 11/03/2022 | 8342 | GraphQL | Added
- Added support for custom scalar types as pagination arguments.
- Added "cursorType", "offsetArgumentType", and "pageSizeArgumentType" as extra customizable table info in generated schema files.
|
| 09/30/2022 | 8308 | General | Changed
- Added the IsPath column to the sys_procedureparameters table.
|
| 06/11/2022 | 8197 | JDBC | Changed
- The method GetJDBCMinorVersion() and GetJDBCMajorVersion() return 4.2 as the supported JDBC major / minor version.
|
| 04/28/2022 | 8153 | JDBC | Changed
- Removed support for JRE 1.6. JRE 1.8 and above is now required.
|
| 04/05/2022 | 8130 | GraphQL | Added
- Added the ExposeDynamicProcedures connection property.
- Added the ExpandTemporaryTablesDepth connection property.
|
| 03/01/2022 | 8095 | GraphQL | Added
- Added support for the AwsCognitoBasic and AwsCognitoSrp authentication methods. They can be used when connecting to the AWS AppSync service.
|
| 02/25/2022 | 8091 | JDBC | Changed
- The method DatabaseMetaData.getTypeInfo() now returns all of the data types that the driver supports. Previously, it was returning only a portion of the data types. The types include: tinyint, smallint, int, bigint, float, double, numeric, decimal, bit, date, datetime, time, varchar, binary, uuid.
|
| 02/24/2022 | 8090 | JDBC | Changed
- Corrected the return value of method DatabaseMetaData.supportsOuterJoins(), which used to return an incorrect value.
|
| 02/24/2022 | 8090 | GraphQL | Added
- Added support for executing the IN operation server side when the argument type is of type LIST. This will be detected automatically based on the introspection schema.To add support for the IN operator in previously generated scripts you must modify the "other:filter" extra info from "other:filter=id:=" to "other:filter=id:=,IN".
|
| 02/09/2022 | 8075 | GraphQL | Added
- Added support for Offset pagination on GraphQL objects of type LIST.
Changed
- Renamed the "other:pageInfoObjects" table extra info to "other:paginationObjects".
Removed
- Removed the "other:paginationType" table extra info.
|
| 01/25/2022 | 8060 | GraphQL | Added
- Added support for exposing tables and columns dynamically based on the INTROSPECTION mechanism of the GraphQL service. The metadata output can be controlled with the following properties:1) ExpandTablesDepth2) ExpandColumnsDepth3) IncludeDeprecatedMetadata
- Added support for exposing GraphQL mutations as stored procedures. If a mutation has fields of type LIST, we will push a temporary table foreach of them. These tables will be of type "TEMPORARY TABLE" and are listed when selecting from "sys_tables". Example of a complex mutation:
statement.execute("INSERT INTO productCreate_metafields#TEMP(namespace,key,value,type) VALUES('MRproductInfo','ALU','449788022','string')");
statement.execute("INSERT INTO productCreate_variants#TEMP(RowId,price,sku,inventoryManagement,weightUnit,weight,options,metafields,inventoryQuantities) VALUES(1,'39.99','38536314-0acb-4d3f-b8ff-a0f2014d2c75','SHOPIFY','POUNDS',1,'L,XL,XXL','productCreate_variants_metafields#TEMP','productCreate_variants_inventoryQuantities#TEMP')");
statement.execute("INSERT INTO productCreate_variants_metafields#TEMP(ParentId,namespace,key,value,type) VALUES('1','MRproductInfo','ALU','449788022-M-','string')");
statement.execute("INSERT INTO productCreate_variants_metafields#TEMP(ParentId,namespace,key,value,type) VALUES('1','MRproductInfo','ItemNumber','400000881201','string')");
statement.execute("INSERT INTO productCreate_variants_inventoryQuantities#TEMP(ParentId,locationId,availableQuantity) VALUES('1','gid://shopify/Location/1448223412312389678762340087',5)");
statement.execute("INSERT INTO productCreate_media#TEMP(originalSource,alt,mediaContentType) VALUES('https://sampleUrl.com','Magic Shoes','IMAGE')");
statement.execute("EXECUTE productCreate title='Shoes - 449788022', descriptionHtml=' - MEN\\'S SHOES 42-MENS L/S TEES'," +
" productType='Staging', vendor='Shoes Company', published='false', options='size,width'," +
" metafields='productCreate_metafields#TEMP', variants='productCreate_variants#TEMP', media='productCreate_media#TEMP'");
|
| 10/27/2021 | 7970 | JDBC | Changed
|
| 10/25/2021 | 7968 | GraphQL | Added
|
| 09/12/2021 | 7925 | JDBC | Removed
- Removed the IS_READONLY, IS_KEY, NUMERIC_PRECISION, and DECIMAL_DIGITS columns from DatabaseMetadata.GetColumns(), as they are not part of the JDBC Specification. This information is still available via other metadata calls.
|
| 09/02/2021 | 7915 | General | Added
- Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
|
| 08/07/2021 | 7889 | General | Changed
- Added the KeySeq column to the sys_foreignkeys table.
|
| 08/06/2021 | 7888 | General | Changed
- Added the new sys_primarykeys system table.
|
| 07/23/2021 | 7874 | General | Changed
- 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.
|
| 04/23/2021 | 7783 | General | Changed
- 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/2021 | 7776 | General | Changed
- Reduced the length to 255 for varchar primary key and foreign key columns.
Changed
- Updated index naming convention to avoid duplicates.
|
| 04/16/2021 | 7776 | General | Changed
- 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.
|