
亲爱的 IvorySQL 开源社区成员们,大家好!今天我们满怀激动地向大家正式宣布:IvorySQL 5.0 版本重磅上线!
此次发布的 IvorySQL 5.0 全面基于 PostgreSQL 18.0 进行重构升级,在 Oracle 兼容性方面实现全新突破,生态组件集成能力进一步增强,深度拥抱云原生架构。配合全平台安装包与便捷的在线体验功能,让数据库使用更加简单高效。
基于 PostgreSQL 18.0
PostgreSQL 18.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 支持,确保行标识语义一致性,助力工具无缝迁移。
- 支持 PL/iSQL 的 CALL 调用语法,提供统一的存储过程入口。
- 支持
%ROWTYPE:允许变量映射整行结构,简化编码逻辑。
- 支持
%TYPE:变量可继承已有列或变量的数据类型,避免类型不一致问题。
- 提供大小写敏感开关,灵活控制标识符大小写行为,贴近 Oracle 设置。
- NLS 参数兼容:支持如
NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT 等 Oracle 风格区域设置。
- 空字符串自动转为 NULL,符合 Oracle 处理规则。
- 解析器切换功能:可在会话级别自由切换 Oracle 与 PostgreSQL 解析器。
- 支持 GB18030 编码的数据库初始化和创建,满足中文环境需求。
- 实现 Oracle 兼容的
SYS_GUID 函数,生成 RAW 类型的全局唯一标识符。
- 支持
SYS_CONTEXT 函数,获取会话与系统上下文信息。
- 增加
USERENV 函数,查询 Oracle 风格的用户环境数据。
- 支持 EDITIONABLE/NONEDITIONABLE、
RETURN、IS、OUT ... NOCOPY 等 Oracle 函数语法。
- 支持 Oracle 风格的存储过程 DDL、EXEC 调用及 ALTER PROCEDURE 操作。
- libpq 层支持 OUT 参数传递,客户端可像 OCI 一样处理输出参数。
- 存储过程中支持 IN、OUT、IN OUT 模式的参数声明。
- 函数中支持 Oracle 风格的 OUT 参数,包括组合模式 IN OUT。
- 支持嵌套子程序定义,并允许重载。
- 实现 Oracle 行为一致的
INSTR 字符串查找函数。
- 支持 FORCE VIEW 创建,即使引用对象尚未存在也可建视图。
- LIKE 运算符语义对齐 Oracle,确保通配符匹配行为可预期。
在线体验与多平台发行
- 推出浏览器端交互式体验环境,无需本地安装即可快速上手。
- 发布覆盖 X86、ARM、MIPS、LoongArch 架构的全平台安装包,适配多种硬件环境。
云原生与容器部署
- 支持 Docker Compose、podman 与 Docker Swarm 部署单机及高可用集群。
- 修复 CREATE PACKAGE 语法帮助缺失问题,通过
h create package 可在 psql 中查看相关文档。
- 支持通过 Helm 在 Kubernetes 上部署 IvorySQL 单机与高可用实例。
- 发布 IvorySQL Operator v5:全面适配 IvorySQL 5.0,同步更新系统组件与扩展版本。
- 推出 IvorySQL Cloud 5.0:提供图形化托管控制台,支持订阅管理、全生命周期运维及生态整合。
生态扩展适配
- pg_cron:集成定时任务调度功能。
- pgAudit:提供细粒度的会话与对象审计日志。
- PostGIS:支持空间数据存储与地理分析。
- pgRouting:支持路径规划与网络分析。
- PGroonga:强化全文检索能力。
- ddlx:支持高级模式自省与自动化 DDL 生成。
- pgsql-http:数据库内发起 HTTP/HTTPS 请求,打通外部服务接口。
- system_stats:暴露系统级运行指标。
- plpgsql_check:静态分析 PL/pgSQL 代码,提前发现潜在错误。
- pgvector:原生支持向量相似度搜索,赋能 AI 与机器学习应用。
完整变更记录详见:Complete Changelog
已修复问题
- 修复
unused_oids 与 duplicate_oids 工具,提升 OID 冲突检测准确性。
- 为
libpqivytest 输出文件添加 .gitignore 规则,防止构建产物污染仓库。
- 扩展 GitHub CI 测试流程,覆盖
--with-libnuma 配置,预防 NUMA 主机上的异常。
- 补充
h create package 命令帮助,完善 PL/iSQL 包的命令行文档。
- 修复 MainLoop 中的悬空指针问题,消除高并发下偶发段错误。
- 修正测试框架假设,重新启用
oracle_test/modules/sql 测试集,恢复端到端测试能力。
- 更新
README.md 与 README_CN.md,同步 v5 功能说明、打包信息与入门指引。
- 修复全局唯一索引强制约束逻辑,确保回归测试在各平台稳定通过。
源码仓库
IvorySQL 主要开发维护于以下四个开源仓库:
问题反馈
欢迎广大用户试用 IvorySQL 5.0!如在使用过程中遇到任何问题或发现 Bug,敬请前往 GitHub 提交 Issue:https://www.php.cn/link/d748a600fe89a6abd01b174e8d2eb35c/issues
致谢
衷心感谢每一位贡献者!正是你们的努力推动了产品迭代与社区繁荣。
以下是本版本的部分贡献者名单(排名不分先后):
- Carlos Chong
- ccwxl
- Cédric Villemain
- Fu Bei
- Fawei Zhao
- Ge Sui
- Grant Zhou
- Imran Zaheer
- jerome-peng
- luss
- Martin Gerhardy
- Mingran Feng
- omstack
- Oreo Yang
- otegami
- Ruike Sun
- rophy
- Shaolin Chu
- Shawn Yan
- Shuntian Jiao
- Shuisen Tong
- shlei6067
- sjw1933
- Steven Niu
- Xiangyu Liang
- Xiaohui Liu
- Xinjie Lv
- xuexiaoganghs
- Xueyu Gao
- yangchunwanwusheng
- Yanliang Lei
- Yasir Hussain Shah
- Yuan Li
- Zhe Zhang
- Zheng Tao
- Zhenhao Pan
- Zhuoyan Shi
源码地址:点击下载
以上就是IvorySQL 5.0 发布:基于 PG 18.0的详细内容,更多请关注php中文网其它相关文章!