IvorySQL 开源社区小伙伴们,大家好,IvorySQL 开源社区今天激动的向大家宣布:IvorySQL 4.0 发布了!
这是 2024 年以来发布的最新版本,相较于上个版本,有了较大的变化。
该版本有多项增强:全面支持 PostgreSQL 17,新增和完善多种 Oracle 兼容特性,如不可见列特性和包功能等。
下面将会为大家详细解读。
新功能解读
全面支持 PostgreSQL 17
PostgreSQL 17 在很多方面进行了能力提升:
- VACUUM 启用新的内存管理机制,在提升 VACUUM 性能的同时降低了内存消耗
- 深化了 SQL/JSON 支持,新增了SQL/JSON 构造函数和查询函数,以及
JSON_TABLE
功能,支持将JSON 转换为标准 PostgreSQL 表 - 各方面的性能提升,包括引入流式 I/O 接口,提升了顺序扫描的性能,高并发写入性能,以及在 btree 索引中搜索多个值的能力
- 逻辑复制支持复制槽故障转移,在大版本升级时可以保留逻辑复制槽
pg_basebackup
支持增量备份- COPY 命令新增
ON_ERROR
选项,允许在插入错误时继续执行
IvorySQL 4.0 全面支持 PostgreSQL 17,使用 IvorySQL 4.0 也可体验 PostgreSQL 17 的新功能。
新增和完善多种 Oracle 兼容特性
不可见列特性
在原生 PostgreSQL 17 的基础上,IvorySQL 4.0 新增兼容 Oracle 不可见列特性帮助用户轻松应对去 "O" 业务需求。
新引入的不可见列特性让用户可以更好地控制列的可见性。对表的访问不会显示不可见的列,除非通过列名显式引用不可见列。因此通过使用不可见列对表进行更改,不会影响应用程序。 在应用迁移过程中,使新列不可见意味着它们不会被现有应用程序看到,但仍然可以被新应用程序显式引用,从而使应用程序的在线迁移更加简单。
Package 包功能
Package 包功能是 IvorySQL 4.0 的重磅新特性。
通过包的形式将相关的功能模块化,使得数据库的过程、函数、变量和其他编程元素组织在一起形成自包含单元,便于管理和维护。由于实现细节隐藏在包体中,提高了代码的安全性和可维护性。包体中的代码在第一次调用时被加载到内存中,后续调用可以直接使用,减少了解析和加载时间。
此外,该版本也进行了一些功能增强,比如内置函数 pg_get_functiondef()
现在得到了增强,提供多个 oid 参数可以一次返回这些 oid 对应的函数定义,也可以导出函数名相同但参数不同的多个函数定义。
详细的变化请查看:
- https://github.com/IvorySQL/IvorySQL/releases/tag/IvorySQL_4.0
- https://github.com/IvorySQL/IvorySQL/commits/IVORY_REL_4_STABLE
安装与升级
欢迎您安装试用 IvorySQL 4.0,如果您已经使用 IvorySQL 3.x 版本,可通过工具升级 IvorySQL 3.x 至最新的 IvorySQL 4.0 进行体验。
后续我们将会发布一篇详细的升级指南供大家参考,敬请期待!
问题反馈
社区欢迎大家试用 IvorySQL 4.0,如果在使用的过程中出现问题或发现 bug,欢迎您在 GitHub 提交 issue,链接:https://github.com/IvorySQL/IvorySQL/issues。
致谢
最后,致谢各位贡献者!感谢大家在产品发布的过程中作出贡献,为社区发展添砖加瓦。
以下是该版本的贡献者(排名不分先后):
- Bei Fu
- Cary Huang
- Fawei Zhao
- Grant Zhou
- Hope Gao
- Imran Zaheer
- Jiajie Zhou
- jerome-peng
- Jiao Ren
- Li Wang
- Ruohang Feng
- Shawn Yan
- Shiji Niu
- Shoubo Wang
- Shuntian Jiao
- Xiangyu Liang
- Xinjie Lv
- Yi Wen
- Zhenwei Xu 本文由博客一文多发平台 OpenWrite 发布!