IvorySQL 开源社区小伙伴们,大家好,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 支持:确保 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函数:提供 OracleSYS_CONTEXTAPI,用于查询会话与环境元数据。 - 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函数:匹配 OracleINSTR的子串搜索和位置检查行为。 - 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 工作负载。
详细的变化请查看:Complete Changelog
已修复问题
- 修复
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 功能集、打包与入门指南。 - 修正全局唯一索引强制约束逻辑,使相关回归测试在所有支持平台稳定通过。
源码仓库
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
问题反馈
社区欢迎大家试用 IvorySQL 5.0,如果在使用的过程中出现问题或发现 bug,欢迎您在 GitHub 提交 issue,链接:https://github.com/IvorySQL/IvorySQL/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
3072

被折叠的 条评论
为什么被折叠?



