9 月 26 日,IvorySQL 3.4 发版。本文将带大家快速了解新版本特性。
 
 
 IvorySQL 3.4 发版说明
IvorySQL 3.4 基于 PostgreSQL 16.4,修复了多个问题,并增强多项功能。
PostgreSQL 16.4 的变更
-  
   在未经授权时防止 pg_dump执行,并引入一个新的服务器参数restrict_nonsystem_relation_kind
-  
   避免归并右反连接计划产生错误结果 
-  
   防止 VACUUM 中出现无限循环 
-  
   修复在将表作为分区附加后失败的问题,前提是该表之前有继承子表 
-  
   修复了 time 和 timetz 类型的 ISO-8601 “扩展”时间格式的输入 
更多细节, 请参阅 PostgreSQL 发布说明。
https://www.postgresql.org/docs/release/16.4/
IvorySQL 3.4 的功能增强及问题修复
-  
   新增 Oracle sequence功能: issues#588
-  
   支持 xmlisvalid函数: issues#695
-  
   在 Oracle 模式下为字符类型限制设置为2000: issues#561 
-  
   支持使用 SQL 命令 ALTER TABLE ADD (CONSTRAINT …)向现有表添加约束: issues#612
-  
   支持以下函数 TO_MULTI_BYTE(),TO_SINGLE_BYTE(),ASCIISTR(),COMPOSE(),DECOMPOSE(): issues#609
-  
   docker_library 项目现已支持 Debian 的 X86 和 ARM 架构: issues#16 
贡献人员
以下个人(按姓氏排序)作为补丁作者、提交者、审查者、测试者或问题报告者为此版本做出了贡献。
-  
   Cary Huang 
-  
   Chase Wu 
-  
   Grant Zhou 
-  
   Håkan Arpfors 
-  
   Imran Zaheer 
-  
   Leo X.M. Zeng 
-  
   ShanInfo 
-  
   冯磊 
-  
   高雪玉 
-  
   郭新源 
-  
   矫顺田 
-  
   梁翔宇 
-  
   吕新杰 
-  
   牛世继 
-  
   彭冲 
-  
   任娇 
-  
   尚雷 
-  
   王丽 
-  
   王守波 
-  
   文一 
-  
   严少安 
-  
   周家杰 
在 Rocky Linux 9.4 上编译安装 IvorySQL 3.4
操作系统已更新至 Rocky Linux 9.4 最新版。
[shawnyan@rl9 ~]$ cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)
[shawnyan@rl9 ~]$ uname -a
Linux rl9.shawnyan.cn 5.14.0-427.35.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Sep 12 18:24:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
编译过程基本与之前文章 IvorySQL v3.0 新特性浅测 中的描述一致,编译时建议增加选项 --with-libxml 以支持 XML 相关特性。
安装完成后启动 IvorySQL 数据库,并连接到数据库查看版本。
[ivorysql@rl9 ~]$ psql
psql (16.4-ShawnYan)
Type "help" for help.
ivorysql=# select version();
                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 16.4-ShawnYan (IvorySQL 3.4) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3), 64-bit
(1 row)
IvorySQL 3.4 新特性浅测
1. 创建序列
序列是用于生成唯一整数的数据库对象,可使用 CREATE SEQUENCE 命令创建序列。大多数情况下,你只需指定序列名称并使用所有序列属性的默认值,或者将 CACHE 属性增加到默认值 20 以上以提高性能。
ivorysql=# create sequence s1
start with 100
increment by 1
maxvalue 1000
cycle
cache 10
;
CREATE SEQUENCE
ivorysql=# \d s1
                           Sequence "public.s1"
      Type       | Start | Minimum | Maximum | Increment | Cycles? | Cache
-----------------+-------+---------+---------+-----------+---------+-------
 pg_catalog.int8 |   100 |       1 |    1000 |         1 | yes     |    10
ivorysql=#
2. XMLISVALID 函数
XMLISVALID 检查入参是否符合相关的 XML 模式。
ivorysql=# SELECT xmlisvalid(XMLTYPE('<a/>'));
xmlisvalid
------------
t
(1 row)
更多细节参考:
-  
   https://docs.ivorysql.org/cn/ivorysql-doc/v3.4/v3.4/26#xmlisvalid 
-  
   https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/XMLISVALID.html 
其他
需要注意的是,IvorySQL 项目的支持邮件群组升级为 support@ivorysql.org ,如有任何建议请联络新地址。
本文由 mdnice 多平台发布


















