大象资讯 | IvorySQL 3.3 发版

IvorySQL 3.3 于 2024.07.11 日发版,该版本基于 PostgreSQL 16.3,修复若干问题。

IvorySQL 是一款以 PostgreSQL 为基础进行开发,并且兼容 Oracle 的开源数据库。该项目是在 Apache 2.0 许可证下发布的,社区鼓励且欢迎所有类型的贡献和参与。

IvorySQL 3.3 增强:

  1. 将 pg_stats_ext 和 pg_stats_ext_exprs 条目的可见性限制为表所有者。
  2. 修复将多个 VALUES 行插入到作为数组或复合类型域的目标列中的问题。
  3. 对于带有 DO NOTHING 子句的 MERGE 语句,要求对目标表具有 SELECT 权限。
  4. 修复处理 MERGE 中自我修改元组的问题。
  5. 修复当表按 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 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--安装VMware步骤

安装VMware VMware Desktop Hypervisors for Windows, Linux, and Mac 复制链接打开浏览器下载即可 从官网下载软件,完成后为确保后续正常使用,需要检查虚拟网卡是否安装完成 检查虚拟网卡的安装步骤 Windows--设置--高级设置--网络适配器--看是否有显…

STM32杂交版(HAL库、音乐盒、闹钟、点阵屏、温湿度)

一、设计描述 本设计精心构建了一个以STM32MP157A高性能单片机为核心控制单元的综合性嵌入式系统。该系统巧妙融合了蜂鸣器、数码管显示器、点阵屏、温湿度传感器、LED指示灯以及按键等多种外设模块,形成了一个功能丰富、操作便捷的杂交版智能设备。通过串口…

vue2学习笔记-官网使用指南和搭建开发环境

官网使用指南 官网地址:介绍 — Vue.js 1、学习 1.1 教程和API 最重要的两个板块。API是VUE的字典,需要时来查阅。 1.2、风格指南 如何写出风格优雅的VUE代码。规则分为四类:必要的,强烈推荐、推荐、谨慎使用。 1.3、示例 …

初始网络知识

前言👀~ 上一章我们介绍了使用java代码操作文件,今天我们来聊聊网络的一些基础知识点,以便后续更深入的了解网络 网络 局域网(LAN) 广域网(WAN) 路由器 交换机 网络通信基础 IP地址 端…

PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0

符合条件的 PCI SSC 利益相关者在 30 天的意见征询 (RFC) 期间审查 PCI PTS 硬件安全模块 (HSM) 模块化安全要求 v5.0 草案并提供反馈。 PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0图 从 7 月 8 日到 8 月 8 日,邀请符合条件的 PCI SSC 利益相关者在 30 天的意见…

【linux】服务器创建RAID1(软件配置RAID1)

【linux】服务器创建RAID1(软件配置RAID1) 文章目录 【linux】服务器创建RAID1(软件配置RAID1)一、配置介绍raid介绍raid类型RAID 0:RAID 1:RAID 5:RAID 6:二、配置RAID硬件RAID:软件RAID:三、软件配置RAID1(以linux为例)1.先进入管理员模式2.安装mdadm工具3.创建raid1数…

SSH服务器CBC漏洞(CVE-2008-5161)

漏洞简介 OpenSSH 是一种开放源代码的SSH协议的实现,初始版本用于OpenBSD平台,现在已经被移植到多种Unix/Linux类操作系统下,Linux环境中一般采用AES这种算法加密,AES有五种加密模式(CBC、ECB、CTR、OCF、CFB),系统默认会选择CBC的加密模式。 CBC模式是一种常用的对称…

存取款系统接口设计

题目描述: 设计一个存取款接口,入参是账户数组balances 与存取款请求体数组requests 对于取款要求判断: 当前余额不足,返回余额不足帐号 之前的取款时间在24之前的,在24小时之后返回上次取款额度的百分之2并向下取整。…

Hive期末测试题(头歌)

第1关:计算“Bad Boys (1995)”这部电影的评分次数 -- 使用mydb数据库 USE mydb;-- 计算“Bad Boys (1995)”这部电影的评分次数 SELECT m.movieid, m.moviename, COUNT(r.movieid) AS rating_count FROM t_movies m JOIN t_ratings r ON m.movieid r.movieid WHE…

【欧几里得算法】C++求解最大公因子:求解两个正整数的最大公因子

1. 算法描述: 【欧几里得算法】求解两个正整数m,n的最大公因子 2. 算法求解步骤: E1(求两个整数的余数):求两个正整数的余数,r m % nE2(判断余数是否为0)&#xff1a…

遥感影像图像识别

遥感影像图像识别 基于遥感影像的道路提取论文、开源代码和数据集汇总

C语言 结构体和共用体——结构体所占内存的字节数

目录 结构体所占内存的字节数 结构体所占内存的字节数

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

使用 Unity OpenXR 实现Gaze眼部追踪 在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。 Unity …

Linux文件:EXT2文件系统工作原理 软硬链接

Linux文件:文件系统究竟是什么?如何管理文件? 前言一、磁盘结构、存储策略1.1 磁盘存储结构1.2 磁盘存储策略1.3 磁盘的逻辑存储结构 二、如何管理磁盘文件三、如何管理组3.1 每个组保存的数据种类3.2 如何管理数据1、节点表(inod…

科普文:Shell编程三剑客:grep+sed+awk

shell三剑客是grep、sed和awk三个工具的简称,因功能强大,使用方便且使用频率高,因此被戏称为三剑客,熟练使用这三个工具可以极大地提升运维效率。 三剑客的特点: 命令 特点 使用场景 grep 擅长查找过滤 快速查找过滤 sed 擅长取行和替…

智慧城市可视化页面怎么做?免费可视化工具可以帮你

智慧城市是一个综合性的概念,广泛应用于各个领域,如基础设施建设、信息化应用、产业经济发展、市民生活品质等。 可视化页面的制作也是一个综合性的过程,需要确定展示内容、数据收集与处理、设计可视化元素等多个环节紧密配合。 1. 明确展示…

download failed after attempts=6: dial tcp 108.160.169.178:443: i/o timeout问题解决

添加公开的docker加速代理(可能会失效): vim /etc/docker/daemon.json{"registry-mirrors":["https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io…

序列化Serialization

介绍 序列化(Serialization)是将对象的状态转换为可存储或传输的格式的过程。通过序列化,可以将对象保存到文件中、数据库中,或者通过网络传输到远程系统。相应地,反序列化(Deserialization)是…

从零开始开发视频美颜SDK:实现直播美颜效果

因此,开发一款从零开始的视频美颜SDK,不仅可以节省成本,还能根据具体需求进行个性化调整。本文将介绍从零开始开发视频美颜SDK的关键步骤和实现思路。 一、需求分析与技术选型 在开发一款视频美颜SDK之前,首先需要进行详细的需求…

python对点云可视化设置颜色

1、背景介绍 点云分类/分割时,常需要对分类结果进行可视化,其中给点云赋予不同颜色是一种最直接方法。介绍基于python中matplotlib进行点云颜色渲染显示。 2、点云颜色渲染 2.1 有限种颜色渲染 matplotlib在点云颜色渲染时,使用表示颜色的关…