12 SALESFORCE

============================================================================= Simba Salesforce ODBC Driver with SQL Connector Release Notes =============================================================================

The release notes provide details of enhancements, features, and known issues in Simba Salesforce ODBC Driver 2.2.5, as well as the version history.

2.2.5 =======================================================================

Released 2018-11-20

Enhancements & New Features

  • [SF-587] More informative SSL error messages

    The driver now provides more detailed error messages for TLS/SSL errors.

  • [SF-594] Standardized log file names

    When logging is enabled, the driver now produces the following log files:

    • A simbasalesforceodbcdriver.log file that logs driver activity that is not specific to a connection.

    • A simbasalesforceodbcdriver_connection_[Number].log for each connection made to the database, where [Number] is a number that identifies each log file. This file logs driver activity that is specific to the connection.

  • [SF-605] Minimum TLS option now available through the Windows UI

    When using the driver on Windows, you can now configure the Minimum TLS option (or the Min_TLS property) through the DSN Setup dialog box. For more information, see the Installation and Configuration Guide.

  • [SF-614] Updated default behavior for the URL property

    If you set the URL connection property to an empty string, the driver now defaults to using https://login.salesforce.com as the value.

Resolved Issues The following issues have been resolved in Simba Salesforce ODBC Driver 2.2.5.

  • [SF-655] In some cases, when attempting to parse a query that contains an IN clause as a SQL statement, the driver might generate a SOQL statement that is not correctly escaped.

  • [SF-540] In some cases, when parsing queries as SQL statements, the driver cannot handle correlation names that contain a derived column list.

  • [SF-592] When the driver is configured to execute reports using the Salesforce Reports and Dashboards REST API, the driver retrieves URLs as HTML instead of standard String data.

  • [SF-597] In some cases, when the driver is configured to execute reports using the report URL, the order in which the driver reads the rows unexpectedly changes the column metadata.

  • [SF-646] The driver returns empty strings differently depending on whether or not the Bulk API is being used to retrieve data.

    This issue has been resolved. Before, the driver returned empty strings as NULL values when using the Bulk API, but returned empty strings as is when using the REST API instead. The driver now consistently returns empty strings as NULL values.

  • [SF-649] In some cases, when a query does not result in any data being fetched from the Salesforce server, the driver terminates unexpectedly.

Known Issues The following are known issues that you may encounter due to limitations in the data source, the driver, or an application.

  • [SF-625] NULL characters are not supported in reports.

    The driver truncates the NULL characters from the reports.

  • In some cases, an object that contains a JunctionIdList does not return all of the data.

    This is a limitation of Salesforce. As a workaround, you can disable JunctionIDs by clearing the Enable JunctionIDLists check box or setting the EnableJunctionIDLists configuration property to 0.

  • The driver only supports stored procedures (Salesforce reports) for Salesforce Classic.

  • Text area fields return string data “as is” from the REST API, possibly returning carriage-return line-feed sequences instead of
    line-feeds only, as was usual for the SOAP API.

  • There are rounding discrepancies between SOAP, REST and Bulk API when using the SOQL CONVERTCURRENCY scalar function.

  • NULL vs empty string results when using the SOQL FORMAT scalar function.

    Due to the way data is mapped, there is no way for the driver to differentiate empty and NULL values in the CSV results that the Bulk API returns. You must use REST for empty string data.

  • The CONVERTCURRENCY, DISTANCE, and FORMAT functions are not supported in filters.

    These SOQL functions and their aliases cannot be used in filters. Only fields can be used in filters.

  • The following SQL features are not supported by the driver:
    • Typeof
    • Offset
    • With
  • Binary data types are not supported for INSERT, UPDATE, and DELETE statements.

  • Support for the Encrypted TextArea custom field type is limited.

    The driver retrieves the field as a string of asterisks (for example, "***"), which may cause filtering to be incorrect.

  • Query processing is not optimal when GROUP BY returns large result sets.

    Normally, when a result set exceeds 2000 rows, the driver will use the queryMore() call and a server-side cursor to retrieve additional rows in 1000-row chunks. Doing so allows the query to be processed efficiently. However, if the query contains a GROUP BY clause, then queryMore() cannot be used. In this case, you must change the filtering conditions to query data in smaller chunks.

  • SQL string operators are case-sensitive.

    Although Salesforce uses case-insensitive matching for string operators such as “=” and “LIKE”, the driver processes SQL string operators in a case-sensitive manner.

  • Restrictions in queries may not be enforced during the prepare stage.

    A query may succeed during the prepare stage even if it violates one of the following:
    • Restrictions on using ToLabel() in the filter clause.
    • Restrictions on using fields in the HAVING clause.
    • Restrictions on the operations that can be performed for specific data types. For example, ORDER BY is not supported for the following data types:
      • Multi-select picklist
      • Rich text area
      • Long text area
      • Encrypted The query fails when it is executed.

