IvorySQL开源社区正式发布IvorySQL 5.0版本

描述

近日,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

致谢

最后,致谢各位贡献者!感谢大家在产品发布的过程中做出贡献,为社区发展添砖加瓦。

以下是该版本的贡献者(排名不分先后):

开源

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分