近日,IvorySQL开源社区正式发布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发行说明:
https://www.postgresql.org/docs/release/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数据库及高可用集群。
・容器化部署支持(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:
https://github.com/IvorySQL/IvorySQL/compare/IvorySQL_4.6...IvorySQL_5.0
已修复问题
・修复unused_oids与duplicate_oids目录工具,使头文件扫描能准确检测OID冲突,避免误报。
・为libpqivytest产物添加.gitignore规则,防止生成的二进制文件和日志污染开发者工作目录。
・扩展GitHub workflow回归测试,覆盖--with-libnuma配置,防止未来在支持NUMA的主机上出现故障。
・消除了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
致谢
最后,致谢各位贡献者!感谢大家在产品发布的过程中做出贡献,为社区发展添砖加瓦。
以下是该版本的贡献者(排名不分先后):

全部0条评论
快来发表一下你的评论吧 !