开源数据库-IvorySQL
2022-12-24 20:21:03 阿炯

本站赞助商链接,请多关照。 IvorySQL 是先进的、功能齐全的、开源的 Oracle 兼容 PostgreSQL,由数据库提供商瀚高软件公司提供支持;企业坚定地承诺始终保持 100% 兼容,并直接替代最新的 PostgreSQL。它添加了一个 “compatible_db” 切换开关来在 Oracle 和 PostgreSQL 兼容模式之间切换。其亮点之一是支持 oracle 的 PL/SQL 语法和 Oracle 样式包的 PL/iSQL 过程语言。采用C/C++编写并在ApacheV2.0协议下授权。


IvorySQL is advanced, fully featured, open source Oracle compatible PostgreSQL with a firm commitment to always remain 100% compatible and a Drop-in replacement of the latest PostgreSQL. IvorySQL adds a “compatible_db” toggle switch to switch between Oracle and PostgreSQL compatibility modes. One of the highlights of IvorySQL is PL/iSQL procedural language that supports oracle’s PL/SQL syntax and Oracle style Packages.


IvorySQL 导入并增强了 Orafce 扩展以添加对众多 Oracle 兼容性特性的支持,包括内置包、数据类型和转换函数。可以构建在 Linux、OSX、Unix 和 Windows 平台上。

特性:
基于 PostgreSQL,具有完整的 SQL、坚如磐石的可靠性和庞大的生态系统
由领先的 PostgreSQL 数据库提供商瀚高软件提供支持。
兼容 Oracle。将 Oracle 数据库迁移到 IvorySQL。
可定制化。只需下载代码,并按照你的想法自定义。

软件编译环境需求

Required Packages The following software packages are required for building IvorySQL:
make - GNU make version 3.80 or newer
gcc - ISO/ANSI C compiler (at least C99-compliant). Recent versions of GCC are recommended.
libreadline - The GNU Readline library is used by default.
zlib - zlib compression library is used by default.
Flex - (Flex 2.5.31 or later)
Bison - (Bison 1.875 or later)

Optional Packages The following packages are optional. They are not required in the default configuration, but they are needed when certain build options are enabled.
libperl - (Perl 5.8.3 or later) To build the server programming language PL/Perl. Perl library installation with the header files. libperl library must be a shared library
libpython - (Python 2.6 or later, Python 3.1 or later) To build the PL/Python server programming language. Python installation with the header files and the distutils module. libpython library must be a shared library.
Tcl - (Tcl 8.4 or later) To build the PL/Tcl procedural language.
Gettext API - (Tcl 8.4 or later) To enable Native Language Support (NLS), to display a program's messages in a language other than English.
OpenSSL - (1.0.1 or later) To support encrypted client connections.
LZ4 - To support compression of data.

最新版本:3.0
2023年11月中旬正式推出了 3.0,该版本不仅继承了 PostgreSQL 16.0 的最新内核和功能,还扩展了更多企业级特性。相比于 PostgreSQL 社区版,IvorySQL 3.0 在兼容性和易用性方面实现了显著提升,同时为适应容器化和云端环境提供了更为全面的支持。3.0 具备更为完善的数据库特性和创新的功能,提供高度的 SQL 和 PL/SQL 兼容性,并充分利用 PostgreSQL 开源生态,为企业用户在 OLTP 业务上提供更加高效、稳定和灵活的平滑去 “O” 解决方案。

IvorySQL 3.0 基于 PostgreSQL 16.0 ,包含来自 PostgreSQL 16.0 的各种修复。有关其更详细的更新和错误修复,请参阅 PostgreSQL 16.0 发行说明。

1. IvorySQL 框架
添加双 Parser 支持不同的数据库 parser
添加双端口支持不同的数据库端口号
添加 initdb -m,支持 postgres 模式或 Oracle 模式

2. SQL 兼容
兼容 oracle merge command
兼容 oracle q 转义
兼容 oracle like

3. PL/SQL 兼容
解决 PL/SQL 创建函数/存储过程存在问题
兼容 Oracle 匿名块
在 SQL parser 中创建函数或过程支持嵌套子过程
嵌套的子进程和函数 is/as 不需要声明

4. 其它
在 action 中增加 meson 编译
支持 meson 编译
添加兼容的测试用例
添加 contrib 回归
兼容 btree_gist 索引
兼容 btree_gin 索引
添加 Oracle 数据类型 GIN 索引操作
添加 Oracle 数据类型 Gist 索引操作
兼容 Oracle 内置数据类型与内置函数
添加 plisql 扩展

