Amazon Opened Source Texts Project “ Babelfish for Postgresql “offering extensions to POSTGRESQL DBMS with the implementation of the specific capabilities of the Microsoft SQL Server DBMS. Key goal project is to provide the possibility of executing applications written for SQL Server on servers running DBMS PostgreSQL. Project code Open Under licenses Apache 2.0 and PostgreSQL License.
Babelfish supports the network protocol used to connect customers to SQL Server, T-SQL language and SQL Server-specific query language extension, which allows you to translate running applications with Microsoft SQL Server to PostgreSQL without modifying their code or with minimal changes and without replacement Drivers to DBMS. For Babelfish applications, it looks like a regular SQL Server. The project is already used in the Amazon Aurora service.
It is stated that the Babelfish project will develop in accordance with the open development model that allows participants from the community to make changes and influence the development of the development. For users, the transition to Babelfish will give the opportunity to avoid tangible deductions for using SQL Server, bypass license restrictions and do not depend on Policy changes Proprietary accompaniment Product (cancellation of benefits, termination of platform support, change price policy).
The project includes Extensions set to POSGTRESQL, set of patches to POSGTRESQL and Toolkit Compass:
- extensions are implemented in PostgreSQL support for additional syntax, data types and functions needed to migrate with SQL Server. All suggested 4 extensions:
- babelfishpg_tsql – Implementation of the language T-SQL (Transact-SQL), complementing SQL tools for procedural programming, support local variables and additional functions for processing rows, dates and mathematical expressions. A large part of the in-demand T-SQL features is implemented, including control points (SavePoint), stored procedures and invested transactions. Nevertheless, the tangible part of the syntax and functions remains unrealized ( Compatibility Table ). For example, as long as the design “Add Signature”, “Create Aggregate”, “Create / Alter / Drop Application Role | Assembly | Asymmetric Key”, “Begin Conversation Time”, “END / MOVE CONVERSATION”, etc.
- babelfishpg_tds – implementation of the Protocol TDS (Tabular Data Stream) used in SQL Server to organize network interaction between DBMS and Customer . Supported version of the TDS 7.1 protocol and higher.