2 BIGQUERY

============================================================================= Simba ODBC Driver with SQL Connector for Google BigQuery Release Notes =============================================================================

The release notes provide details of enhancements, features, and known issues in Simba ODBC Driver for Google BigQuery 2.1.21, as well as the version history.

2.1.21 ========================================================================

Released 2018-12-20

Resolved Issues The following issue was resolved in Simba ODBC Driver for Google BigQuery 2.1.21.

  • [GAUSS-733] The macOS driver does not work as expected, due to dependencies being omitted in the installation process.

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

  • When casting data, you must specify the data type according to Google BigQuery standards.

    When casting data to a specific data type, you must use the corresponding data type name shown in the “Casting” section of the Query Reference: https://cloud.google.com/bigquery/sql-reference/functions-and-operators#casting

    For example, to cast the “salary” column to the INTEGER type, you must specify INT64 instead of INTEGER:

    SELECT position, CAST(salary AS INT64) from Employee

  • When using the Standard SQL dialect, the driver’s ODBC escape functionality is subject to the following limitations:

    • Standard SQL does not support the seed in the RAND([seed]) scalar function. As a result, the driver maps RAND() and RAND(6) to RAND().

    • For the following scalar functions, BigQuery only returns values in UTC, but ODBC expects the values in local time:
      • CURDATE()
      • CURRENT_DATE()
      • CURRENT_TIME[(TIME_PRECISION)]
      • CURRENT_TIMESTAMP[(TIME_PRECISION)]
      • CURTIME()
      • NOW()
    • Time precision values are not supported for the CURRENT_TIME[(TIME_PRECISION)] and CURRENT_TIMESTAMP[(TIME_PRECISION)] scalar functions.

    • TIME data types are not supported for the following scalar functions:
      • EXTRACT(interval FROM datetime)
      • TIMESTAMPADD(interval,integer_exp,timestamp_exp
      • TIMESTAMPDIFF(interval,timestamp_exp1,timestamp_exp2) For TIMESTAMPADD and TIMESTAMPDIFF, only the TIMESTAMP and DATE data types are supported.
    • When calling the TIMESTAMPADD() scalar function to work with DAY, WEEK, MONTH, QUARTER, or YEAR intervals, the driver escapes the function and calls DATE_ADD() instead. DATE_ADD() only supports DATE types, so time information is lost if the function is called on TIMESTAMP data.

    • When calling the TIMESTAMPDIFF() scalar function to work with DAY, MONTH, QUARTER, or YEAR intervals, the driver escapes the function and calls DATE_DIFF() instead. DATE_DIFF() only supports DATE types, so time information is lost if the function is called on TIMESTAMP data.

    • For the BIT_LENGTH scalar function, only the STRING and BYTES data types are supported. This behavior aligns with the SQL-92 specification, but not the ODBC specification.

  • When using the Legacy SQL dialect, the driver’s ODBC escape functionality is subject to the following limitations:

    • For the following scalar functions, BigQuery only returns values in UTC, but ODBC expects the values in local time:
      • CURDATE()
      • CURRENT_DATE()
      • CURRENT_TIME[(TIME_PRECISION)]
      • CURRENT_TIMESTAMP[(TIME_PRECISION)]
      • CURTIME()
    • Time precision values are not supported for the CURRENT_TIME[(TIME_PRECISION)] and CURRENT_TIMESTAMP[(TIME_PRECISION)] scalar functions.

    • For the following scalar functions, TIME data types are not supported. Only the TIMESTAMP and DATE data types are supported.
      • TIMESTAMPADD(interval,integer_exp,timestamp_exp
      • TIMESTAMPDIFF(interval,timestamp_exp1,timestamp_exp2)

Breaking Changes =============================================================

The following changes may disrupt workflows from earlier versions.

2.1.14 ———————————————————————–

  • 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.

  • Large result set handling

    If you have a default destination set for large datasets but have not enabled the Allow Large Result Sets option (the AllowLargeResults property) the driver reports an error.

    To resolve this, enable the Allow Large Result Sets option (the AllowLargeResults property).

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

2.1.20 ———————————————————————–

Released 2018-11-30

Enhancements & New Features

  • [GAUSS-716] Dynamically linked third-party libraries

    The Linux driver has been updated to use dynamically linked libraries for ICU and OpenSSL. The installation directory now includes a “ThirdParty” directory which contains all required runtime libraries for the driver.

2.1.19 ———————————————————————–

Released 2018-11-15

Enhancements & New Features

  • [GAUSS-694] Support for Geography data type

    The driver now supports the Geography data type, mapping it to SQL_VARCHAR or SQL_WVARCHAR depending on the driver configuration. For more information, see the Installation and Configuration Guide.

  • [GAUSS-675] Updated OAuth access token URL

    The URLs for requesting OAuth access token has been updated to Google’s new endpoints.

Resolved Issues The following issue was resolved in Simba ODBC Driver for Google BigQuery 2.1.19.

  • [GAUSS-697] SQLGetTypeInfo reports support for VARCHAR data type only.

    This issue has been resolved. The driver has been updated to display type information for SQL_WVARCHAR data type when this is directly queried with SQLGetTypeInfo.

2.1.18 ———————————————————————–

Released 2018-10-04

Enhancements & New Features

  • [GAUSS-675] Updated OAuth endpoint

    The driver now uses the most recent Google endpoint for requesting OAuth user and service access tokens.

  • [GAUSS-697] Added SqlGetTypeInfo support for WVARCHAR

    The driver now displays type information for the SQL_WVARCHAR type when that type is queried with the SqlGetTypeInfo function.

  • [GAUSS-654] Additional SQL data type support

    The driver now maps a number of SQL data types to their BigQuery equivalents. For a complete list, see “Data Types” in the Installation and Configuration Guide.

2.1.17 ———————————————————————–

Released 2018-09-13

Enhancements & New Features

  • [GAUSS-677] Support for querying datasets hosted in specific geographic locations

    You can now query datasets that are hosted in specific geographic locations. For more information, see the Google BigQuery documentation on “Dataset Locations”: https://cloud.google.com/bigquery/docs/dataset-locations

  • [GAUSS-686] Data type DATETIME mapped to SQL_TYPE_TIMESTAMP

    The Google BigQuery data type DATETIME is now mapped to the SQL data type SQL_TYPE_TIMESTAMP. Previously this data type was mapped to the SQL data type SQL_VARCHAR.

Resolved Issues The following issues have been resolved in Simba ODBC Driver for Google BigQuery 2.1.17.

  • [GAUSS-674] On Linux, the driver library file size is larger than expected.

  • [GAUSS-684] SQLColumns calls do not display the details of BigQuery NUMERIC columns.

2.1.16 ———————————————————————–

Released 2018-07-24

Enhancements & New Features

  • [GAUSS-636] 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.

  • [GAUSS-650] Standardized log file names

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

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

    • A simbagooglebigqueryodbcdriver_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.

  • [GAUSS-668] Support for DATA_AT_EXEC

    You can now query the data source with parameter sets whose members and lengths can be determined by data at execution time.

  • [GAUSS-634] Ignoring Transaction Data

    The driver can now be configured to ignore transaction data in query results. To do this, enable the IgnoreTransactions configuration option. For details, see the Installation and Configuration Guide.

  • [GAUSS-663] Support for MERGE

    The driver now supports MERGE as a DML statement.

Resolved Issues The following issue has been resolved in Simba ODBC Driver for Google BigQuery 2.1.16.

  • [GAUSS-621] In some cases, when the application pushes parameter data through calls to paramData, the subsequent attempt to read a bounded parameter results in an exception.

2.1.15 ———————————————————————–

Released 2018-07-24

Enhancements & New Features

  • [GAUSS-660] Internal driver improvements

    The driver has been updated with minor internal improvements.

2.1.14 ———————————————————————–

Released 2018-07-20

Enhancements & New Features

  • [GAUSS-651] Minimum TLS support

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

  • [GAUSS-657] 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.

Resolved Issues The following issue was resolved in Simba ODBC Driver for Google BigQuery 2.1.14.

  • [GAUSS-653] The driver cannot perform large queries in Standard SQL, even when the Allow Large Result Sets option is enabled.

2.1.13 ———————————————————————–

Released 2018-06-28

Enhancements & New Features

  • Updated libcURL library

    The driver now uses libcURL 7.60.0. Previously, the driver used libcURL 7.52.1. As a result of this update, several security features in the driver have been improved.

2.1.12 ———————————————————————–

  • This release was an engineering build, and was provided for internal use only.

2.1.11 ———————————————————————–

Released 2018-05-31

Enhancements & New Features

  • [GAUSS-564] NUMERIC data type supported

    The driver now supports the NUMERIC data type from Google BigQuery, returning NUMERIC data as SQL_NUMERIC data.

  • [GAUSS-564] SQL_DECIMAL data type supported

    The driver now supports the SQL_DECIMAL data type, sending SQL_DECIMAL data to Google BigQuery as NUMERIC data.

  • [GAUSS-567] Data Definition Language (DDL) support

    You can now execute DDL statements when using the driver. The statements must be written in the syntax that BigQuery supports. For more information, see “Using Data Definition Language Statements” in Google BigQuery’s Standard SQL Query Reference: https://cloud.google.com/bigquery/docs/data-definition-language

  • [GAUSS-603] Customer-managed encryption key (CMEK) support

    You can now configure the driver to use a CMEK when executing queries. To do this, set the new Path To CMEK option (the KMSKeyName property) to the CMEK associated with the table that you are querying. For more information, see the Installation and Configuration Guide.

    Important: Do not specify a CMEK unless you are certain that it is the correct value to use. Executing an INSERT statement with an incorrect CMEK can corrupt the target table.

Resolved Issues The following issues have been resolved in Simba ODBC Driver for Google BigQuery 2.1.11.

  • [GAUSS-606] When the Use SQL_WVARCHAR Instead Of SQL_VARCHAR option (the UseWVarChar property) is enabled, the driver appends extra characters to the returned SQL_WVARCHAR values.

  • [GAUSS-595] Between driver versions 2.1.6 and 2.1.8, driver performance is noticeably lower during query preparation and execution.

    This issue has been resolved. Driver performance when preparing and executing queries now matches the performance levels previously exhibited by the 2.1.6 driver.

  • [GAUSS-448] In some cases, when binding parameters and retrieving data, the driver returns a truncation error.

    This issue has been resolved. Before, the driver populated the descriptors with incorrect parameter length information. In cases where this information was used, the data would be bound to a smaller buffer than needed, which caused data retrieval to fail. The driver now populates the descriptors with the correct information, enabling parameter binding and data retrieval to work as expected.

2.1.10 ———————————————————————–

  • This release was an engineering build, and was provided for internal use only.

2.1.9 ————————————————————————

Released 2018-04-27

Resolved Issues The following issue was resolved in Simba ODBC Driver for Google BigQuery 2.1.9.

  • [GAUSS-594] When using the Windows trust store for SSL verification, the connection might fail if one of the intermediate certificates is not installed in the trust store.

2.1.8 ————————————————————————

Released 2018-02-22

Enhancements & New Features

  • Column filtering option

    If a default dataset is defined and FilterTablesOnDefaultDataset is set to TRUE, the driver filters columns in the SQLColumns call to return only columns that belong to DefaultDataset.

  • Disable API call timeout

    You can now disable the API call timeout, by setting the Timeout property to 0.

Resolved Issues The following issue is resolved in Simba ODBC Driver for Google BigQuery 2.1.8.

  • During query execution, in some cases the system message “Error creating temporary swap file name” may be displayed.

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