问题修复
1)使用 meson 编译后,initdb 执行失败。
2)字符类型 null 值的运算符结果不正确。
3)还原备份时出错。
4)ivorysql_ora 部分测试用例失败。
5)nls 参数指定 ff 精度与表指定精度的三种关系下,对超出长度的数据处理不一致。
6)日期格式中的 DD HH.MI,SS AM 中数据出现特殊符号后的数据处理与 Oracle 不一致。
7)对日期格式,各部分位数校验均存在问题。
8)NLS 相关参数校验问题。
9)解决 NLS 参数设置为 12 小时制,默认完成 AM/PM 关键字的规则与 Oracle 不一致问题。
10)带默认值创建的函数/存储过程 xx_arguments 视图中 DEFAULTED 字段值为 N 问题。
11)无权限的函数/存储过程 可以被 all_procedures/all_arguments/all_source 视图查看。
12)当自增列类型为 numer 类型,且指定了精度时,by default on null 插入 null 值时,不是插入的具体序列值,而是插入的 null 值。
说明:关于新增功能更多介绍请参考本文档中心功能列表。

3.0 版本在架构上进行了大幅度更新升级,因此其使用方式与 2.3 版本有所不同。一些在 2.3 版本中可用的功能在 3.0 版本中尚未得到支持。关于两个版本之间功能差异的详细说明,请参阅 IvorySQL 3.0 官方文档。

最新版本:4
IvorySQL开源社区于2024年12月下旬发布v4.0版,该版本有多项增强:全面支持 PostgreSQL v17,新增和完善多种 Oracle 兼容特性,如不可见列特性和包功能等。新功能解读如下:

全面支持 PostgreSQL v17,在很多方面进行了能力提升:
VACUUM 启用新的内存管理机制,在提升 VACUUM 性能的同时降低了内存消耗
深化了 SQL/JSON 支持,新增了 SQL/JSON 构造函数和查询函数,以及 JSON_TABLE 功能,支持将 JSON 转换为标准 PostgreSQL 表
各方面的性能提升,包括引入流式 I/O 接口,提升了顺序扫描的性能,高并发写入性能,以及在 btree 索引中搜索多个值的能力
逻辑复制支持复制槽故障转移,在大版本升级时可以保留逻辑复制槽
pg_basebackup 支持增量备份
COPY 命令新增 ON_ERROR 选项,允许在插入错误时继续执行
IvorySQL 4.0 全面支持 PostgreSQL 17,使用 v4.0 也可体验 PostgreSQL v17 的新功能。

新增和完善多种 Oracle 兼容特性:
不可见列特性
在原生 PostgreSQL 17 的基础上,IvorySQL 4.0 新增兼容 Oracle 不可见列特性帮助用户轻松应对去 “O” 业务需求。新引入的不可见列特性让用户可以更好地控制列的可见性。对表的访问不会显示不可见的列,除非通过列名显式引用不可见列。因此通过使用不可见列对表进行更改,不会影响应用程序。 在应用迁移过程中,使新列不可见意味着它们不会被现有应用程序看到,但仍然可以被新应用程序显式引用,从而使应用程序的在线迁移更加简单。

Package 包功能
这是 v4.0 的重磅新特性。

通过包的形式将相关的功能模块化,使得数据库的过程、函数、变量和其他编程元素组织在一起形成自包含单元,便于管理和维护。由于实现细节隐藏在包体中,提高了代码的安全性和可维护性。包体中的代码在第一次调用时被加载到内存中,后续调用可以直接使用,减少了解析和加载时间。

此外,该版本也进行了一些功能增强,比如内置函数 pg_get_functiondef() 现在得到了增强,提供多个 oid 参数可以一次返回这些 oid 对应的函数定义,也可以导出函数名相同但参数不同的多个函数定义。详情可查看:
IvorySQL_4.0
IVORY_REL_4_STABLE

安装与升级
欢迎安装试用 v4.0,如果已经使用 IvorySQL 3.x 版本,可通过工具升级 v3.x 至最新的 v4.0 进行体验。后续会发布一篇详细的升级指南供大家参考,敬请期待!

问题反馈
社区欢迎大家试用 IvorySQL 4.0,如果在使用的过程中出现问题或发现 bug,欢迎您在 GitHub 提交 issue。

v4.2已于2025年1月中旬正式发布,新版本全面支持 PostgreSQL v17.2,并修复了多项 bug。
增强功能
PostgreSQL v17.1 增强功能
确保当 RLS 应用于非顶级表引用时,缓存的计划会标记为依赖于调用角色
使 libpq 在 SSL 或 GSS 协议协商期间丢弃接收到的错误消息
修复 SET SESSION AUTHORIZATION 和 SET ROLE 之间的意外交互
防止受信任的 PL/Perl 代码修改环境变量
修复在附加或分离表分区时对外键约束的目录状态更新问题
有关更多详细信息,请访问 v17.1 发布说明

