Babelfish 1.2.0
- Babelfish Version: 1.2.0
- PostgreSQL Server Version: 13.6
- Download source distributions:
- Babelfish Compass
- Date: April 5, 2022
Overview
Babelfish 1.2.0 contains enhancements and fixes that improve the user experience, listed below.
- Support for more built-in functions:
COLUMNS_UPDATED,UPDATE,FULLTEXTSERVICEPROPERTY,ISJSON,JSON_QUERY,JSON_VALUE,HAS_DBACCESS,SUSER_SID,SUSER_SNAME,IS_SRVROLEMEMBER. - Support for the additional catalog views:
sys.dm_os_host_info,sys.dm_exec_sessions,sys.dm_exec_connections,sys.endpoints,sys.table_types,sys.database_principals,sys.sysprocesses,sys.sysconfigures,sys.syscurconfigs,sys.configurations, and more. - Additional system stored procedures, including
sp_table_privileges,sp_column_privileges,sp_special_columns,sp_fkeys,sp_pkeys,sp_stored_procedures,xp_qv,sp_describe_undeclared_parameters,sp_helpuser, and more.
The above items and other new features of Babelfish 1.2.0 are listed in the sections below.
Upgrading to the new version
If you’re running Babelfish in a managed environment, please check your vendor’s instructions for upgrading.
Babelfish 1.2.0 is compatible with the latest major version (Babelfish 1.1.0); a dump/restore is not required to upgrade to the newer version. To upgrade:
-
Install the new binaries; for details, see [Compiling Babelfish From Source] (https://babelfishpg.org/docs/installation/compiling-babelfish-from-source/).
-
Start the new server.
-
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 version from the PostgreSQL port:
babelfish_db[124386]# \dx
List of installed extensions
Name | Version | Schema | Description
--------------------+---------+------------+-------------------------------------------------
babelfishpg_common | 1.2.0 | public | Transact SQL Datatype Support
....
babelfishpg_tsql | 1.2.0 | public | Transact SQL Compatibility
....
Changes
- Casing (upper-case, lower-case) of column names as created with T-SQL is now retained.
- INSTEAD-OF triggers are now supported on tables. This support is for tables only, not views.
- Support for the following system-defined global variables:
@@DBTS,@@LOCK_TIMEOUT,@@SERVICENAME. - Support for
SET LOCK_TIMEOUT - Support for the following datatypes:
TIMESTAMPROWVERSION
- Support for the following built-in functions:
COLUMNS_UPDATEDUPDATEFULLTEXTSERVICEPROPERTY`ISJSONJSON_QUERYJSON_VALUEHAS_DBACCESSSUSER_SIDSUSER_SNAMEIS_SRVROLEMEMBER
- Full support for the
CHECKSUMfunction. This function now supports * and multiple columns (CHECKSUM ( * | expression [ ,...n ])). - Full support for the
SCHEMA_IDfunction. This function can now be used without any arguments (SCHEMA_ID ( [ schema_name ])). - Support for
DROP IF EXISTSwithSCHEMA,DATABASE, andUSERobjects. - Support for the following values for
CONNECTIONPROPERTY:physical_net_transportclient_net_address
- Support for the following values for
SERVERPROPERTY:EditionIDEngineEditionLicenseTypeProductVersionProductMajorVersionProductMinorVersionIsIntegratedSecurityOnlyIsLocalDBIsAdvancedAnalyticsInstalledIsBigDataClusterIsPolyBaseInstalledIsFullTextInstalledIsXTPSupported
- Support for the following catalogs:
sys.dm_os_host_infosys.dm_exec_sessionssys.dm_exec_connectionssys.endpointssys.table_typessys.database_principalssys.sysprocessessys.sysconfiguressys.syscurconfigssys.configurations
- Support for the following
INFORMATION_SCHEMAcatalogs:TABLESCOLUMNSDOMAINSTABLE_CONSTRAINTS
- Support for the following system stored procedures:
sp_table_privilegessp_column_privilegessp_special_columnssp_fkeyssp_pkeyssp_stored_proceduresxp_qvsp_describe_undeclared_parameterssp_helpuser
- Limited support for creating, altering, and dropping database principals (USER objects). Limitations for
CREATE/ALTER/DROPsyntax with USER objects are as follows:- For
CREATE USER, you can specify theFOR/FROM LOGINandDEFAULT_SCHEMAoptions only. - For
ALTER USER, you can specifyDEFAULT_SCHEMAoption only.
- For
- Support for granting and revoking (
GRANT/REVOKE) permisions for database principals only (not database roles). Support includesGRANT OPTIONandREVOKE..CASCADEoptions for the following:SELECTINSERTUPDATEDELETEREFERENCESEXECUTEALL[PRIVILEGES]
- Support for
WITH AUTHORIZATIONonCREATE SCHEMA. - Support for the following new escape hatches and escape hatch functionality:
- Ability to restore the default settings for escape hatches. You can restore all the default settings for your Babelfish DB instance by passing
defaultas the second argument to thesp_babelfish_configurestored procedure. - Support for a new escape hatch,
escape_hatch_ignore_dup_key(default=strict). This escape hatch controls theIGNORE_DUP_KEYoption inCREATE/ALTER TABLEandCREATE INDEXstatements. WhenIGNORE_DUP_KEY=ON, an error is raised unlessescape_hatch_ignore_dup_keyis set toignore. - Support for the
ignoreoption on theescape_hatch_storage_optionsescape hatch. When this escape hatch is set toignore, Babelfish ignores errors raised in the following cases: - Ignores errors raised in the
ONclause in aCREATE DATABASEstatement. - Ignores errors raised by
CREATE INDEXwhen used withSORT_IN_TEMPDB,DROP_EXISTING, orONLINEoptions.
- Ability to restore the default settings for escape hatches. You can restore all the default settings for your Babelfish DB instance by passing
Acknowledgements
To see a list of the individuals that have contributed to the Babelfish project, visit the project website.
Babelfish for PostgreSQL is open-source software that uses the Apache License version 2 (ALv2) and the PostgreSQL License. The source for the project is available on GitHub.
Babelfish for PostgreSQL is open source software that uses the Apache License version 2 (ALv2) and PostgreSQL Licence. ALv2 grants you well-understood usage rights; you can use, modify, extend, embed, monetize, resell, and offer Babelfish for PostgreSQL as part of your products and services. The source for the entire project is available on GitHub and you’re welcome to build from source for customized deployments.
Version: 1.2.0Release Date: Apr 05, 2022