IvorySQL 5.0 发布:基于 PG 18.0,Oracle 兼容、生态组件、云原生与易用性全面进化!

IvorySQL 开源社区小伙伴们,大家好,IvorySQL 开源社区今天激动的向大家宣布:IvorySQL 5.0 发布了!

IvorySQL 5.0 基于 PostgreSQL 18.0 全面升级:Oracle 兼容性再突破,生态组件集成再升级,云原生深度支持,配合全平台安装包与在线丝滑体验,让复杂变得简单。

基于 PostgreSQL 18.0

PostgreSQL 18.0 核心升级:

  1. 引入异步 IO(AIO)子系统,可显著提升顺序扫描、位图堆扫描、VACUUM 等操作的性能。
  2. pg_upgrade 工具:新增优化器统计信息保留功能。
  3. 支持跳跃扫描(skip scan),使多列 B-tree 索引在更多场景下可用。
  4. 新增 uuidv7() 函数:生成时间戳有序的 UUID。
  5. 虚拟生成列:读取时动态计算列值,现已成为生成列的默认类型。
  6. 支持 OAuth 认证。
  7. RETURNING 子句增强:INSERT/UPDATE/DELETE/MERGE 命令支持 OLD 和 NEW 关键字。
  8. 时间范围约束:为 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_FORMATNLS_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、RETURNISOUT ... 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 工作负载。

详细的变化请查看: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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值