PostgreSQL v17.2 增强功能
修复与 struct ResultRelInfo 配合使用的扩展的 ABI 断裂问题
恢复 ALTER \{ROLE|DATABASE} SET role 功能
修复逻辑复制槽的 restart_lsn 可能回退的情况
在执行 pg_rewind 时避免删除仍需使用的 WAL 文件
修复与删除共享统计条目相关的竞争条件
有关更多详细信息,请访问 v17.2 发布说明

IvorySQL v4.2 修复的问题
修复 pg_upgrade 问题,现在可使用 pg_upgrade 升级 IvorySQL
提供 Rocky9 安装包,目前可在 Rocky Linux 9 上安装 IvorySQL 4.x
修正 ivorysql_docs 中的英文语法错误

v4.4 已于 2025 年 3 月 10 日正式发布。新版本全面支持 PostgreSQL 17.4,新增多项新功能,并修复了已知问题。

PostgreSQL 17.3 增强功能
加强 PQescapeString 及相关函数对无效编码输入字符串的防护。
恢复在连接请求中出现的数据库和用户名的自动截断。
从连接权限检查和限制中排除并行工作者。
从 LWLock 等待事件名称中移除 “Lock” 后缀。
修复窗口聚合中可能重用过时结果的问题。
防止在关系截断过程中启动检查点。
有关更多详细信息,请访问 v17.3 发布说明。

PostgreSQL 17.4 增强功能
改进 libpq 的引号处理函数行为。
修复 pg_createsubscriber 中的小内存泄漏问题。
修复 meson 构建系统以正确检测 bsd_auth.h 系统头文件的可用性。
有关更多详细信息,请访问 v17.4 发布说明。

新功能:
1. ARM64 架构全平台介质包
提供适用于 ARM 架构的全平台介质包,支持国内外主流操作系统,包括 Red Hat、Debian、Kylin、UOS、NSAR OS 等。

2. X86 架构全平台介质包
提供适用于 X86 架构的全平台介质包,支持国内外主流操作系统,包括 Red Hat、Debian、Kylin、UOS、NSAR OS 等。

3. 新增内核架构设计专栏
新增一系列内核架构设计文档,首个主题为 Oracle 兼容性,深入探讨每个模块的框架、设计和实现原理,旨在帮助用户深入理解 Oracle 兼容性框架。目前已经发布两个模块的架构设计文档:

Oracle 兼容性框架中的双 parser 架构原理分析,initdb 架构原理分析。

4. IvorySQL 官方网站新增聊天室功能
在官方网站上新增聊天室功能,支持与 IvorySQL 相关的智能互动和问答环节。

修复的问题
使用不可见列和 pg_dump 时 SQL 不完整的问题;EulerOS 的安装包问题。
更多详情参考IvorySQL 4.4 发行说明。

v4.5于2025年6月上旬正式发布,新版本全面支持 PostgreSQL v17.5,新增多项新功能,并修复了已知问题。

PostgreSQL v17.5 增强功能:
修复检查声明为 GB18030 编码的无效字符串时单字节缓冲区过读问题
正确处理分区表上的自引用外键
避免 brin_bloom_union() 合并压缩 BRIN 摘要时发生数据丢失
正确解析嵌套在 WITH 子句中的 INSERT/UPDATE/DELETE/MERGE 命令所引用的外部 CTE 名称
修正 ALTER TABLE ADD COLUMN 对含默认值的域类型处理逻辑
更多细节请参阅 PostgreSQL发行说明。

新增特性
升级至 PG v17.5 内核
全平台 MIPS 打包支持:除了支持已有 ARM 和 X86 架构,新增 MIPS 架构的多平台介质包,兼容国内外主流操作系统(含麒麟、统信 UOS、凝思 NSAR OS 等)
IvorySQL 在线体验:提供基于 Web 的即时体验环境,用户可通过浏览器直接操作 IvorySQL 4.5 数据库
新增行为准则与更新社区贡献指南
通过 PR 实现文档自动构建与官网更新
增强贡献者工作流:支持 /assign 命令自助分配任务
IvorySQL Operator V4 适配 v4.5,升级系统组件与数据库扩展版本
IvorySQL 在线体验这一新增功能,您可以阅读文章 IvorySQL-WASM:免安装的数据库探索之旅了解详情。

修复已知问题
修复 check_compatible_mode与assign_compatible_mode 枚举值错误问题
修复文档中 GUC 框架测试结果描述问题
修复文档中 Oracle 兼容性参数描述问题
修复文档中 README 路径问题
修复兼容模式变更时 search_path 未更新问题
修复 ModifyTableContext 与 UpdateContext 兼容性问题
修复 initdb -C identifier_case_switch 不生效问题
更多详情可参考IvorySQL v4.5发行说明。

