Skip to content

Babelfish 2.7.0 for PostgreSQL 14.10

Compare
Choose a tag to compare
@shardgupta shardgupta released this 09 Feb 12:46
a2ab3b3

Overview

Babelfish 2.7.0 contains enhancements and fixes that improve the user experience, including:

Security enhancements

  • Fixed permission issue for view sys.server_principals.

Critical stability enhancements

  • Fixed an issue where ISNULL function may return incorrect data type.
  • Fixed an issue where condition may be evaluated incorrectly for conditional statement (e.g., IF)
  • Fixed an error "database ... does not exist" that may be observed when parallel query is enforced.
  • Fixed handling of Table Variable or Temp Table when Parallel worker is enforced.
  • Fixed unexpected error "lost connection to parallel worker" occurring when parallel worker enforced
  • Fixed an issue with multiple parentheses in select columns. (Contributed by staticlibs)
  • Fixed an issue with handling of column name alias which may cause client to hang if column name alias contains string of length more than 64 bytes, for example, select col as '您对“数据一览“中的车型,颜色,内饰,选装, '
  • Fixed datatype of information_schema_tsql.tables.TABLE_TYPE column
  • Fixed the error - “column ... does not exist” when using table.column with alias defined for table or schema_name.table.column in set clause of update queries
  • Fixed issue of incorrect schema resolution for multiple functions in query statement

High Priority stability enhancements

  • Fixed type conversion between Varchar and Binary datatype with use of proper encoding.
  • Fixed an issue where upper/lower case may not be preserved for column name aliases
  • Fixed crash in queries involving money data-type in parallel query mode
  • Fixed failure in MVU with non-default server collation name
  • Fixed the issue of information_schema vs. sys.objects WHERE type IN ('U', 'V') giving different result in Babelfish
  • Fixed issue of sp_columns and sp_columns_100 incorrectly show NULL radix for decimal columns
  • Fixed issue in queries involving sys.format() function in parallel query mode returning error “cannot start subtransactions during a parallel operation”.
  • Fixed unexpected error “could not access file "pg_hint_plan": No such file or directory" while using pg_hint_plan in parallel query mode
  • Fixed the issue of getting error ‘duplicate key value violates unique constraint ...' when re-creating the previously dropped view with the same name.

Additional improvements and enhancements

  • Improved performance for stored procedure sp_describe_undeclared_parameters
  • Fixed performance issue for DATEADD(), DATEDIFF()
  • SSMS - Fixed issue of Stored Procedure takes long time to load in Object Explorer
  • SSMS - Fixed performance issue of enumerating tables and views in SSMS Object Explorer
  • Fixed performance issue after create/upgrade of Babelfish extension by running ANALYZE after Babelfish extension creation and upgrade
  • Fixed the issue of index not used when query has an unnecessary cast to bigint
  • Fixed an issue when stored procedures starting with (sp_*) are invoked with a dbo. or sys. prefix.
  • Fixed the issue with default_schema_name column of the catalog sys.babelfish_authid_user_ext in case of "guest" user.
  • Fixed issue of orphan entries in Babelfish view def catalog table

Upgrading to the new version

If you’re running Babelfish in a managed environment, please check your vendor’s instructions for upgrading.

MINOR VERSION UPGRADE

Babelfish 2.7.0 is compatible with other 2.x.x versions of Babelfish; a dump/restore is not required to upgrade to the newer version from previous 2.x.x releases. To upgrade:

  1. Install the new binaries; for details, see [Compiling Babelfish From Source] (https://babelfishpg.org/docs/installation/compiling-babelfish-from-source/).
  2. Start the new server.
  3. Update the modified extensions.

To update the extensions that have changed since the last release, connect to the PostgreSQL endpoint of the Babelfish database and execute the following statements from a single session in this order:

ALTER EXTENSION "babelfishpg_common" UPDATE;
ALTER EXTENSION "babelfishpg_tsql" UPDATE;

Please note that the extension owner must invoke ALTER EXTENSION. For this release, the babelfish_tds and babelfish_money extensions don’t include any SQL-level changes and need not be updated.
After the extensions are updated, you can check the extension versions from the PostgreSQL port:

babelfish_db=# \dx
List of installed extensions
Name        | Version |   Schema   |   Description
--------------------+---------+------------+-------------------------------------------------
babelfishpg_common | 2.5.0   | public     | Transact SQL Datatype Support
....
babelfishpg_tsql   | 2.7.0   | public     | Transact SQL Compatibility
....

MAJOR VERSION UPGRADE

Babelfish 2.7.0 also provides the ability to upgrade from some 1.x.x versions of Babelfish. This process is called major version upgrade (MVU). It consists of two steps. First, you need to perform a major version upgrade on the PostgreSQL server to upgrade it to the target version. Second, you need to update all Babelfish extensions to the target version. Currently, Babelfish only supports upgrade using the pg_upgrade module. Other upgrade methods such as dump/restore and replication are not supported.