Enhancements & New Features
Known Issues
The following are known issues that you may encounter due to limitations in
the data source, the connector, or an application.
The connector does not order the result sets for the following catalog
functions:
SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys,
SQLProcedureColumns, SQLProcedures, SQLTables
This is a limitation in the ODBC driver discovered in July 2024.
The connector does not support parameterized types for Resultset and
Parameter metadata.
This is a limitation of the Google BigQuery server.
The connector does not support parameters in the exception block.
This is a limitation of the Google BigQuery server discovered on Mar 2021.
On macOS or Linux platforms, when the connector converts SQL_DOUBLE data to
SQL_C_CHAR or SQL_C_WCHAR, data which is small or large enough to require
representation in scientific notation may prepend a 0 to the exponent.
This is a limitation of Google BigQuery. For a list of BigQuery data types
that the connector maps to the SQL_DOUBLE ODBC type, see the Installation
and Configuration Guide.
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#cas
ting
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 connector'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 connector 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 connector 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 connector 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 connector'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)