v4.6 于2025 年 9 月 10 日正式发布,新版本全面支持 PostgreSQL 17.6,新增多项新功能,并修复了已知问题。

增强功能
PostgreSQL v17.6 增强功能:
加强规划器估计函数中的安全检查。
防止 pg_dump 脚本被用于攻击运行还原操作的用户。
在 pg_dump 输出的注释中包含的名称中将换行符转换为空格。
修复 BRIN numeric_minmax_multi_ops 支持函数中的距离计算错误。
避免我们将接受的 XML 输入大小出现倒退问题。
更多细节请参阅 PostgreSQL v17 发行说明。

新增特性
升级至 PG 17.6 内核。
兼容 MongoDB 的解决方案:使用 FerretDB 和 DocumentDB 提供兼容 MongoDB 的解决方案。
全平台 LoongArch 打包:提供适用于 LoongArch 架构的全平台介质包,支持国内外主流操作系统,包括红帽、Debian、麒麟、统信和凝思等操作系统。还支持 x86、ARM 和 MIPS 架构。
在线试用:为用户提供基于 Web 的平台,可在线体验 IvorySQL V4.6,直接通过浏览器界面进行数据库交互。
容器化部署支持(Docker Swarm):支持在 Docker Swarm 环境中部署单机 IvorySQL 数据库和高可用集群。
容器化部署支持(Kubernetes):支持使用 Helm 在 Kubernetes(K8 S)上部署单机 IvorySQL 数据库和高可用集群。
IvorySQL Cloud v4.0 已发布:IvorySQL Cloud 平台目前支持 IvorySQL v4 数据库的订阅管理,以及其周边生态系统的全面管理。

修复已知问题
修复 aarch64 平台上缺少 libcrypt 的问题。
修复执行 make 和 make install 时,前缀为 test_ 的扩展被错误地编译和安装问题。
文档:修复一些拼写错误。
文档:修复安装部分的文档错误。
文档:更新社区贡献流程。

详情参考:IvorySQL v4.6 发行说明。

最新版本:5
2025年11月下旬发布的 v5.0 是基于 PostgreSQL v18.0 全面升级:Oracle 兼容性再突破,生态组件集成再升级,云原生深度支持,配合全平台安装包与在线丝滑体验,让复杂变得简单。

PostgreSQL v18.0 核心升级:
引入异步 IO(AIO)子系统,可显著提升顺序扫描、位图堆扫描、VACUUM 等操作的性能。
pg_upgrade 工具:新增优化器统计信息保留功能。
支持跳跃扫描(skip scan),使多列 B-tree 索引在更多场景下可用。
新增 uuidv7() 函数:生成时间戳有序的 UUID。
虚拟生成列:读取时动态计算列值,现已成为生成列的默认类型。
支持 OAuth 认证。
RETURNING 子句增强:INSERT/UPDATE/DELETE/MERGE 命令支持 OLD 和 NEW 关键字。
时间范围约束:为 PRIMARY KEY、UNIQUE、FOREIGN KEY 约束添加范围级约束支持。
更多细节请查看 PostgreSQL 18.0 发行说明。

新特性
新增 21 个 Oracle 兼容功能
Oracle 兼容 ROWID 支持:确保 IvorySQL 行标识符与 Oracle 语义一致,便于跨数据库工具无缝迁移。
PL/iSQL CALL 调用语法:新增 Oracle 风格的 CALL 入口点,实现存储过程统一调用。
PL/iSQL %ROWTYPE 支持:允许变量映射整个表或游标行结构,简化 PL/iSQL 编码。
PL/iSQL %TYPE 支持:支持变量继承现有列或变量的数据类型,减少类型漂移。
大小写敏感兼容开关:按需保留标识符大小写,以匹配 Oracle 行为。
NLS 参数兼容:支持 Oracle 风格的 NLS 设置,如 NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT 等。
空字符串转 NULL:将零长度字符串自动转换为 NULL,以符合 Oracle 的兼容性规则。
解析器切换能力:新增在 Oracle 和 PostgreSQL 解析器之间切换的能力,实现会话级的灵活配置。
GB18030 数据库编码支持:新增 GB18030 初始化和数据库创建选项,全面覆盖中文市场需求。
Oracle 兼容 SYS_GUID 函数:实现 Oracle 的 SYS_GUID 函数,用于生成基于 RAW 的全局唯一标识符(GUID)。
Oracle 兼容 SYS_CONTEXT 函数:提供 Oracle SYS_CONTEXT API,用于查询会话与环境元数据。
Oracle 兼容 USERENV 函数:增加 USERENV 函数,支持会话查询 Oracle 风格的上下文信息。
Oracle 兼容函数语法:支持 EDITIONABLE/NONEDITIONABLE、RETURN、IS、OUT ... NOCOPY 等 Oracle 语法结构。
Oracle 兼容存储过程语法:支持含 Oracle 选项的存储过程 DDL、EXEC 调用及 ALTER PROCEDURE 操作。
libpq OUT 参数支持:扩展客户端协议处理能力,使 OUT 参数可像 OCI 一样被消费。
存储过程 OUT 参数支持:允许存储过程按照 Oracle 规范声明 IN、OUT 和 IN OUT 模式参数。
函数 OUT 参数支持:支持函数中使用 Oracle 风格 OUT 参数,包括 IN OUT 组合模式。
嵌套子程序:支持在子程序内部声明函数或过程,并支持重载。
Oracle 兼容 INSTR 函数:匹配 Oracle INSTR 的子串搜索和位置检查行为。
Oracle 兼容 FORCE VIEW:支持在引用对象不存在时创建视图,模拟 Oracle 的 FORCE 选项。
Oracle 兼容 LIKE 运算符:使模式匹配语义与 Oracle 对齐,确保通配符行为可预测。

