找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

251

积分

0

好友

32

主题
发表于 3 天前 | 查看: 9| 回复: 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_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 & Docker Swarm):支持在 Docker Compose 和 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

已修复问题

  • 修复 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 5.0 功能集、打包与入门指南。
  • 修正全局唯一索引强制约束逻辑,使相关回归测试在所有支持平台稳定通过。

源码仓库

IvorySQL 的开发主要在以下四个仓库进行维护:

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-1 14:12 , Processed in 0.062479 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表