============================================================================== Magnitude Simba Amazon Redshift JDBC Data Connector Release Notes ============================================================================== The release notes provide details of enhancements, features, known issues, and workflow changes in Simba Amazon Redshift JDBC Connector 1.2.56, as well as the version history. 1.2.56 ======================================================================= Released 2022-05-03 Enhancements & New Features * [PGJDBC-963] Updated Jackson libraries The connector now uses the following libraries for the Jackson JSON parser: - jackson-annotations-2.13.2 (previously 2.11.3) - jackson-core-2.13.2 (previously 2.11.3) - jackson-databind-2.13.2.2 (previously 2.11.3) - jackson-dataformat-cbor-2.13.2 (previously 2.11.3) Resolved Issues The following issues have been resolved in Simba Amazon Redshift JDBC Connector 1.2.56. * [PGJDBC-785] When the connector is closed without closing the connection, JVM is unable to exit. * [PGJDBC-955] In some cases, the precision and scale of getProcedureColumns does not match its definition. * [PGJDBC-956] The translation of escape sequence IFNULL is incorrectly set to NVL2. This issue has been resolved. The translation of escape sequence IFNULL is now set to NVL. Known Issues The following are known issues that you may encounter due to limitations in the data source, the connector, or an application. * [PGJDBC-907] Strings containing PWD not parsed correctly. If the property name following PWD is not a valid property name supported by Redshift, it is treated as a part of the PWD value. This is because PWD can contain '&', ';' and '=' meaning the connector does not know where the PWD value stops until it finds the next valid property name following a ';'. For example: - jdbc:redshift://[HOST]:5439/simba?UID=[UID]&PWD=[PWD]&BlockingRowsMode=0: the extracted PWD is [PWD]. - jdbc:redshift://[HOST]:5439/simba?UID=[UID]&PWD=[PWD]&UnknownSetting=0: the extracted PWD is [PWD]&UnknownSetting=0. * [PGJDBC-888] The connector does not accept multi-statement queries that contain output parameters. * [PGJDBC-872] The connector does not support daylight saving time when inserting TIMETZ data in PreparedStatement's setObject() and setTime() functions. * [PGJDBC-873] The connector cannot return the fractional seconds and timezone components for TIMETZ data in CallableStatement's getTime() function when it is used for stored procedure output parameter. * The connector cannot return REFCURSOR data as OBJECT data for Redshift instances running on a single-node cluster. When working with a single-node cluster, the connector can only return REFCURSOR data as VARCHAR data. This limitation exists because single-node clusters do not support the FETCH ALL command syntax that is required for returning REFCURSOR data as OBJECT data. If you attempt to retrieve REFCURSOR data this way, the connector returns the following error message: "FETCH ALL not supported in single-node clusters". * Temporal functions are returned as UTC dates or timestamps. In the latest version of the open-source PostgreSQL driver, temporal functions are returned in the user's local time zone. Version 8.4 of the open-source connector returns temporal functions as UTC dates or timestamps instead. The Simba Amazon Redshift JDBC Connector is consistent with version 8.4 of the open-source driver. Workflow Changes ============================================================= The following changes may disrupt established workflows for the connector. 1.2.50 ----------------------------------------------------------------------- * New third-party dependency Beginning with this release, the driver uses the third-party library antlr4-4.5.3.jar. 1.2.40 ----------------------------------------------------------------------- * Removed support for JDBC 4.0 and 4.1 (Java 6 and 7) Beginning with this release, the driver no longer supports JDBC 4.0 (Java 6) and JDBC 4.1 (Java 7). For a list of supported JDBC versions, see the Installation and Configuration Guide. Version History ============================================================== 1.2.55 ----------------------------------------------------------------------- Released 2021-07-09 Enhancements & New Features * [PGJDBC-802] Java 11 support The connector now supports Java 11. For supported Java versions, see the Installation and Configuration Guide. Resolved Issues The following issues have been resolved in Simba Amazon Redshift JDBC Connector 1.2.55. * [PGJDBC-822] getObject(int, Class) does not support the BigInteger class. * [PGJDBC-830] getObject(int, Class) does not support the LocalDateTime and OffsetDateTime classes. This issue has been resolved. Support for the LocalDateTime and OffsetDateTime classes, and special handling for infinity and -infinity timestamp conversions have now been added to getObject(int, Class). * [PGJDBC-926] When executing a query and the server returns an error message with a hint, the connector does not display the hint. * [PGJDBC-937] When executing the "UNLOAD ('select-statement') TO 's3:// object-path/name-prefix' authorization [ option [ ... ] ]" command and the 'select-statement' query contains a semi-colon ( ; ), the connector returns a "no viable alternative" error. * [PGJDBC-938] When SSL is set to false and IAM authentication is used, the connector attempts to connect. This issue has been resolved. Now, in this case, the connector returns an error immediately and does not attempt to connect. * [PGJDBC-938] When AuthMech is set to DISABLE, the connector connects to the server through TLS/SSL. * [PGJDBC-941] When calling getProcedureColumns() and getFunctionColumns() for variable length data types, the connector returns NULL for the COLUMN_SIZE and BUFFER_LENGTH columns. * [PGJDBC-942] When executing the "UNLOAD ('select-statement') TO 's3:// object-path/name-prefix' authorization [ option [ ... ] ]" command, the connector does not identify the double-quoted identifiers correctly in the 'select-statement' query and replaces the generic SQL parameter "?" markers with the Redshift "$i" markers. * [PGJDBC-950] When a NoticeResponse message is received during the prepare phase, the connector becomes unresponsive. 1.2.53 ----------------------------------------------------------------------- Released 2021-01-29 Enhancements & New Features * [PGJDBC-928][PGJDBC-929] Updated Jackson libraries The driver now uses the following libraries for the Jackson JSON parser: - jackson-annotations-2.11.3 (previously 2.10.1) - jackson-core-2.11.3 (previously 2.10.1) - jackson-databind-2.11.3 (previously 2.10.1) - jackson-dataformat-cbor-2.11.3 (previously 2.10.1) * [PGJDBC-917] Updated Antlr library The driver now uses antlr4-runtime-4.8-1.jar. Previously, the driver used antlr4-4.5.3.jar. Resolved Issues The following issues have been resolved in Simba Amazon Redshift JDBC Driver 1.2.53. * [PGJDBC-833] For non-external tables, when the percent sign (%) is used as the schemaPattern for getTables() or getColumns(), the driver returns an empty result set. * [PGJDBC-916] When setting a NULL value as the first parameter index using setObject() in batch execution, the driver returns a NullPointerException. * [PGJDBC-931] When retrieving a large number of IAM connections, a throttling issue occurs. * [PGJDBC-931] The AWS credentials expire earlier than expected. 1.2.52 ----------------------------------------------------------------------- Released 2020-12-11 Enhancements & New Features * [PGJDBC-913] Return metadata from multiple data stores The driver can now return metadata from multiple Redshift databases and clusters. To enable this, set the DatabaseMetadataCurrentDbOnly property to 0. For more information, see the Installation and Configuration Guide. * [PGJDBC-911] Query group labels The driver can now apply a user-defined label to all queries made from a connection. To do this, specify the label with the QueryGroup connection property. For more information, see the Installation and Configuration Guide. * [PGJDBC-905] Improved block comment recognition Block comment (/* ..... */) recognition has been improved, making query processing faster. * [PGJDBC-900] Improved driver logging The driver logging has been improved for IAM connections. Resolved Issues The following issues have been resolved in Simba Amazon Redshift JDBC Driver 1.2.52. * [PGJDBC-891] The driver mistakenly recognizes any occurrence of $[tag]$ (.)* $[tag]$ as a dollar-quoted string. As a workaround, if the same identifier containing a $ is used in a query, the identifier must be enclosed in double quotes ("). * [PGJDBC-891] User defined operators containing a question mark (?) are not processed correctly. This issue has been resolved. Now, a question mark at the beginning and/or end of a user defined operator is recognized as a parameter and not as a part of the operator as there is no way to distinguish if '?' is part of the operator or not in this case. * [PGJDBC-914] The driver incorrectly translates "CALL procedureName(arg1, arg2, ... argi)" to "SELECT procedureName(arg1, arg2, ... argi)" when it fails to retrieve parameter information for the procedure. This issue has been resolved. Now, if the CALL statement is not enclosed in curly braces ( { } ), there are no modifications done to the query. * [PGJDBC-914] The driver incorrectly treats a quoted identifier as the actual procedure name when trying to retrieve procedure parameter information, and therefore is not able to find the procedure information. This issue has been resolved. The driver now strips double quotes around the procedure name for quoted identifiers before attempting to retrieve the procedure information. * [PGJDBC-904] In some cases, when using the Browser Azure AD plugin, a race condition occurs and the connection fails intermittently. * [PGJDBC-907] In some cases, using a password in a connection URL causes the connection to fail with the error message "[Simba](500310) Invalid operation: password authentication failed for user "xxxx".", even when the password is correct. * [PGJDBC-908] In some cases, batches with multiple parameter sets are not initialized correctly. * [PGJDBC-919] When SQLProcedureColumns() is called for a stored procedure with multiple OUT parameters, only one OUT parameter is returned. * [PGJDBC-835] When using getClientInfoProperties, NAME returns APPLICATIONNAME. This issue has been resolved. Now, ApplicationName is returned. * [PGJDBC-836][PGJDBC-867] getSchemas() does not narrow down results to the specified schemaPattern. 1.2.50 ----------------------------------------------------------------------- Released 2020-09-10 Resolved Issues The following issue has been resolved in Simba Amazon Redshift JDBC Driver 1.2.50. * [PGJDBC-890] If a query contains a question mark (?) inside double quotes ("), and the query uses the = comparator before a dollar quoted string, the driver does not properly parse the query. 1.2.49 ----------------------------------------------------------------------- Released 2020-09-04 Enhancements & New Features * [PGJDBC-870] Improved query processing The query processing engine can now properly identify comments and quoted strings, and therefore process queries correctly. * [PGJDBC-877] Filter DbGroups You can now configure the driver to filter all DbGroups that are received from the SAML response in the Azure, Browser Azure, and Browser SAML authentication types. To do this, specify the filter with the DbGroupsFilter connection property. For more information, see the Installation and Configuration Guide. * [PGJDBC-809] Support for registerOutParameter The driver now supports registerOutParameter with a parameter name for stored procedures. * [PGJDBC-876] Rename OMNI datatype to SUPER Data of type OMNI is now known as SUPER. For more information, see the Installation and Configuration Guide. Resolved Issues The following issues have been resolved in Simba Amazon Redshift JDBC Driver 1.2.49. * [PGJDBC-866] When using getTypeInfo with PRECISION and MAXIMUM_SCALE columns, the driver returns incorrect values. * [PGJDBC-875] When java.sql.DatabaseMetaData is not used, read-only mode is not set. * [PGJDBC-879] When BlockingRowsMode is enabled, query cancel is unresponsive. * [PGJDBC-882] When executing a parameterized SELECT query with a SUPER (previously named OMNI) column in the WHERE clause, the driver returns an error. * [PGJDBC-883] When the IAM role is set to the China region, the driver fails to parse a SAML assertion. * [PGJDBC-884] When SQLColumns is called for NUMERIC and DECIMAL columns in late binding view, the driver returns an error. * [PGJDBC-886] If more than one TIME data is selected, fractional seconds are not included in the column. 1.2.47 ----------------------------------------------------------------------- Released 2020-08-14 Enhancements & New Features * [PGJDBC-820] Support for getFunctions() The driver now supports the getFunctions() catalog function. * [PGJDBC-810] Support for getFunctionColumns() The driver now supports the getFunctionColumns() catalog function. * [PGJDBC-838] Support for OMNI data The driver now supports data of type OMNI. For more information, see the Installation and Configuration Guide. * [PGJDBC-839] Support for TIME data The driver now supports data of types TIME and TIMETZ. For more information, see the Installation and Configuration Guide. * [PGJDBC-850] Specify relying party trusts You can now configure the driver to allow different relying party trusts for AD FS authentication. To do this, specify the relying party with the loginToRp connection property. For more information, see the Installation and Configuration Guide. * [PGJDBC-752] Support for read-only mode You can now configure the driver to use read-only mode. To do this, set the new ReadOnly property to true. For more information, see the Installation and Configuration Guide. Additionally, you can change the read-only settings by using the setReadOnly API call. Resolved Issues The following issue has been resolved in Simba Amazon Redshift JDBC Driver 1.2.47. * [PGJDBC-821] DatabaseMetaData.supportsBatchUpdates is incorrectly set to false. This issue has been resolved. DatabaseMetaData.supportsBatchUpdates is now set to true to match the driver capability. * [PGJDBC-842] When a cluster restarts, the driver becomes unresponsive. * [PGJDBC-849] When using PreparedStatement, query cancel is unresponsive after retrieving the first few rows. * [PGJDBC-852] When there are multiple RAISE statements in a stored procedure, the driver does not return values. * [PGJDBC-854] When retrieving a NULL value using getString() from a column of GEOMETRY data type, the driver returns a NullPointerException. * [PGJDBC-862] When getProcedureColumns is called more than once within the same connection, the driver returns an error. * [PGJDBC-863] When using IAM authentication, the SAML response parsing is not secure. * [PGJDBC-864] When using IAM authentication, the profile name in ~/.aws/config is not detected. * [PGJDBC-865] When using numeric data in late binding views, the driver returns incorrect DECIMAL_DIGITS values in SQLColumns. 1.2.45 ----------------------------------------------------------------------- Released 2020-06-12 Enhancements & New Features * [PGJDBC-806] Lowercase DbGroups You can now configure the driver to lowercase all DbGroups that are received from the identity provider. To do this, set the new ForceLowercase property to true. For more information, see the Installation and Configuration Guide. * [PGJDBC-763] Support for GEOMETRY data The driver now supports data of type GEOMETRY. For more information, see the Installation and Configuration Guide. Resolved Issues The following issue has been resolved in Simba Amazon Redshift JDBC Driver 1.2.45. * [PGJDBC-813] When a query in SQLWorkbench is cancelled, the driver becomes unresponsive. * [PGJDBC-815] When the Java application uses com.amazon.redshift.api.PGTimestamp directly, an exception occurs. * [PGJDBC-795] The function getProcedureColumns() returns incorrect COLUMN_TYPE, ORDINAL_POSITION, and NULLABLE columns. * [PGJDBC-795] The function getColumns() does not return the IS_GENERATEDCOLUMN column. * [PGJDBC-819] When getProcedures() is called without a schema name filter and with a procedure name filter, it returns incorrect results. * [PGJDBC-798] When the schema name includes unicode characters and the JVM is set to use the windows-1252 character set, the driver is unable to fetch table names using catalog functions. * [PGJDBC-803] The getColumns() metadata for an external table returns "unknown type". * [PGJDBC-787] When the driver uses SSO authentication, it sends duplicate parameters and the authentication request fails. * [PGJDBC-824] When the driver uses PingFederate authentication, the driver incorrectly sends the password to a "passwordReset" field and the authentication fails. * [PGJDBC-788] The driver cannot parse dollar-quoted string constants with a tag of one or more characters. * [PGJDBC-796] The driver does not allow the usage of DCL, DDL or DML keywords as table names or column names in a statement when setReadOnly is set. * [PGJDBC-800] Poor handling when user interrupts driver execution. This issue has been resolved. The driver now handles InterruptedException and sends a cancel request to the server. 1.2.42 ----------------------------------------------------------------------- Released 2020-05-03 Enhancements & New Features * [PGJDBC-778] Updated Jackson libraries The driver now uses version 2.10.1 of the Jackson libraries. Resolved Issues The following issue has been resolved in Simba Amazon Redshift JDBC Driver 1.2.42. * [PGJDBC-780][PGJDBC-781][PGJDBC-782] In some cases, the driver returns an error. This issue has been resolved. A parsing error in the driver JAR file for version 1.2.40 has been fixed. 1.2.40 ----------------------------------------------------------------------- Released 2020-02-14 Enhancements & New Features * [PGJDBC-776] IAM authentication with browser plugin You can now use a browser plugin to authenticate your connection through your identity provider's website. For more information, see the Installation and Configuration Guide. * [PGJDBC-759] Begin transactions with START TRANSACTION You can now use START TRANSACTION as a command to start a transaction. * [PGJDBC-767] Improved Azure AD error messages The driver now provides more comprehensive error messages for the Azure AD plugin. * [PGJDBC-762] Removal of SLF4J dependency The driver no longer includes SLF4J as a dependency. * Azure AD authentication The driver now supports authentication through Azure AD. For more information, see the Installation and Configuration Guide. * SAML assertion included in driver log If single sign-on authentication is used and the DSILogLevel connection property is set to 6, the driver now always logs the SAML assertion. * Use DbUser from SAML assertion The driver can now override the specified DbUser value with a value from the SAML assertion. To enable this, set the new AllowDBUserOverride connection property to 1. For more information, see the Installation and Configuration Guide. Resolved Issues The following issues have been resolved in Simba Redshift JDBC Driver 1.2.40. * [PGJDBC-754] The driver does not correctly parse strings that contain both escaped backslash ( \ ) and escaped single quote ( ' ) characters. * [PGJDBC-755] In some cases, the driver incorrectly reports a column's nullability as "Not Nullable" instead of "Unknown". * [PGJDBC-757] In some cases, the driver incorrectly parses strings using C-style escapes. * [PGJDBC-758] If you cancel a query before the query is in execution, the driver returns an error. This issue has been resolved. Now, if you cancel a query before the query is in execution, the cancellation is ignored. However, the cancel request is still recorded in the driver logs. * [PGJDBC-761] If the data source does not provide a column length, the driver returns an error. * [PGJDBC-769] The driver does not return time zone information when returning a string representation of a timestamp. * In some cases, the driver is unable to parse complex queries. 1.2.36 ----------------------------------------------------------------------- Released 2019-10-24 Enhancements & New Features * Optimization of catalog functions Prepared statement reuse now includes the external schema check query. This improves the performance of catalog functions. * Enhanced support for query timeout The driver now supports Statement.setQueryTimeout, to indicate how many seconds the driver waits for the Statement object to execute before sending a cancel message to the server. * Full support for REFCURSOR parameters in stored procedures When connected to Redshift instances that are running on a multi-node cluster, the driver is now able to retrieve REFCURSOR parameters as OBJECT data. * Support for read-only connections The driver now supports the Connection.setReadOnly() method. This is used to indicate if the connection should have read-only privileges. Resolved Issues The following issues have been resolved in Simba Redshift JDBC Driver 1.2.36. * If the driver receives a Notice response while reading data, it terminates unexpectedly. This issue has been resolved. Now the driver continues reading data until it receives a Ready For Query or Error response. * The driver sends TCP keepalive packets on a different connection than the one being used to access Redshift data. * The driver ignores empty fields in data arrays. * When you query data from an S3 folder that contains the "like" keyword in its name, the query fails due to a parsing issue. * In some cases, when Connection.setReadOnly() is set to true, queries that involve large amounts of data run more slowly than expected. * Error reporting does not catch all exceptions that occur during data retrieval. * Driver does not correctly parse strings with complex combinations of escaped and non-escaped single quote ( ‘ ) and double quote ( “ ) characters. * Java file descriptors are retained after the connection is closed. * Empty fields in a data array are ignored. * Driver fails to properly escape question marks ( ? ) in a PreparedStatement. * PreparedStatement parameters in some multi-threaded environments are not correctly populated. * In some cases, the driver fails to connect when using Okta and the Oracle SQL Developer client application. * Stored procedure calls with the syntax "? = call [sp_name]" are not parsed correctly. * In some cases, parameters are not bound correctly for stored procedures that only have IN parameters. * In some cases, quotation marks ( " ) are not escaped correctly. * In cases where there are multiple stored procedures with the same name, and the user calls one of them, the driver picks the first one in the list. This issue has been resolved. In this situation, the driver now displays an error stating that there are multiple stored procedures with that name, and the query fails. =============================================================================