在线体验与多平台发行包
在线体验环境:推出基于浏览器的交互式环境,无需安装即可实时体验 IvorySQL 5.0。
全平台打包支持:提供 X86、ARM、MIPS、LoongArch 架构的多平台安装包。

云原生与容器化
容器化部署支持(Docker Compose & podman & Docker Swarm):支持在 Docker Compose 、 podman 和 Docker Swarm 环境中部署单机版 IvorySQL 数据库及高可用集群。
删除已修复问题中的 CREATE PACKAGE 语法帮助,具体删除行:使 psql 用户可通过 h create package 访问 CREATE PACKAGE 语法帮助,填补 PL/iSQL 包相关的命令行文档空白。
容器化部署支持(Kubernetes):支持通过 Helm 在 Kubernetes(K8s)上部署单机版 IvorySQL 数据库及高可用集群。
IvorySQL Operator v5 发布(Kubernetes 进阶版):适配 IvorySQL 5.0,同步升级系统组件版本及数据库扩展版本。
IvorySQL Cloud 5.0 发布:支持 IvorySQL 5.0 数据库的可视化托管控制平面,覆盖订阅、全生命周期管理以及生态集成。

扩展适配
pg_cron:通过集成 pg_cron 实现在数据库层执行定时任务。
pgAudit:通过标准 PostgreSQL 日志设施提供细粒度的会话与对象审计日志。
PostGIS: 通过 PostGIS 兼容性支持空间数据处理与地理空间分析。
pgRouting:引入 pgRouting 支持,提供网络与路径分析功能。
PGroonga:增强全文搜索能力。
ddlx:支持 ddlx,实现高级模式自省与自动化 DDL 生成。
pgsql-http:允许数据库内部发起 HTTP/HTTPS 请求,实现与外部 Web 服务的无缝通信。
system_stats:提供系统级统计信息。
plpgsql_check:对 PL/pgSQL 函数进行静态代码分析,在运行前发现错误、警告与潜在问题。
pgvector:集成 pgvector,原生支持向量相似度搜索,赋能 AI/ML 工作负载。
详细的变化请查看:完整的变更说明。

已修复问题
修复 unused_oids 与 duplicate_oids 目录工具,使头文件扫描能准确检测 OID 冲突,避免误报。
为 libpqivytest 产物添加 .gitignore 规则,防止生成的二进制文件和日志污染开发者工作目录。
扩展 GitHub workflow 回归测试,覆盖 --with-libnuma 配置,防止未来在支持 NUMA 的主机上出现故障。
使 psql 用户可通过 h create package 访问 CREATE PACKAGE 语法帮助,填补 PL/iSQL 包相关的命令行文档空白。
消除了 MainLoop 中的悬空指针场景,解决了在高并发压力下偶发的段错误。
修复测试框架假设,重新启用 oracle_test/modules/sql 测试用例,使 Oracle 兼容性测试套件可再次端到端执行。
更新 README.md 与 README_CN.md,同步 IvorySQL v5 功能集、打包与入门指南。
修正全局唯一索引强制约束逻辑,使相关回归测试在所有支持平台稳定通过。

2025年12月中旬v5.1正式发布,其基于 PostgreSQL v18.1 构建,包含多项缺陷修复与功能改进。完整更新列表可参考官方文档站点。