Workflow Changes ============================================================

The following changes may disrupt workflows from earlier versions.

2.2.1 ————————————————————————

  • Minimum TLS Version

    Beginning with this release, the driver requires a minimum version of TLS for encrypting the data store connection. By default, the driver requires TLS version 1.2. This requirement may cause existing DSNs and connection strings to stop working, if they are used to connect to data stores that use a TLS version earlier than 1.2.

    To resolve this, in your DSN or connection string, set the Minimum TLS option (the Min_TLS property) to the appropriate version of TLS for your server. For more information, see the Installation and Configuration Guide.

Version History ==============================================================

2.2.4 ————————————————————————

Released 2018-09-27

Resolved Issues The following issues have been resolved in Simba Salesforce ODBC Driver 2.2.4.

  • [SF-629] In some cases, the driver terminates unexpectedly.

    This issue has been resolved. The driver has been updated with a number of checks that prevent this issue from occurring.

  • [SF-631] In some cases, if the Bulk API is being used for data retrieval and you call a SOQL function that contains relationships, the function fails and the driver returns an error.

2.2.3 ————————————————————————

Released 2018-08-27

Resolved Issues The following issues have been resolved in Simba Salesforce ODBC Driver 2.2.3.

  • [SF-610] The driver returns truncated data or an error if a NULL ‘\0’ value is part of a query result.

  • [SF-612] In some cases, driver dependencies are not properly loaded.

  • [SF-621] In some cases, the bulk API fails to generate correct URI information.

2.2.2 ————————————————————————

Released 2018-08-03

Resolved Issues The following issue was resolved in Simba Salesforce ODBC Driver 2.2.2.

  • [SF-612] Queries made using the Composite resource may contain fewer fields than expected.

    This issue has been resolved. The driver no longer attempts to use the Composite resource.

2.2.1 ———————————————————————–

Released 2018-07-11

Enhancements & New Features

  • [SF-590] Updated third-party dependencies

    The driver now uses libcURL 7.60.0 and zlib 1.2.11. As a result, several security features in the driver have been improved.

  • [SF-591] Minimum TLS support

    You can now specify the minimum version of TLS the driver accepts when authenticating the connection to the data source.

Resolved Issues The following issue has been resolved in Simba Salesforce ODBC Driver 2.2.1.

  • [SF-582] Large queries made through the REST API may time out.

    This issue has been resolved. Now, if a query times out while the REST API is being used, the driver attempts to fall back to the Bulk API. While timeouts may still occur when using the Bulk API, the Bulk API timeout setting is larger than the REST API timeout setting.

2.2.0 ———————————————————————–

Released 2018-05-31

Enhancements & New Features

  • Additional join passdowns

    The driver now passes down additional relationship queries.

  • Configurable JunctionIdList support

    By default, the JunctionIdList feature is enabled. To disable it, clear the Enable Junction ID Lists check box, or set the EnableJunctionIDLists configuration property to 0. For more information, see the Installation and Configuration Guide.

  • Improved child-to-parent relationship queries

    The driver now uses the Bulk API to process child-to-parent relationship queries. This improves the response time of the driver for these queries.

  • Composite call support

    The driver now supports the Composite call. Using this call reduces the number of API calls made and speeds up REST API queries.

Resolved Issues The following issues have been resolved in Simba Salesforce ODBC Driver 2.2.0.

  • When resolving certain prepared queries that are executed multiple times, the driver returns an error.

  • In some cases, join queries use an incorrect column mapping.

  • In some cases, the metadata for a column that is passed down in a join query or SOQL scalar function is inaccurate.

  • When querying through the SOAP API, some results are incorrectly interpreted as a JunctionIdList.

  • When the driver encounters a picklist value that is larger than the reported maximum, it stops retrieving data and returns an error.

  • If a user without permission to view reports attempts to retrieve a report, the driver terminates unexpectedly.

  • Prepared queries that are retrieved with the REST API and that return a large number of results may cause the driver to stop responding.

  • The driver generates incorrect SOQL for queries with passed-down joins that do not contain projections.

  • Queries that contain a parent-to-child query that returns a large number of results may cause the driver to become nonresponsive.

  • Incorrect default date for the “DatedConversionRate” object.

    This issue has been resolved. “StartDate” is now rounded to year 1, and is returned as the default date.

  • Incorrectly rounded numbers might be retrieved when using the REST API in numeric mode.

==============================================================================