babelfishpg_tsql

SQL Server SQL语法兼容性扩展

概览

扩展包名版本分类许可证语言
babelfish5.4.0SIMApache-2.0C
ID扩展名BinLibLoadCreateTrustReloc模式
9300babelfishpg_common-
9310babelfishpg_tsql-
9320babelfishpg_tds-
9330babelfishpg_money-
相关扩展babelfishpg_common uuid-ossp babelfishpg_money pg_hint_plan tds_fdw session_variable orafce pgtt db_migrator
下游依赖babelfishpg_tds

special case: this extension only works on wiltondb kernel fork

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY5.4.01817161514babelfishbabelfishpg_common, uuid-ossp
RPMPIGSTY6.0.01817161514babelfish-$vantlr4-runtime413
DEBPIGSTY6.0.01817161514babelfish-$vlibantlr4-runtime413
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
el8.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
el9.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
el9.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
el10.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
el10.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
d12.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
d12.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
d13.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
d13.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u22.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u22.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u24.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u24.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u26.x86_64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A
u26.aarch64PIGSTY 6.0.0PIGSTY 5.4.0N/AN/AN/A

构建

您可以使用 pig build 命令构建 babelfish 扩展的 RPM / DEB 包:

pig build pkg babelfish         # 构建 RPM / DEB 包

安装

您可以直接安装 babelfish 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install babelfish;          # 当前活跃 PG 版本安装
pig ext install -y babelfish -v 18  # PG 18
pig ext install -y babelfish -v 17  # PG 17
dnf install -y babelfish-18       # PG 18
dnf install -y babelfish-17       # PG 17
apt install -y babelfish-18   # PG 18
apt install -y babelfish-17   # PG 17

创建扩展

CREATE EXTENSION babelfishpg_tsql CASCADE;  -- 依赖: babelfishpg_common, uuid-ossp

用法

来源:

babelfishpg_tsql实现了T-SQL语言和SQL Server兼容的系统目录行为,这是Babelfish数据库的一个组成部分,而不是一个可以独立添加到标准PostgreSQL中的兼容层:完整的堆栈需要带有Babelfish补丁的PostgreSQL引擎加上公共、TDS和T-SQL扩展。

核心工作流程

为预加载配置TDS协议扩展并重启Babelfish服务器:

shared_preload_libraries = 'babelfishpg_tds'

使用CASCADE创建TDS扩展,以便安装其依赖项,包括babelfishpg_tsql。在初始化前选择迁移模式。

CREATE EXTENSION IF NOT EXISTS babelfishpg_tds CASCADE;

ALTER SYSTEM SET babelfishpg_tsql.database_name = 'babelfish_db';
ALTER SYSTEM SET babelfishpg_tsql.migration_mode = 'multi-db';

CALL sys.initialize_babelfish('babelfish_user');

按照安装指南重新加载配置后,SQL Server客户端连接到通常位于端口1433的TDS监听器,并在Babelfish创建的逻辑数据库中发出T-SQL语句。

组件和对象索引

  • babelfishpg_tsql提供T-SQL解析器、过程语言、系统对象、兼容函数以及T-SQL配置变量。
  • babelfishpg_tds提供表格数据流监听器,也是常规安装入口点。
  • babelfishpg_common提供共享的数据类型和函数。它和uuid-osspbabelfishpg_tsql的声明依赖项。
  • babelfishpg_money提供与堆栈相关的货币相关兼容对象。
  • sys.initialize_babelfish(login_name)为Babelfish目录和服务初始化登录。
  • sys.sp_babelfish_configure控制文档化的兼容性开关。
  • babelfishpg_tsql.database_name标识托管Babelfish的物理PostgreSQL数据库。
  • babelfishpg_tsql.migration_mode选择single-dbmulti-db逻辑数据库映射。

运行边界

安装需要超级用户权限和与扩展版本匹配的Babelfish构建。不要单独安装babelfishpg_tsql并期望获得TDS连接性。迁移模式是一个配置决策,在数据库初始化后不应更改。

Babelfish实现了大量但不完整的SQL Server功能集。在迁移前,请根据官方限制验证应用程序语法、数据类型、系统目录假设、驱动程序和开关设置。PostgreSQL和T-SQL连接可以观察不同的命名和事务语义。

从5.5.0到5.4.0的目录更改是官方BABEL_5_4_0发布线的一个版本修正,而不是新功能或自动降级过程的证据。