v18.1 增强功能
在 CREATE STATISTICS 中检查对 Schema 的 CREATE 权限。
避免 libpq 中分配大小计算可能引发的整数溢出。
防止在 SQL/JSON 函数(如 JSON_VALUE)的 DEFAULT 子句包含 COLLATE 表达式时出现 “无法识别的节点类型” 错误。
避免对包含分组集(grouping sets)的无变量 HAVING 子句进行错误优化。
在哈希右半连接(hash right semi join)中禁用并行执行。
避免在生成有序追加(ordered-append)执行计划时出现潜在的除零错误。
修复在支持有序访问但不支持仅索引扫描的索引类型下,查询规划器可能失败的问题。

v5.1 新增特性
升级至 PG 18.1 内核。
在线体验:推出基于浏览器的交互式体验环境,用户无需本地安装,即可实时探索与评估 v5.1 功能。
全平台安装包支持:提供覆盖 X86、ARM、MIPS、LoongArch 架构的多平台介质包。
容器化部署支持:支持通过 Docker Compose、Podman、Swarm、Helm 及 Operator 工具,一键部署 IvorySQL 5.1 单机或高可用集群。
IvorySQL Cloud 5.1 同步发布:集成了 IvorySQL 5.1 数据库以及周边生态,实现可视化的数据库发放回收、监控运维等全生命周期管理。
PostgreSQL 扩展:新增支持 10 款 PostgreSQL 扩展,分别是 pg_cron、pgAudit、PostGIS、pgRouting、PGroonga、ddlx、pgsql-http、system_stats、plpgsql_check、pgvector。

已修复问题
清理编译过程中的告警信息。
修复 PL/iSQL 解析器拒绝 SELECT INTO 表达式中带括号语法的问题。
修正文档中关于源码安装时缺失 uuid-ossp 插件的相关描述。

2026年3月中旬,IvorySQL 社区正式发布 v5.3。本版本基于 PostgreSQL v18.3 构建,在同步其最新稳定能力的同时,进一步增强云原生部署能力、数据库生态扩展以及用户体验。本版本现已推出在线体验环境,用户无需安装即可在浏览器中体验 IvorySQL。

v18.3 增强功能
修复重放旧次要版本生成的 WAL 中 multixid 截断记录后出现的失败问题。
避免对 “toasted” 数据应用 substring() 函数时出现不正确的无效编码报错。
修复 CVE-2026-2007 漏洞修复中的疏漏。
修正 json_strip_nulls () 和 jsonb_strip_nulls() 函数的易变性标记。
修复 LATERAL UNION ALL 子查询输出中可能产生空值的外连接集合的计算问题。
更多详情可查看 PostgreSQL18.3 官方发布说明

v18.2 增强功能
防范 oidvector/int2vector 出现意外维度。
增强选择性估计器,避免其附加到接受意外数据类型的操作符上。
修复 contrib/pgcrypto 模块 PGP 解密函数中的缓冲区溢出问题。
修复多字节字符长度验证不足的问题。
增强 contrib/pg_trgm 模块,以应对字符串小写转换行为的变化。
更多详情可查看 PostgreSQL18.2 官方发布说明

v5.3 新增特性
升级至 PG 18.3 内核。
在线体验:提供基于浏览器的交互式环境,可在线探索与测试 IvorySQL 5.3,无需本地安装。
全平台安装包支持:提供适用于 X86、ARM、MIPS、龙芯架构的多平台介质包。
容器化部署支持:支持通过 Docker Compose、Podman、Swarm、Helm 及 Operator 一键部署 v5.3 单机或高可用集群。
IvorySQL Cloud v5.3 发布:提供全托管的图形化控制平面,实现 v5.3 数据库订阅管理、全生命周期运维编排以及生态服务集成。
PostgreSQL 扩展支持:新增 10 个 PostgreSQL 扩展支持,包括 pg_cron、pgAudit、PostGIS、pgRouting、PGroonga、ddlx、pgsql-http、system_stats、plpgsql_check、pgvector。

问题修复
清理构建过程中的编译警告。
修复 ColumnRefOrFuncCall 的 raw_expression_tree_walker 处理问题。
修复从 PostgreSQL 升级至 IvorySQL 失败的问题。
优化 plisql 在 ivorysql.compatible_mode = 'pg' 场景下的错误提示信息。
修复 token_is_col_id() 中数组越界读取问题(liboracle_parser.c)。
修复 psql Tab 自动补全错误显示 INVISIBLEINCREMENT 的问题。
修复嵌套函数表达式中的变量重置问题。
修复包与子过程在混合使用位置参数和命名参数时的类型强制转换失败问题。
修复包过程在使用参数初始化局部变量时可能导致的段错误。
修复因跨年导致的回归测试失败问题。

