1. 版本概览

[发布日期:2025 年 11 月 25 日]

IvorySQL 5.0 基于 PostgreSQL 18.0,带来更强的 Oracle 兼容能力、PL/iSQL 增强以及全新的全球化特性,同时对打包、自动化和工具链进行全面更新。 有关完整更新列表,请访问我们的 文档站点

2. 增强内容

  • PostgreSQL 18.0

    1. 新增异步 I/O(AIO)子系统,可提升顺序扫描、位图堆扫描、vacuum 等操作的性能。

    2. pg_upgrade 现在会保留优化器统计信息。

    3. 支持 "skip scan" 查找,使多列 B-tree 索引能够在更多场景下使用。

    4. 提供用于生成按时间排序 UUID 的 uuidv7() 函数。

    5. 支持虚拟生成列(在读取时计算值),并将其设为生成列的默认模式。

    6. 增加 OAuth 认证能力。

    7. 在 INSERT、UPDATE、DELETE 和 MERGE 的 RETURNING 子句中支持 OLD 和 NEW。

    8. 对 PRIMARY KEY、UNIQUE 与 FOREIGN KEY 引入时间区间约束。

更多细节请参阅 PostgreSQL 18.0 发布说明

3. 新特性

3.1. 新增21 项 Oracle 兼容能力

  • Oracle 兼容 ROWID:Feature #126
    让 IvorySQL 行标识符与 Oracle 语义保持一致,便于跨数据库工具协同。

  • PL/iSQL CALL 调用语法:Feature #764
    新增 Oracle 风格的 CALL 入口,实现存储过程一致的调用体验。

  • PL/iSQL %ROWTYPE:Feature #765
    允许变量复用整张表或游标行的结构,便于紧凑编写 PL/iSQL。

  • PL/iSQL %TYPE:Feature #766
    支持变量继承既有列或变量的类型,降低类型漂移风险。

  • 区分大小写兼容开关:Feature #767
    在需要时可保留标识符大小写,以匹配 Oracle 行为。

  • NLS 参数兼容性:Feature #768
    支持 NLS_DATE_FORMATNLS_TIMESTAMP_FORMAT 等 Oracle 风格 NLS 设置。

  • 空字符串转 NULL:Feature #769
    将长度为零的字符串转换为 NULL,以遵循 Oracle 的兼容规则。

  • 解析器切换能力:Feature #770
    可在 Oracle 与 PostgreSQL 解析器之间切换,实现会话级灵活性。

  • GB18030 数据库编码:Feature #771
    为中国市场提供 GB18030 初始化和创建数据库选项。

  • Oracle 兼容 SYS_GUID:Feature #773
    实现 Oracle SYS_GUID 函数,生成基于 RAW 的 GUID。

  • Oracle 兼容 SYS_CONTEXT:Feature #774
    提供 Oracle SYS_CONTEXT API,用于查询会话与环境元数据。

  • Oracle 兼容 USERENV:Feature #775
    引入 USERENV 函数,使会话可检查 Oracle 风格的上下文信息。

  • Oracle 兼容函数语法:Feature #776
    支持 EDITIONABLE/NONEDITIONABLE、RETURNISOUT …​ NOCOPY 等 Oracle 结构。

  • Oracle 兼容过程语法:Feature #777
    支持包含 Oracle 选项的过程 DDL、EXEC 调用以及 ALTER PROCEDURE。

  • libpq OUT 参数传递:Feature #778
    扩展客户端协议,使 OUT 参数可像 OCI 一样被消费。

  • 过程 OUT 参数:Feature #779
    存储过程现在可按 Oracle 约定声明 IN、OUT、IN OUT 模式。

  • 函数 OUT 参数:Feature #780
    函数支持 Oracle 风格 OUT(含 IN OUT)参数。

  • 嵌套子程序:Feature #781
    允许在子程序内部定义函数或过程,并支持重载。

  • Oracle 兼容 INSTR:Feature #782
    与 Oracle INSTR 行为保持一致,覆盖子串搜索与位置判断。

  • Oracle 兼容 FORCE VIEW:Feature #783
    允许在引用对象尚未存在时创建视图,重现 Oracle FORCE 选项。

  • Oracle 兼容 LIKE 运算符:Feature #784
    对齐 Oracle 的通配符语义,确保匹配行为可预测。

