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『转发』吧,感谢!ღ( ´・ᴗ・` )~