IvorySQL 3.3 于 2024.07.11 日发版,该版本基于 PostgreSQL 16.3,修复若干问题。
IvorySQL 是一款以 PostgreSQL 为基础进行开发,并且兼容 Oracle 的开源数据库。该项目是在 Apache 2.0 许可证下发布的,社区鼓励且欢迎所有类型的贡献和参与。
IvorySQL 3.3 增强:
-  将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者。 
-  修复将多个 VALUES 行插入到作为数组或复合类型域的目标列中的问题。 
-  对于带有 DO NOTHING 子句的 MERGE 语句,要求对目标表具有 SELECT 权限。 
-  修复处理 MERGE 中自我修改元组的问题。 
-  修复当表按 boolean 列分区且查询中包含布尔 IS NOT 子句时错误地修剪 NULL 分区的问题。 
IvorySQL 3.3 问题修复:
-  修复使用 SYSDATE 作为日期默认值时的问题 #633 
-  修复使用 SYSTIMESTAMP 作为日期默认值时的问题 #661 
-  修复 nls mask 时间戳精度问题 #634 
-  为 ivorysql.datetime_ignore_nls_mask 参数添加更多测试用例 #657 
-  修复兼容模式下使用 timestamp(7) 类型返回错误问题 #658 
-  数据类型 VARCHAR2 问题的支持 #652 
-  解决 docker_library 项目中,有关 IvorySQL 的相关问题 #4 
编译安装 IvorySQL 3.3 后,查看版本信息。
[ivorysql@ivorysql3 ~]$ psql
psql (16.3-ShawnYan)
Type "help" for help.
ivorysql=# select version();
                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 16.3-ShawnYan (IvorySQL 3.3) 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=# \l
                                                   List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
 ivorysql  | ivorysql | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           |
 postgres  | ivorysql | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           |
 template0 | ivorysql | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/ivorysql          +
           |          |          |                 |         |         |            |           | ivorysql=CTc/ivorysql
 template1 | ivorysql | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/ivorysql          +
           |          |          |                 |         |         |            |           | ivorysql=CTc/ivorysql
(4 rows)
ivorysql.datetime_ignore_nls_mask 测试用例
datetime_ignore_nls_mask:默认值为0,表示不屏蔽任何类型,所有时间格式均由nls格式化。
ivorysql=# set ivorysql.compatible_mode to oracle;
SET
ivorysql=# show nls_date_format;
 nls_date_format 
-----------------
 YYYY-MM-DD
(1 row)
ivorysql=# show ivorysql.datetime_ignore_nls_mask;
 ivorysql.datetime_ignore_nls_mask 
-----------------------------------
 0
(1 row)
ivorysql=# create table t(a int, c date);
CREATE TABLE
ivorysql=# insert into t values(1, '2024/07/11');
INSERT 0 1
ivorysql=# table t;
 a |     c      
---+------------
 1 | 2024-07-11
(1 row)
ivorysql=# set nls_date_format to 'yy-mm-dd';
SET
ivorysql=# insert into t values(2, '24/07/11');
INSERT 0 1
ivorysql=# insert into t values(2, '2024/07/11');
INSERT 0 1
ivorysql=# insert into t values(2, '2024-07-11');
INSERT 0 1
ivorysql=# table t;
 a |    c     
---+----------
 1 | 24-07-11
 2 | 24-07-11
 2 | 24-07-11
 2 | 24-07-11
(4 rows)
设定datetime_ignore_nls_mask为1,表示date类型不经过nls格式化。
ivorysql=# set ivorysql.datetime_ignore_nls_mask=1;
SET
ivorysql=# show ivorysql.datetime_ignore_nls_mask;
 ivorysql.datetime_ignore_nls_mask 
-----------------------------------
 1
(1 row)
ivorysql=# insert into t values(2, '24/07/11');
LINE 1: insert into t values(2, '24/07/11');
                                ^
HINT:  Perhaps you need a different "datestyle" setting.
ivorysql=# insert into t values(2, '2024/07/11');
INSERT 0 1
更多 IvorySQL 3 的内容参见:
-  PG 开源社区喜迎 IvorySQL 3.2 版本 
-  IvorySQL 合集 
🌻 往期精彩 ▼
-  [Oracle] -  Oracle 数据库全面升级为 23ai 
-  python-oracledb 已率先支持 Oracle 23ai 
-  一文带你了解 Oracle 23ai 新特性 Vector 的基础用法 
 
-  
-  [MySQL] -  MySQL 9.0 的 VECTOR 文档更新 
-  MySQL 9.0.0 新鲜出炉!支持向量类型 
-  「合集」MySQL 8.x 系列文章汇总 
-  如何选择适合的 MySQL Connector/J 版本 
 
-  
-  [TiDB] -  星辰考古:TiDB v4.0 进化前夜 
-  国产基础软件“出海”标杆炼成记 
-  敢于公布BUG的国产数据库才是好数据库 
 
-  
-  [PG] -  [RL9] Rocky Linux 9.4 搭载 PG 16.1 
-  即将告别PG 12,建议升级到PG 16.3版本 
-  后 EL 7 时代,PG 16 如何在 CentOS 7 上运行 
 
-  
-- / END / --
👉 这里可以找到我
-  微信公众号: 少安事务所 
-  墨天轮: 严少安 
-  PGFans: 严少安 
-  ITPUB: 少安事务所 
-  TiDB 专栏: @ShawnYan 
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~
本文由 mdnice 多平台发布