3.2. 在线体验与多平台发行包

  • 在线体验:IvorySQL v5.0:Feature #887
    上线交互式浏览器环境,用户可实时体验与评估 IvorySQL v5.0,无需安装。

  • 全平台打包:Feature #949
    为 X86、ARM、MIPS、龙芯架构等平台提供多架构安装介质。

3.3. 云原生与容器化

  • 容器化部署支持(Docker Compose & Docker Swarm): 支持在 Docker Swarm 与 Docker Compose 中部署单实例数据库与高可用集群。

  • 容器化部署支持(Kubernetes 基础版): 使用 Helm 在 Kubernetes(K8S)中部署单实例数据库与高可用集群。

  • 发布 IvorySQL Operator v5(Kubernetes 进阶版): Operator v5 适配 IvorySQL v5.0,并同步升级系统组件版本与数据库扩展版本。

  • 发布 IvorySQL Cloud v5(统一全生命周期与可视化控制平面): 提供可视化托管控制平面,覆盖订阅、全生命周期编排以及生态集成。

3.4. 新增 10 个 PostgreSQL 扩展

  • pg_cron:Feature #882
    通过 pg_cron 集成在数据库层内执行计划任务。

  • pgAudit:Feature #929
    借助 PostgreSQL 标准日志能力输出详尽的会话 / 对象审计记录。

  • PostGIS:Feature #880
    提供空间数据处理与地理分析能力。

  • pgRouting:Feature #881
    引入网络与路径分析能力。

  • PGroonga:Feature #879
    增强全文检索。

  • ddlx:Feature #877
    支持 ddlx,便于高级模式洞察与自动化 DDL 生成。

  • pgsql-http:Feature #883
    允许数据库内部发起 HTTP/HTTPS 请求,实现与外部 Web 服务的无缝通信。

  • system_stats:Feature #946
    通过 system_stats 提供系统级统计信息。

  • plpgsql_check:Feature #915
    在运行前对 PL/pgSQL 函数做静态分析,定位错误、警告与潜在问题。

  • pgvector:Feature #878
    融合 pgvector,为 AI/ML 工作负载提供原生向量相似度检索。

4. 缺陷修复

  • 修复 unused_oidsduplicate_oids 目录工具,使头文件扫描能准确检测冲突且无误报:Issue #841

  • libpq/ivytest 产物新增 .gitignore,避免生成的二进制与日志污染开发树:Issue #843

  • 扩展 GitHub 工作流回归测试,覆盖 --with-libnuma 配置,防止未来在启用 NUMA 的主机上出问题:Issue #869

  • psql 用户可以通过 \h create package 获取 CREATE PACKAGE 语法帮助,补齐 PL/iSQL 包的 CLI 文档:Issue #936

  • 排除 MainLoop 悬空指针引发的并发压力下间歇性段错误:Issue #898

  • 修复 oracle_test/modules/*/sql 的测试框架假设,让 Oracle 兼容测试套件再次端到端运行:Issue #897

  • 更新 README.mdREADME_CN.md,同步 IvorySQL v5 特性、打包与快速上手信息:Issue #896

  • 更正全局唯一索引的强制机制,使相关回归测试在所有支持平台上稳定通过:Issue #894

5. 源码仓库

IvorySQL 的主要代码仓库:

  • IvorySQL 数据库源码:https://github.com/IvorySQL/IvorySQL

  • IvorySQL 官网:https://github.com/IvorySQL/Ivory-www

  • IvorySQL 文档:https://github.com/IvorySQL/IvorySQL-docs

  • IvorySQL Docker:https://github.com/IvorySQL/docker_library

6. 贡献者名单

以下人员(按字母顺序)作为补丁作者、提交者、审阅者、测试者或问题报告者,为本次发布做出了贡献。

  • ccwxl

  • Cédric Villemain

  • elodiefb

  • Grant Zhou

  • Imran Zaheer

  • luss

  • Martin Gerhardy

  • msdnchina

  • omstack

  • otegami

  • rophy

  • shlei6067

  • sjw1933

  • Yasir Hussain Shah

  • 初少林

  • 崇鹏豪

  • 高雪玉

  • 矫顺田

  • 类延良

  • 李苑

  • 梁翔宇

  • 刘晓辉

  • 吕新杰

  • 牛世继

  • 彭冲

  • 潘振浩

  • 石卓妍

  • 隋戈

  • 陶郑

  • 童水森

  • 王硕

  • 薛晓刚

  • 严少安

  • 杨世华

  • 赵法威