2026年6月中旬,IvorySQL 社区正式发布 IvorySQL v5.4。作为兼容 Oracle 的开源 PostgreSQL 数据库,v5.4 基于 PostgreSQL 18.4 构建,带来了多项内核更新、功能增强和生态扩展,并进一步完善 AI、云原生部署以及数据库管理能力。v5.4 同步升级至 PostgreSQL v18.4,继承了社区最新的稳定性与安全修复,包括:
防止处理启动数据包(startup packets)时出现无限递归问题;
修复内存分配计算中的多项整数溢出问题;
在 pg_createsubscriber 中正确引用(转义)订阅名称;
在逻辑复制源(logical replication origin)检查中正确引用对象名称;
在 ts_headline() 中拒绝超长选项参数;
在恢复属性 MCV(Most Common Values,最常见值)统计信息时检测异常输入。

更多详情可参考 PostgreSQL v18.4 官方发布说明。

在线体验 IvorySQL v5.4
基于浏览器的交互式体验环境现已上线,用户无需安装,即可实时体验和评估 v5.4 的各项能力。

全平台发行支持
v5.4 提供覆盖 X86、ARM、MIPS 和 LoongArch 等主流架构的安装包,满足不同硬件平台下的部署需求。

云原生容器化部署
支持通过 Docker Compose、Podman、Swarm、Helm 以及 v5.4 Operator,一键部署单机或高可用集群,进一步降低数据库部署与运维成本。

IvorySQL Cloud v5.4 发布
这是面向数据库全生命周期管理的可视化平台,提供数据库订阅管理、生命周期运维编排以及生态服务集成能力,帮助用户实现更高效、更智能的数据库管理。

持续扩展 PostgreSQL 生态
v5.4 新增支持多项 PostgreSQL 扩展与工具,覆盖 AI、GIS、全文检索、连接池、高可用、运维监控等多个领域,包括:
AI 与向量:pg_ai_query、pgvector
图数据库:AGE
地理信息与路网:PostGIS、pgRouting
中文分词与切片:pg_jieba、Zhparser、pg_bigm
全文检索增强:PGroonga、pg_textsearch
运维与调度:pg_cron、pgagent
监控分析:system_stats、pg_stat_monitor、pg_show_plans
SQL 增强工具:ddlx、plpgsql_check、pg_hint_plan
网络访问:pgsql-http、pg_curl
WAL 日志解码:wal2json
中间件:PgBouncer
异构集成:redis_fdw
分区表管理:pg_partman
进一步丰富了 AI、地理信息、全文检索、数据库运维以及企业级应用场景。

SQL 兼容性增强
IvorySQL 持续完善 SQL 兼容能力。本次版本增强了 EXTRACT 函数支持,兼容更多 SQL 语法变体,进一步提升数据库迁移和应用适配体验。

2026年9月中旬,社区正式发布 v5.6。作为兼容 Oracle 的开源 PostgreSQL 数据库,IvorySQL v5.6 将 PostgreSQL 内核升级至 v18.6,并围绕 Oracle 兼容性、内存安全、客户端接口以及扩展构建等方面进行了多项修复与改进。同时 v5.6 新增 AI 辅助贡献指南,完成多项问题修复,并持续完善在线体验、云原生部署以及扩展生态支持。本次发布同步适配 PGNexus 沙盒:无需本地安装,用户即可在线一键构建 IvorySQL v5.6 实验环境,支持补丁应用与测试验证,覆盖单机、流复制、逻辑复制及高可用集群等多种拓扑架构,为零门槛探索新版本、开展 AI 辅助实验与社区协作提供便捷入口。

PostgreSQL 18.6 内核更新
IvorySQL 5.6 同步升级至 PostgreSQL 18.6。值得注意的是,PostgreSQL v18.5 在发布准备阶段发现了一个回归问题,因此并未正式发布。IvorySQL v5.6 直接基于 PostgreSQL v18.6 进行内核升级。

v18.6 主要包含以下更新:
新增服务器参数 output_plugin_libraries,限制逻辑解码输出插件只能使用指定的插件集合;
修复 contrib/pgcrypto 中 PGP 加密对不支持密码算法的检测问题;
修复 psql 执行脚本化 COPY ... FROM STDIN 命令时的数据处理问题,即使 COPY 在发送 PGRES_COPY_IN 之前失败,也能够正确跳过后续内联数据;
在此前未进行检查的场景中增加对数据类型 USAGE 权限的检查;
在角色发生变更后,使依赖角色的缓存执行计划失效;
确保并行 GIN 索引构建能够正确更新表的 pg_class.reltuples 值。

更多详情可参考 PostgreSQL 18.6 官方发布说明。

v5.6 关键特性
IvorySQL 内核升级至 PostgreSQL v18.6,在保持数据库能力持续演进的同时,同步获得 PostgreSQL 上游版本的相关修复与更新。

IvorySQL v5.6 沙盒
PGNexus 全新适配 IvorySQL v5.6,开启零门槛云端 AI 辅助实验新体验!

PGNexus 作为面向全场景的一站式知识与实验平台,现已同步支持最新 IvorySQL 5.6。无需本地安装,通过在线沙盒即可一键构建环境。支持补丁应用与测试验证,覆盖单机、流复制、逻辑复制及高可用集群等多种拓扑架构,开箱即用,助力高校、企业及开发者高效协作,极速探索新版本特性。v5.6 提供基于浏览器的在线交互环境。用户无需安装数据库,即可在线体验 IvorySQL v5.6,并实时探索和评估相关功能。在线体验地址。

AI 辅助贡献指南
随着 AI 工具逐渐应用于软件开发和开源协作,IvorySQL v5.6 建立 AI 辅助贡献相关指南。指南覆盖许可证合规、人工审核与签署责任、AI 工具使用说明、AI 生成代码比例披露,以及代码评审中的责任参与等内容,为 AI 辅助参与 IvorySQL 社区贡献提供相应规范。

全平台发行支持
v5.6 提供覆盖 X86、ARM、MIPS 和 LoongArch 等架构的多平台安装介质,满足不同硬件平台下的部署需求。

云原生容器化部署
v5.6 支持通过 Docker Compose、Podman、Swarm、Helm 以及 IvorySQL 5.6 Operator 快速部署单机或高可用数据库集群。通过多种容器化部署方式,为不同应用环境下的 IvorySQL 部署提供支持。

IvorySQL Cloud 5.6 发布
这是面向数据库全生命周期管理的可视化平台,提供 v5.6 数据库订阅管理、端到端生命周期运维编排以及周边生态服务集成能力。

扩展与工具
v5.6 目前共支持 34 项扩展与工具,覆盖 AI、向量检索、全文检索、地理信息、数据库运维、分区表管理、数据集成等多个场景,包括:
AI 与向量:pg_ai_query、pgvector
图数据库:AGE
全文检索与中文分词:pg_bigm、pg_jieba、PGroonga、pg_textsearch、zhparser
地理信息与路网:PostGIS、pgRouting
数据库运维与监控:pg_profile、pg_readonly、pg_repack、pg_show_plans、pg_stat_monitor、system_stats、pgnodemx
分区表管理:pg_partman
调度与任务管理:pg_cron、pgagent
数据加载与备份:pg_bulkload、pgBackRest
SQL 与数据库工具:ddlx、pg_hint_plan、plpgsql_check
临时表:pgtt
审计与权限:pgaudit、set_user
连接池与数据库代理:pgBouncer、PgDog
网络访问:pg_curl、pgsql-http
异构数据集成:redis_fdw
WAL 日志解码:wal2json

v5.6 问题修复
IvorySQL v5.6 针对 Oracle 兼容性、参数配置、内存安全、客户端接口以及扩展构建等方面进行了多项问题修复。
修复 Oracle 兼容的 interval 乘法和除法运算中可能出现的溢出及 NaN 处理问题;
禁止通过 ALTER USER/ROLE/DATABASE SET 持久化设置 ivorysql.compatible_mode,并修复 SET ... TO DEFAULT 和特定参数 RESET 可能绕过限制的问题;
修复表达式计算过程中,Package 限定的变量引用可能解析为无关本地变量的问题;
修复使用 GCC 14 及更高版本进行构建时出现的构建失败问题;
修复序列中冲突或重复 SHARD 选项的校验问题;
修复第三方 PostgreSQL 扩展针对 IvorySQL 进行构建时出现的构建失败问题;
使 ivorysql.enable_case_switch 在 SHOW ALL 中可见,并支持通过配置文件进行设置;
修复 DBMS_UTILITY 回溯信息和调用栈输出中缺少 Package 名称以及 Schema 限定不正确的问题;
修复 REGEXP_COUNT、REGEXP_SUBSTR、REGEXP_INSTR 和 REGEXP_REPLACE 中换行符处理及 m/n 选项行为不正确的问题;
修复 Ivyresult 在提前返回路径上的内存泄漏问题;
修复 psql 命名绑定查询转义及 \bind 处理过程中出现的堆缓冲区越界问题;
修复 XML 函数在使用超长命名空间前缀或 URL 时可能出现的堆缓冲区溢出问题。

官方主页:
https://www.ivorysql.org/

https://github.com/IvorySQL/