VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

V2.2 Build 14

版本升级指南

版本号说明
例:V2.2 Build 14
大版本:2.2
Build:14
Patch:补丁号

1、不同大版本以及不同Build的升级必须使用方法一升级
2、补丁升级请遵循以下规则

升级前\升级后 V2.2 Build 14
<V2.2 Build 14 重新初始化
>=V2.2 Build 14 N/A

注:目前V2.2 Build 14内升级需要重新初始化的版本:暂无。

补丁编号说明

例:2-2.2-10-92-702-9104-kylin-v10sp1-x86-64-hygon-1.0.1-06-20230308.tar.gz

补丁编号规则:

TYPE-VERSION-BUILD-BGCORE-SMCORE-SVN-OSCPU-VPATCHNO-PATCHNO-DATE

编号规则 含义说明
TYPE 类型
One off patch,TYPE=1
PSU,TYPE=2
PSR,TYPE=3
VERSION 适用该补丁的Vastbase G100产品大版本号,如2.2。
BUILD 适用该补丁的Vastbase G100产品BUILD号,如8、9、10。
BGCORE 适用该补丁的Vastbase G100产品内核大版本号,如内核版本号为92.456,此时该值为92。
SMCORE 适用该补丁的Vastbase G100产品内核小版本号,如内核版本号为92.456,此时该值为456。
SVN 适用该补丁的Vastbase G100产品的内部SVN提交号。
OSCPU 标识操作系统和处理器。
VPATCHNO Vpatch版本号。
PATCHNO patch编号。
DATE 发布日期。

升级方法介绍

方法一: 以下简称为“重新初始化”

所有用户自定义的对象和数据都需要从旧库导出,再导入到新库。

1、使用vb_dump导出所有对象和数据。

2、使用数据库安装程序安装新的数据库。

3、开启数据库。

4、使用vb_restore导入步骤1中的备份数据到新库中。

方法二: 以下简称为“vpatch工具升级”

参考使用vpatch进行版本控制

方法三:以下简称为“替换升级”

直接替换安装目录并重启数据库即可,步骤如下:

1、 停止数据库。

2、 解压安装包,把bin、include、lib、share四个目录替换到数据库安装目录下。

具体操作步骤如下:

(1)解压安装包,第一次解压(安装包以实际为准)。

tar xf Vastbase-G100-installer-2.2_Build_5.161-openeuler_20.03-aarch64_kunpeng-20220812.tar.gz

(2)解压后进入vastbase-installer目录,进行第二次解压。

tar xf Vastbase-G100-2.2_Build_5.161-openeuler_20.03-aarch64_kunpeng.tar.gz

(3)第三次解压。

tar xf Vastbase-G100-2.2_Build_5.161-openeuler-64bit.tar.bz2

(4)将解压之后的bin、include、lib、share四个目录替换到现有数据库安装目录下。

3、开启数据库。

配套驱动/工具版本

JDBC Driver ODBC Driver HAS
V2.8 V1.5 V1.2/V1.4/V3.1

Vastbase G100 V2.2 Build 14

发布日期

2023年9月15日

新特性

  • 工具

    1、在逻辑复制过程中支持DDL操作,参考逻辑复制支持DDL操作

    2、支持逻辑恢复工具vb_restore使用--exclude-table--exclude-table-file选项在恢复时排除表;支持使用-r, --remap-schema选项把原有模式下的所有数据库对象导入到另一模式下。

  • PL/pgSQL

    1、支持IF_THEN控制语法的条件语句,用于判断语句是否满足条件。

    2、支持RETURN语句,用于返回数据。

  • 外部接口

    资源池化支持NoF+接口,提供基于Nvme over Fabirc接口的存储访问能力,提升集群整体利用底层闪存存储带宽与速率的效率。

  • 安全

    1、支持逻辑备份工具vb_dump在使用江南天安加密算法进行加密导出时指定纯文本以外的文件格式。即导出格式可以是目录格式(d),自定义归档格式(c),tar格式(t)或者纯文本格式(p)。同时,使用vb_restore进行恢复时支持通过SM4硬件加密方式解密。

    2、KMS加密支持格尔加密算法(KOAL_SM4_MOD2)。

    3、支持高可用流复制的架构下的主库和备库使用江南天安加密算法对存储数据进行加密。在开启透明数据加密功能的高可用架构中,备库在数据页置换时进行数据加密,在数据页加载时进行数据解密。

    4、Vastbase Lite支持透明数据加密功能。

  • 兼容性

    1、数据库兼容模式从库级调整为实例级:在vb_initdb初始化实例时指定兼容模式。实例创建完成后,该实例中仅支持初始化过程中所指定的Oracle、MySQL、PostgreSQL、Teradata或SQL Server中任意一种兼容模式下的以下特有功能:

    • 数据类型

    • 系统函数、系统视图

    • 参数变量

    • SQL语法、PL/pgSQL语法

    • 关键字

    • 去除原CREATE DATABASE语法中的DBCOMPATIBILITY选项。

    • 初始化数据库实例后,实例的兼容模式不可修改。

    • 在升级数据库前,若同一个数据库实例中存在多种不同兼容模式的Database,则应先把不同兼容模式的Database拆分到不同的数据库实例,保证同一个数据库实例中只有一种兼容模式的数据库,然后再进行升级。否则会导致升级后数据库功能不可用。

    2、新增以下Oracle兼容性:

    • 支持全角空格:支持表意空格(代码U+3000,UTF8码 E38080)和全宽空格(代码U+2003,UTF8码 E28083),能正确解析并执行包含全角空格字符的SQL语句。

    • 支持在分区表创建全局索引时支持函数表达式,并在使用时命中索引。详见CREATE INDEX

    • 支持将视图作为MERGE INTO语法的对象,视图定义可以为任意支持更新的视图。详见MERGE

    • 支持在 PL/pgSQL 模块中创建自定义SUBTYPE,包括在匿名块、函数、Package中定义。

    • 支持使用%ROWTYPE的方式引用视图的数据类型,允许用户使用%ROWTYPE声明数据库中表或视图的完整或部分行的记录。

    • 支持通过result_case_mode特性参数控制返回字段名的大小写,若指定的列字段名显式的被双引号包含,则查询字段大小写与引号内保持一致。

    • 支持创建或更改物化视图时定义刷新方式等特性。详情可见CREATE MATERIALIZED VIEWALTER MATERIALIZED VIEW

    • 支持KEEP函数与聚合函数表达式结合使用,获取满足筛选条件的数据。

    • 外连接支持一表对多特性(即单表不同字段外连接不同表的不同字段)、多对多表特性(即多表相互连接)。

    • 支持在查询语句中的开窗语句RANGE BETWEEN AND语法内使用表达式,其中表达式的结果可以为0、正数或时间区间。参见开窗函数支持表达式

    • 新增支持DBMS_DDL内置包,提供对存储过程中某些SQL数据定义语言(DDL)语句的访问。

    • 新增支持DBMS_SCHEDULER内置包,提供了一组可以从任何PL/pgSQL程序调用的调度函数和过程。

    • 新增支持UTL_TCP.open_connection函数可以使用域名作为入参。

    • 新增支持以下内置包子程序:

      • DBMS_XMLDOM.makeCharacterData:将指定的DOMNODE转换成DOMCharacterData。

      • DBMS_LOB.ERASE:用于擦除整个或部分的内部LOB。

      • DBMS_LOB.FILEEXISTS:检查服务器是否存在该文件。

      • DBMS_LOB.LOADFROMFILE:加载BFILE类型的数据到内部LOB中。

      • DBMS_LOB.LOADLOBFROMFILE:加载BFILE类型的数据到BLOB对象。

    3、新增以下MySQL兼容性:

    • 新增支持以下数据类型:

    • 支持通过@variable变量实现SQL中的递归查询,循环调用一个单独的查询来遍历整个数据集。

    • vastbase_sql_mode特性参数增加pipes_as_concat、pad_char_to_full_length、no_zero_date取值,详情可参考vastbase_sql_mode

    • 新增以下SQL语法:

      • 支持在ALTER TABLE ADD或者ALTER TABLE MODIFY的同时支持通过FIRST或AFTER关键字指定新增字段的位置或被修改后字段的位置。详见ALTER TABLE

      • 支持创建分区表时用表达式作为分区键,详见CREATE TABLE PARTITION

      • 支持分区表使用函数作为分区条件,支持的函数列表参见表1

      • 支持CREATE TABLE PARTITION使用less than maxvalue语法用于设置范围分区的上边界。

      • 支持在INSERT语句中使用SET进行赋值。

      • 支持显示服务器错误或警告信息,详见SHOW WARNINGS/ERRORS

      • 支持指定多个分区查询数据,详见SELECT

      • 支持LOAD DATA命令实现从一个文件拷贝数据到一个表。

      • 支持反引号解释为标识符

      • INSERT的冲突处理子句ON DUPLICATE KEY UPDATE支持插入数据时字段重复。

      • 支持DO expr_list语法,用于执行表达并不返回结果。

      • 支持循环语法,包括WHILE DO和REPEAT语句。

      • 支持CREATE TABLE创建表时的如下特性:

        • 建表时指定字符集支持CHARACTER SET关键字。

        • 字符集CHARSET支持使用单引号包裹,例如CHARSET='utf8'

        • 支持建表时指定关键字key和index创建普通索引,包括单列索引和复合索引。

      • 支持CREATE USER时带if not exists选项。

      • 非保留关键字(Non-Reserved Keywords)可以直接作为SQL语句中的别名(即标识符Identifier),Vastbase当前支持作为别名的非保留关键字列表详见表1

    • 新增支持以下函数:

      • TO_BASE64:根据BASE64编码规则,将一个字符串编码成BASE64编码格式,返回字符串的编码结果。

      • FROM_BASE64:根据BASE64编码规则,将一个BASE64编码的字符串解码,返回字符串的解码结果。

      • MY_ENCRYPT_AES128:基于AES算法,使用密钥字符串对明文字符串进行加密。

      • MY_DECRYPT_AES128:根据给出的密钥字符串返回加密字符串的解密结果。

      • HEX:用于将输入的数据转换为十六进制表现形式。

      • UNHEX:用于将一个十六进制编码的字符串解码。

      • JSON_APPEND:用于修改JSON文档,向指定的数组节点中追加一个元素并返回修改后的JSON文档。功能同JSON_ARRAY_APPEND函数。

      • JSON_ARRAY_APPEND:用于修改JSON文档,向指定的数组节点中追加一个元素并返回修改后的JSON文档。

      • JSON_ARRAY_INSERT:用于修改JSON文档,向指定的数组节点中的指定位置插入一个值并返回新的JSON文档。

      • JSON_ARRAYAGG:用于将指定列中的值聚合为一个JSON_ARRAY型数组。

      • JSON_CONTAINS_PATH:用于检验一个或多个指定的路径是否包含于JSON文档中。

      • JSON_DEPTH:用于返回JSON文档的最大深度。

      • JSON_INSERT:用于向一个JSON文档中插入数据并返回新的JSON文档。

      • JSON_KEYS:用于以JSON数组的形式返回json_doc对象最外层的key值列表。

      • JSON_MERGE:用于合并两个及以上的JSON文档。功能同JSON_MERGE_PRESERVE函数。

      • JSON_MERGE_PRESERVE:用于合并两个及以上的JSON文档。

      • JSON_MERGE_PATCH:用于合并两个及以上的JSON。

      • JSON_OBJECT:用于接收一个键值对列表,并返回一个包含这些键值对的JSON对象。

      • JSON_OBJECTAGG:用于将入参指定的参数作为键和值聚合为一个JSON对象。

      • JSON_PRETTY:用于格式化输出一个JSON文档。

      • JSON_QUOTE:用于将输入的字符串输出为JSON文档,并用双引号修饰。

      • JSON_REMOVE:用于从一个JSON文档中删除由路径指定的JSON对象并返回修改后的JSON对象。

      • JSON_SEARCH:用于返回JSON文档中指定字符串的路径。

      • JSON_STORAGE_SIZE:用于返回存储JSON文档的二进制字节数。

      • JSON_TYPE:用于根据输入的JSON文档返回数据类型。

      • DEAFULT:用于获取表字段的默认值。

      • DATABASE:用于获取当前数据库模式的名称。

    • 支持如下操作符:

      • JSON与JSONB操作符如下:

        • ->:在JSON文档中提取路径表达式指定的数据并返回。

        • ->>:取消对JSON文档中提取的数据引号的引用。

      • 数字操作符:DIV,除(取整)。

      • 逻辑操作符:允许操作符AND,OR的两侧使用时间类型。

    4、新增以下PostgreSQL兼容性:

    • 新增支持以下函数和操作符:

      • ARRAY_POSITIONS:用于返回在第一个参数给定的数组(数组必须为一维数组)中,第二个参数所有出现的位置的下标所组成的数组。

      • 支持JSONB_SET函数,用于替换指定的路径上的值或者在指定的路径上插入值。

      • 支持JSONB_INSERT函数,用于将一个新值插入到JSONB值中的指定路径位置。

      • 支持JSONB_PATH_EXISTS函数,用于对JSONB类型的数据进行检查,检查给定的JSON路径中是否存在指定的JSON值。

      • 支持JSONB - 操作符,用于从JSON对象中删除键(以及它的值),或从JSON数组中删除匹配的字符串值。

    • 新增以下SQL语法特性:

      • INSERT中的冲突处理子句ON CONFLICT DO UPDATE新增以下用法:

        • 支持使用RETURNING返回实际插入的字段值,或是冲突更新后的字段值。

        • 支持指定冲突后的动作时使用WHERE子句,即在INSERT语句遇到冲突后,只有满足WHERE条件的字段才会被更新。

      • 支持通过CREATE TABLE为表中字段指定IDENTITY属性,或通过ALTER TABLE的ALTER COLUMN子句为字段指定IDENTITY属性。

      • 支持ALTER TABLE使用ADD COLUMN子句新增字段时的[ IF NOT EXISTS ]选项:如果已经存在相同名称的字段,不会抛出一个错误,而会发出一个通知,告知字段已存在。

      • 支持使用ALTER TABLE ATTACH PARTITION把普通表加入到分区表中,详见ALTER TABLE PARTITION

      • 支持使用ALTER INDEX ATTACH PARTITION把索引加入到分区索引中。详见ALTER INDEX

      • 支持PG风格的分区表声明方式,详见CREATE TABLE PARTITION

      • 支持IMPORT FOREIGN SCHEMA语法,用于从外部服务器中导入表定义。

    5、新增以下SQL Server兼容性:

    • 支持以井号(#)开头的临时表#table_name表示本地临时表,##table_name表示全局临时表。

    • 支持使用关系运算符OPENXML。支持使用如下函数和操作符从XML文档生成一个结果集:

    • 支持通过result_case_mode参数控制返回字段名的大小写。

    • 支持Binary数据类型。Binary类型存储的是固定长度的二进制字符串,指定长度后未满足长度的将自动补齐。

    • 新增以下SQL语法:

      • 支持在查询的FROM子句中使用运算符APPLY,表示把右表表达式应用到左表表达式中的每一行,支持的类型包括CROSS APPLY和OUTER APPLY。

      • 支持动态SQL返回结果集:在动态SQL执行时,其中的查询结果集一个或多个可以返回到执行体外。详见EXECUTE IMMEDIATE

      • 支持在ALTER TABLE给表新增字段时为该字段指定IDENTITY属性,用于获得自动增加的标识号。被该属性修饰的字段即为表的标识列。

      • 支持在CREATE TABLE建表时为字段指定IDENTITY属性,用于获得自动增加的标识号。

      • 支持SELECT查询的FOR XML子句,即以XML字符串的形式显示查询结果集。

    • 新增支持以下函数:

      • IDENTITY:用于在SELECT INTO语句生成的表中新增一个具有IDENTITY属性的字段。

      • NEWID:用于生成一个随机UUID。

      • NEWSEQUENTIALID:用于生成有序UUID。

      • 新增支持以下@@全局函数

        • @@IDENTITY:返回当前作用域中的标识列内的最后一个标识值。

        • @@LANGID:返回当前正在使用的语言的本地语言标识符(ID)。

        • @@NESTLEVEL:返回在本地服务器上执行的当前存储过程(或者自定义函数)的嵌套级别。

        • @@SERVERNAME:返回当前Vastbase数据库服务器的名称(hostname)。

        • @@CURSOR_ROWS:它返回在连接上打开的上一个游标中当前拥有的限定行的数目。

        • @@SPID:返回当前用户进程的会话 ID。

        • @@CONNECTIONS:返回Vastbase自上次启动以来尝试的连接数,无论连接是成功还是失败。

        • @@MAX_CONNECTIONS:返回当前数据库允许的最大数据库并发连接数。

        • @@MAX_PRECISION:按照服务器中的当前设置,返回decimal和numeric数据类型所用的精度级别。

        • 以下全局函数仅做兼容性支持,不实现功能:

        @@REMSERVER@@SERVICENAME@@TEXTSIZE
        @@LOCK_TIMEOUT@@OPTIONS@@DATEFIRST
    • 类型转换函数CONVERT的入参“style”是用于指定函数将如何进行转换的一种整数表示,当前版本新增若干style支持的样式。

  • 生态适配

    新增适配情况如下:

    CPU型号 操作系统 操作系统版本号
    海光 C86 openEuler 23.03
    Kylin V10 SP1
    CentOS 7
    鲲鹏920 openEuler 23.03
    22.03 LTS SP2
    BCLinux for Euler 21.10
    UOS V20 1060e
    V20 1050u2e
    兆芯 X86 UOS 20 1050u3 桌面版
    20 1050e
    Intel X86 BCLinux for Euler 21.10
    Ubuntu 22.04 桌面版
    UOS V20 1050u2a
    V20 SP1
    1050u2e
    RedHat 7.4
    Anolis OS release 8.6
    Kylin V10
    UniOS 2.0 V10
    飞腾 S2500 UOS V20 1050u2a
    Kylin Desktop V10
    openEuler 22.03
    麒麟信安 3.5.1
    飞腾 D2000 Kylin V10 SP1 桌面版
    龙芯4000 UOS 1030d
  • 数据字典

    1、新增如下系统表和系统视图:

    2、新增GUC参数如下,参见新增参数

    audit_backup_directory auto_increment_increment character_set_client character_set_connection
    character_set_results auto_increment_server collation_connection collation_server
    comm_shm enable_obj_resue enable_on_error_rollback enable_on_error_rollback_debug
    enable_ss_dorado enable_union_all_subquery_orderby force_parallel_mode init_connect
    interactive_timeout lc_time_names max_allowed_packet max_dynamic_shared_memory
    max_parallel_workers max_parallel_workers_per_gather min_parallel_index_scan_size min_parallel_table_scan_size
    net_buffer_length net_write_timeout output_granularity_level parallel_leader_participation
    parallel_setup_cost parallel_tuple_cost query_cache_size query_cache_type
    ss_enable_bcast_snapshot ss_enable_ondemand_recovery ss_ondemand_recovery_mem_size ss_parallel_thread_count
    ss_txnstatus_cache_size system_time_zone time_zone wait_timeout
    enable_ss_dorado
  • SQL引擎

    新增如下关键字

    全局关键字
    range subtype
    MySQL关键字
    against autoextend_size avg_row_length checksum checktable curtime
    databases day_hour day_microsecond day_minute day_second dbcc
    delay_key_write describe disk div double_compatible engine_attribute
    expansion extended flush format fulltext get_format
    grants hour_microsecond hour_minute hour_second inplace insert_method
    json_object key_block_size keys last_day logical_data logical_file
    logs longtext max_rows mediumint memory microsecond
    min_rows minute_microsecond minute_second mod ngram pack_keys
    parallel physical_only processlist proxy quarter quick
    regexp reorganize rlike routine row_format second_microsecond
    secondary_engine_attribute sensitive signed sounds stats_auto_recalc stats_persistent
    stats_sample_pages substr temptable time_period timestampadd tinytext
    undefined unsigned utc_date utc_time utc_timestamp xor
    year_month zerofill
    TeraData关键字
    checktable dbcc double_compatible logical_data logical_file parallel
    physical_only time_period
    PostgreSQL关键字
    attach checktable dbcc double_compatible import logical_data
    logical_file overriding parallel physical_only sensitive time_period
    SQL Server关键字
    apply checktable dbcc double_compatible logical_data logical_file
    openxml parallel physical_only result_case_mode sensitive time_period
    xmlnamespaces xmltable

特性优化

1、满足 TPCC 测试模型中,压缩率 2:1 以上,且性能劣化小于 5%。

2、优化了在Oracle兼容模式下的BLOB类型。BLOB字段仅保存loid(largeobject oid),原始数据保留在PG_LARGEOBJECT系统表中。通过loid及现有大对象管理接口来实现系统自动管理大对象。

  • Oracle兼容模式下,Blob类型由Blob 转换为 Orablob类型。应用若需要OraBlob,需要在连接串上加上oraBlobMode=ON参数

  • Orablob不能跨事务处理,所有对于Blob的操作需要在一个事务内进行。应用在使用Blob相关操作时,需要设置autocommit=false,并在完成后进行提交。 如使用Spring 可考虑使用Spring Transaction,在相关函数上添加@Transantial注解。

3、查询缓存功能支持主备架构,用户可在集群主节点和备节点单独开启或关闭查询缓存功能。

使用限制

使用PL/Python实现自定义过程语言时,禁止使用plpy模块。

缺陷修复

1、【1030920】【致命】修复了由于ALTER OPERATOR CLASS出错,导致dump导出数据出现数据库宕机的问题。

2、【1030632】【严重】修复了由于show errors没有跳过非error级别的信息,导致出现数据库宕机的问题。

3、【1030630】【严重】修复了访问空结构体导致执行update user set时,出现数据库宕机的问题。

4、【1030551】【致命】修复了由于使用dblink,导致出现数据库宕机的问题。

5、【1030353】【提示】修复了由于在环境变量$PGDATA为空的情况下使用vb_ctl导致数据库宕机的问题。

6、【1029447】【一般】修复了由于不支持COMMENT ON PROCEDURE,则当使用vb_dump导出的对象是PROCEDURE时,出现导入数据失败的问题。

7、【1029421】【严重】修复了由于执行vb_dumpall导出会跳过系统内置vb_role开头的角色,导致使用vsql执行sql文件,出现报错信息的问题。

8、【1029408】【一般】修复由于分区表在计算代价时被认为需要回表扫描,导致没有走仅索引扫描,代价变高的问题。

9、【1029011】【严重】修复了由于缺少对环境变量$PGDATA为空时的异常处理,导致执行vb_ctl query时候数据库宕机。

10、【1029009】【一般】修复了用户在schema下执行create type ... as table of ...失败的问题。

11、【1029002】【一般】修复了由于FILE_FDW删除重建时,因为防止提权相关函数被限制在了catalog模式,导致无法移动至其他schema的问题,修复后file_fdw插件的删除受到限制。

12、【1028957】【一般】修复了密码最大长度最小长度两个参数设置时缺少合法性检测(最小长度参数不能大于最大长度参数)的问题。

13、【1028941】【致命】修复了由于保存信息的内存大小判断有误,没有预分配足够大的内存,导致出现写越界,数据库宕机的问题。

14、【1028920】【严重】修复了由于openssl报错信息不准确的问题。

15、【1028898】【严重】修复了在资源池环境下无法删除物理复制槽的问题。

16、【1028861】【一般】修复了在资源池环境下使用gs_initdb指定vgname但不指定enable-dss时,报错信息提示不准确的问题。

17、【1028705】【致命】修复了在兼容pgrouting场景下,执行相关函数如pgr_createVerticesTable函数,pgr_nodeNetwork会出现报错的问题。

18、【1028694】【一般】修复了由于GROUP_ID函数冲突,用户可创建GROUP_ID同名且参数个数为0的函数,但不能执行的问题。

19、【1028670】【一般】修复了由于启动数据库时输入错误主密钥,导致启动失败同时会产生core文件的问题。

20、【1028627】【致命】修复了由于Vastbase与PostgreSQL语法不同,执行函数无返回结果的问题。

21、【1028626】【一般】修复了由于无相关语法处理,导致select into方式插入varray类型失败的问题。

22、【1028605】【严重】修复了创建匿名块报错cache look up failed的问题。

23、【1028604】【严重】修复了在创建触发器函数时,由于解析到 ';'前提前报错cache lookup failed的问题。

24、【1028584】【严重】修复了dbms_output.put_line输出结果报错的问题。

25、【1028570】【致命】修复了由于安装包缺失postgis和pgrouting的头文件,导致编译时出错的问题。

26、【1028558】【致命】修复了安装postgis插件报错的问题。

27、【1028517】【致命】修复了由于发现错误后仍继续向下执行程序,导致当set plsql_show_all_error=on,执行匿名块报错时数据库宕机的问题。

28、【1028516】【致命】修复了由于解引用int128类型前16字节对齐,导致对int16数据类型执行select查询操作,数据库挂库的问题。

29、【1028434】【一般】修复了当最大迭代次数max_recursive_times=1000时, 插入数据level超过1000,边界值1002和1003报错信息不同的问题。

30、【1028427】【致命】修复了由于在非debug模式打印backtrace,导致在寻找符号时数据库连接超时的问题。

31、【1028377】【严重】修复了由于语法有先后顺序,导致执行创建表语句中带有ENGING=InnoDB DEFAULT CHARSET出现语法报错的问题。

32、【1028327】【严重】修复了调用dbe_pldeubugger.turn_on()报错信息不明确的问题。

33、【1028325】【一般】修复了执行select * from gs_get_session_memctx_detail('')传入空值,报错信息不明确的问题。

34、【1028257】【致命】修复了执行DBMS_UTILITY.ANALYZE_SCHEMA语句,出现数据库挂库的问题。

35、【1028096】【严重】修复了在资源池化场景下,由于dms_release_owner接收ack失败,导致在一主一备架构时移除备机的dss_home 目录,执行主机stop操作,备机升主失败。恢复前期故障,主备DN无法恢复正常的问题。

36、【1028057】【严重】修复了列存表不支持where语句包含convert的问题。

37、【1028050】【严重】修复了timediff函数不支持对应类型的入参的问题。

38、【1028043】【严重】修复了由于查询语句中start with之后cte的名字变成tmp_result,当在查找表列时使用的是cte:tmp_result,而tmp_result中包含所有表的列,导致在查询时出现多字段的问题。

39、【1028006】【致命】修复了在资源池环境下,switchover或failover过程中重建复制槽coredump的问题 40、【1027998】【一般】修复了由于乘除法对边界条件误判,导致number_div_trunc函数入参为number类型最大值时,运算结果报错的问题。

41、【1027991】【一般】修复了由于初始化集合变量时为空,导致创建函数后调用失败的问题。

42、【1027980】【严重】修复了由于sys_guid生成guid是随机逻辑,导致出现了重复值的问题。

43、【1027979】【一般】修复了union all后,wm_concat拼接的字符串与原来的不一致的问题。

44、【1027974】【严重】修复了在SQL Server兼容模式下,由于fetch into的 AT未处理,导致@变量结合游标使用,fetch into后接多个变量报错的问题。

45、【1027964】【严重】修复了嵌套聚集函数与常量同时使用时,与order by一起使用时出现报错的问题。

46、【1027961】【一般】修复了由于number类型不支持隐式转换为intx,导致函数无法匹配,array_deleteidx函数索引不支持number类型的问题。

47、【1027960】【严重】修复了嵌套聚集函数与普通聚集函数同时使用时,与group by一起使用时出现报错的问题。

48、【1027959】【严重】修复了嵌套聚集函数,聚集函数中为运算后的结果,与order by一起使用时出现报错的问题。

49、【1027948】【一般】修复了由于package 中不支持自治事务,但可以创建成功未报错,调用时出现报错的问题。

50、【1027933】【致命】修复了vb_probackup增加备份实例,出现segmentation fault(core dumped)报错信息的问题。

51、【1027924】【严重】修复了当修改参数导致数据库无法启动时,执行gs_om -t start20分钟后才超时退出的问题。

52、【1027915】【致命】修复了由于所用的上下文错误,导致数据库宕机的问题。

53、【1027909】【致命】修复了在内存不足,且checkpoint的时间很小的情况下开启线程池,数据库出现挂库的问题。

54、【1027902】【一般】修复了在range分区表中使用number类型,作为分区表的分区键,报错提示不支持number类型作为分区键的问题。

55、【1027900】【一般】修复了由于普通用户对于utl_file_dir没有权限,导致在备份恢复时失败阻塞的问题。

56、【1027894】【致命】修复了由于访问Datum没有判空,导致访问脏内存,数据库宕机的问题。

57、【1027878】【严重】修复了vacuum 性能较差的问题。

58、【1027874】【严重】修复了在资源池环境下,由于段页式当前不支持指定表空间大小,导致执行\d+时提示seg_read blocknum exceeds segment size的问题。

59、【1027866】【致命】修复了使用gs_guc修改参数max_connections=50000,集群无法启动的问题。

60、【1027855】【致命】修复了在资源池化模式下,postgresql.conf配置文件中取消注释ss_enable_reform后,重启数据库失败。再次注释后,重启集群提示成功,但出现数据库反复coredump的问题。

61、【1027849】【严重】修复了在资源池化模式下,pg_controldata、pg_resetxlog等工具的使用--socketpath,如果UDS前面带空格,则执行失败的问题。

62、【1027845】【严重】修复了在资源池化模式下,ss_ock_log_path参数uu的取值校验的问题。修复后要求参数取值为有效且存在的地址。

63、【1027842】【严重】修复了在资源池化模式下,参数ss_enable_reform=on在postgresql.conf中默认被注释,但显示告知了用户无法show和修改的问题。修复后postgresql.conf中移除ss_enable_reform参数。

64、【1027829】【一般】修复了匿名块中调用定时任务后回滚,结果与oracle不一致的问题。

65、【1027828】【致命】修复了当使用gs_initdb初始化数据库时,由于未校验参数-I和--dms_url为空的情况,导致数据库宕机的问题。

66、【1027820】【严重】修复了使用om工具安装数据库,没有PGDATA环境变量的问题。

67、【1027819】【致命】修复了gs_probackup add-instance未指定vgdata导致数据库宕机的问题。

68、【1027818】【严重】修复了由于gs_probackup现不支持在资源池化模式下在备机进行备份,但提示信息不准确的问题。

69、【1027807】【严重】资源池化模式下,恢复enable_global_syscache默认为on。

70、【1027803】【严重】修复了资源池化模式下,ss_rdma_work_config参数取值超过三个数值或只有一个,应该修改失败,但修改成功的问题。

71、【1027802】【严重】修复了资源池化模式下,ss_rdma_work_config参数取值超过三个数值或只有一个,应该修改失败,但修改成功的问题。

72、【1027801】【严重】修复了资源池化模式下,ss_interconnect_url参数不应该允许接受空串,非法字符等数据,但未进行校验的问题。

73、【1027800】【严重】修复了在资源池化模式下,开启archive相关参数提示不明确,导致当设置archive_mode=on时,数据库无法启动的问题。

74、【1027782】【致命】修复了由于没有硬件密码卡加载检查,导致设置audit_hash_enabled = on时启动数据库,数据库宕机的问题。

75、【1027772】【致命】修复了由于匿名块赋值时未做有效性检查,导致使用EXECUTE IMMEDIATE…USING语句后接OUT用于输出参数,数据库断开连接的问题。

76、【1027771】【致命】修复了由于启动dss前会判断是否reg,如果没有reg就不会启动dss。 导致安装一主两备时,出现个别节点的dssserver启动失败的问题。

77、【1027757】【严重】修复了由于存储过程中识别@变量名时引号处理错误,导致当存储过程中变量名为中英文混写,创建存储过程失败问题。

78、【1027724】【致命】修复了由于忽略@变量赋值为返回NULL的函数的情况,导致当创建存储过程中包含try catch,数据库宕机并产生core文件的问题。

79、【1027721】【一般】修复了查询user_tab_columns、dba_tab_columns视图,无法返回结果的问题。

80、【1027719】【严重】修复了在SQL Server兼容模式下,datetime类型运算报错的问题。

81、【1027639】【一般】修复了创建索引时使用decode函数提示语法错误ERROR: syntax error at or near "("的问题。

82、【1027626】【严重】修复了设置参数proc_outparam_override开启后,执行package含default值出现报错的问题。

83、【1027622】【严重】修复了由于在dms模块中,资源锁占用和申请形成环造成死锁,导致`has_ctl switchover失败的问题。

84、【1027550】【一般】修复了内置包DBMS_SESSION.modify_package_state在非oracle兼容模式下可以被成功执行的问题,修复后仅在Oracle兼容模式下可调用。

85、【1027549】【严重】修复了内置包DBMS_SESSION.modify_package_state重置函数入参,调用函数报错提示value overflows number format的问题。

86、【1027544】【一般】修复了datetime2类型作为分区键创建二级分区表的情况。

87、【1027536】【严重】修复了由于number类型转float8类型转换异常,导致percentile_disc函数使用number 数据类型报错的问题。

88、【1027475】【一般】修复了由于MySQL兼容模式不支持pgroonga插件,但报错不明确的问题。

89、【1027467】【严重】修复了由于段页式表随着数据的插入,而触发空间扩展,触及告警阈值导致warning。

的,导致当创建数据库时tablespace maxsize 700M > 644M,创建表报错且创建插入等操作提示重复的waring的问题。

90、【1027382】【严重】修复了在资源池化模式下,由于修改主库的ss_enable_ssl参数后,重启集群失败后还原,无法再启动集群的问题。

91、【1027285】【一般】修复了SQL Server兼容模式下,不允许在创建列存表时使用DATETIME2类型的问题。

92、【1027260】【提示】修复了vb_dumpall导出时指定了with-key选项而未指定with-encryption选项时导出成功的问题。

93、【1027188】【一般】修复了dbms_job.run函数不支持包含事务的存储过程的问题。

94、【1027164】【严重】修复了在MySQL兼容模式下参数vastbase_sql_mode取值不包含only_full_group_by时,order by指定了未出现在distinct目标列中的字段时,执行报错的问题。

95、【1027124】【致命】修复了并行操作plpython3u的创建和删除引发数据库宕机的问题。

96、【1027023】【严重】修复了SQL Server兼容模式下使用CONVERT函数进行字符串到DATETIME2类型的转换时报错的问题。

97、【1027021】【严重】修复了在MySQL兼容模式下,重复调用DELETE语句时仍会检查已删除的字段,找不到信息导致报错的问题。

98、【1026977】【严重】修复了在SQL Server兼容模式下,向datetime2类型的字段上插入‘0-1-1 00:00:00.0' 失败的问题。

99、【1026942】【严重】修复了在MySQL兼容模式下执行select distinct…order by查询语句时报错的问题。

100、【1026922】【严重】修复了MySQL兼容模式下建表时CHARSET选项必须在ENGINE选项之前的问题。

101、【1026813】【严重】修复了当ALTER EXTENSION操作触发了EVENT TRIGGER时报错的问题。

102、【1026804】【严重】修复了由于vb_initdb命令同时指定--no-locale和--locale参数导致数据库宕机的问题。

103、【1026482】【一般】修复了MySQL兼容模式下创建视图时不支持指定属主为current_user的问题。

104、【1026444】【一般】修复了对字段执行 rename 重命名操作后,之前生成的查询缓存未失效的问题。

105、【1026427】【严重】修复了MySQL兼容模式下使用hour()函数时,若入参时间为NULL,返回结果为0,与MySQL的返回结果NULL不一致的问题。

106、【1025952】【致命】修复了jdbc_fdw使用insert命令多次插入的过程中,申请的内存未及时释放导致内存占用异常的问题。

107、【1025183】【严重】修复了调用gs_xlogdump_parsepage_tablepath函数时,在block数量相等的前提下,segment超出时报错信息不合理的问题。

108、【1024981】【一般】修复了由于pg_free_remain_segment函数的第一个入参类型不恰当,导致调用函数且第一个入参为-1时报错的问题。

109、【1024424】【严重】修复了由于MySQL兼容模式下drop view缺少敏感处理,导致删除视图时提示对象不存在的问题。

110、【1024169】【致命】修复了因plpy相关对象的生命周期在多线程架构下的异常,导致在数据库使用时引起宕机的问题。

111、【1023976】【严重】修复了因代价公式不合理导致TPC-H的查询时间异常的问题。

112、【1023303】【严重】修复了由于前缀为mlog_的表被视为内部辅助表,导致其删除失败并报错cache lookup failed的问题。

113、【1024385】【严重】修复了使用GBK字符集初始化数据库实例时,注释信息中含有中文导致无法使用\l元命令的问题。

114、【1026787】【一般】修复了在资源池化模式中对vb_dump生成的备份文件进行恢复时,恢复视图出现报错的问题。

115、【1028324】【严重】修复了在资源池化场景下,segment参数未适配处理RELOPT_KIND_TOAST类,导致执行alter table dbe_pldeveloper.gs_source enable row level security提示unrecoginzed parameter "segment"报错信息的问题。

116、【1027363】【一般】修复了由于数组下标[hashkey - 1]可能小于0,导致越界的问题。

117、【1030568】【致命】修复了由于wlmaarbiter线程error错误升级为panic,导致数据库宕机的问题。

118、【1030107】【严重】修复了使用jdbc_fdw创建dblink,访问Oracle数据库中含CHAR类型的视图,提示报错信息error:length for type char must be at least 1的问题。

119、【1028864】【一般】修复了由于pg_controldata工具读取-I/–instance-id参数时,直接对字符串进行转换,未对字符串本身进行限制,导致执行pg_controldata -I '1.1'时所指定的ID非整型但没有报错的问题。

120、【1028658】【致命】修复了由于发生了死锁,导致在数据库运行半小时后出现vsql连接超时的问题。

121、【1028553】【致命】修复了由于修改audit_file_remain_threshold参数后,调用了pg_delete_audit函数,出现审计线程auditor超内存,导致数据库宕机的问题。

122、【1027812】【致命】修复了由于开启enable_nvm后存在对nvm_buffers参数值的取余操作,导致当nvm_buffers参数取值为0时,出现数据库宕机的问题。

123、【1027497】【致命】对自治事务进行重构,解决自治事务的异常处理问题。

124、【1027375】【严重】修复了由于MySQL兼容模式大小写敏感,导致使用vb_bulkload工具导入有date_add列的表失败的问题。

125、【1027019】【致命】修复了创建表空间时绝对路径不存在,则会话卡住,数据库服务无法正常关闭也无法登陆,但无报错信息的问题。

126、【1025728】【严重】修复了由于类型输入框架太重,执行效率太低,导致DataX迁移MySQL数据至Vastbase G100性能差的问题。

127、【1024278】【致命】修复了由于pfree释放非法内存,导致通过vsql调用dblink_connect连接成功后退出会话,出现数据库宕机并产生coredump文件的问题。

128、【1027844】【致命】修复了在资源池化场景下,在配置文件中添加参数ss_enable_verify_page=on后,重启数据库失败,删除该参数后,重启集群,数据库反复coredump的问题。

129、【1027543】【严重】修复了由于put_line函数只支持bpchar类型入参,而且number转bpchar不是隐式转换导致报错的问题。

130、【1027537】【严重】修复了执行create view xx as select * from xx for update 提示报错信息did not find '}' at end of input node的问题。

131、【1026775】【严重】修复了在资源池化场景下使用vb_dumpall会报错的问题。

132、【1030973】【严重】修复了使用vb_restore恢复数据是,指定了-c -C -d参数,但未导入到指定数据库中的问题。

133、【1029058】【致命】修复了由于使用trunc函数插入大量数据,values返回多行结果时未及时释放上一条结果的内存,导致数据库宕机的问题。

134、【1029021】【一般】修复了Oracle兼容模式将空格形成的字符串作为null处理的问题。

135、【1029020】【严重】修复了在使用HAS 2.x及HAS 3.x部署的高可用集群场景下,使用vb_guc修改参数synchronous_standby_names,报错提示the destination buffer or farmat is a NULL pointer or the inva,lid parameter handle is invoked..的问题。

136、【1028732】【严重】修复了IndexOnlyScan和SeqScan结果不一致的问题。

137、【1028323】【严重】修复了在配置参数enable_prevent_job_task_startup=off、job_queue_processes=10后,创建定时任务create event ,但定时任务没有被定时调用的问题。

138、【1028239】【严重】修复了在计算开启内存保护功能的物理内存余量是否足够时,udf_memory_limit参与了计算的问题。修复后udf_memory_limit不参与计算。

139、【1028131】【致命】修复了BgWorker线程没有设置t_thrd.mem_cxt.msg_mem_cxt内存上下文,导致数据库宕机的问题。

140、【1027978】【致命】修复了u_sess->stat_cxt.pgStatFunctions使用的上下文使用了生命周期为事务的上下文,实际上应该使用会话级别的上下文,导致数据库宕机的问题。

141、【1021980】【致命】修复了由于指针未判空就使用,导致指针在极端情况下(内存不足)可能为空,导致数据库宕机的问题。

142、【1032020】【严重】修复了由于对排序表达式进行处理时未考虑一元表达式的情况,导致空指针错判,出现了在MySQL兼容模式下,order by后面的列名前面有-,执行查询会宕库的问题。

143、【1031996】【一般】修复了由于对libreadline库的判断从7开始往下搜索,检查不到libreadline版本高于7的系统,导致安装数据库时环境检查失败的问题。

144、【1031698】【一般】修复了由于未将convert关键字加入到b_gram.y的col_name_keyword中的问题。

145、【1031513】【严重】修复了调用前后不带空格的=>操作符传递参数时出现报错的问题。

146、【1031503】【一般】修复了调用存储过程时报错record类型不能被转换为自定义类型的问题。

147、【1031379】【致命】修复了由于jdbc_fdw调用没有参数的函数时数据库宕库的问题。

148、【1031222】【致命】修复了执行select * from gs_get_session_memctx_detail('xxx');查询语句时出现数据库宕机的问题。

149、【1031150】【严重】修复了构建Lite版初始化失败的问题。

150、【1030981】【严重】修复了在多并发的情况下,用户登录过程卡顿的问题。

151、【1030955】【致命】修复了执行ALTER OPERATOR CLASS语句出现挂库的问题。

152、【1030804】【致命】修复了插入含有gist索引的表,进行查询时数据库宕机的问题。

153、【1030799】【致命】修复了由于单词拼写错误导致执行grant select (prosrc) on pg_proc to CURRENT_USER语句时引起数据库挂库的问题。

154、【1030792】【致命】修复了由于越界写内存,导致释放内存时数据库宕机的问题。

155、【1030674】【一般】修复了由于MySQL兼容模式下对自增列插入null,进行了默认值替换,导致执行alter sequence 序列名 owned by 表名.列名语句后非空约束not null失效的问题。

156、【1030664】【严重】修复了connect by语句中的instr函数内含有rownum参数时执行报错:ERROR: Unsupported expression found in START WITH or CONNECT BY clause的问题。

157、【1030626】【严重】修复了使用jdbc驱动连接数据库无法对timestamp类型做is null判断的问题。

158、【1030619】【一般】修复了创建function时,校验返回的数据类型报错:ERROR: RETURN must specify a record or row variable in function returning row的问题。

159、【1030600】【致命】修复了由于GetSynonymAndSchemaName函数中使用了syscahe中的内存进行返回,但此内存在releasecace后即会被释放,所以导致内存在被释放后使用,数据库宕机的问题。

160、【1030550】【严重】修复了MySQL兼容模式下导出大写列名的表,但建表语句中列名仍是小写的问题。

161、【1030537】【一般】修复了REMAINDER函数中,除数为异常参数时,报错信息不合理的问题。

162、【1030536】【一般】修复了初始化数据库提示为英文的问题。

163、【1030498】【一般】修复了由于jdbc不使用分号作为结束符,数据脱敏使用分号作为结束符,导致创建/修改用户密码失败,记录审计日志时detail_info记录信息被隐藏,无法识别失败信息的问题。

164、【1030496】【一般】修复了二级分区表user_tables的partitioned字段值显示信息不准确的问题。

165、【1030451】【严重】修复了由于pg_vastbase_context 为共享系统表,导致drop context时出现WARNING信息:you don't own a lock of type rowexclusivelock的问题。

166、【1030365】【一般】修复了dba_jobs视图未能获取升级前创建的定时任务的问题。

167、【1030299】【一般】修复了uuid函数生成随机数占用文件描述符数量超过限制,数据库报错并发生core dump的问题。

168、【1030233】【一般】修复了程序中insert报错:ERROR: could not determine data type of parameter的问题。

169、【1030189】【严重】修复了由于主备切换后,新主机需要回放wal日志,以及vip不能及时建立,导致集群在通过switchover切换主备后,数据库数据缺失一条记录的问题。

170、【1030045】【严重】修复了创建含有double的自定义函数报错的问题。

171、【1029972】【致命】修复了由于获取同义词的名字时,直接使用的是元组的地址而没有拷贝,导致释放元组后对应的内存也被释放,出现报错 :heap-use-after-free in __interceptor_strlen.part.24,数据库宕机的问题。

172、【1029959】【一般】修复了MySQL兼容模式下使用date_sub函数,传入'-0005-12-30' timestamp,语法报错的问题。

173、【1029951】【致命】修复了由于memory_tracking_mode = 'fullexec' 和enable_on_error_rollback=on的情况下,游标的相关内存上下文处理错误,导致报错:heap-use-after-free in CalculateContextSize(MemoryContextData*, long*),数据库宕机的问题。

174、【1029950】【致命】修复了由于在非debug模式打印backtrace,在寻找符号时hang死,导致连接数据库超时的问题。

175、【1029923】【一般】修复了MySQL兼容性下,在升级库调用to_base64和from_base64函数失败的问题。

176、【1029907】【致命】修复了执行partition wise join + order by (分区表),数据库宕机的问题。

177、【1029902】【严重】修复了由于参数plsql_show_all_error开启后,默认的报错级别为NOTICE,在函数make_call_func内报错后得到null结果却继续执行,导致宕机的问题。

178、【1029889】【一般】修复了由于subdate是非保留关键字,导致在MySQL兼容模式下以SUBDATE作为字段名或别名报错的问题。

179、【1029740】【一般】修复了MySQL兼容模式下,union语法中两个查询结果都含有longtext类型时会报错:ERROR: could not identify an equality operator for type longtext的问题。

180、【1029723】【致命】修复了由于解析日期出错获取异常后没有重置错误状态,导致使用vb_bulkload导入60w行数据,含12万行异常数据,数据库挂库的问题。

181、【1029680】【一般】修复了Oracle兼容模式下wm_concat函数中使用rownum,结果不符合预期的问题。

182、【1029665】【严重】修复了postgresql.conf 文件中最后一个参数没有换行符的问题。

183、【1029664】【一般】修复了fixbug版本没有commit号的问题。

184、【1029660】【致命】修复了数据库报错:stack-buffer-overflow in ../../../../libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:225 in __interceptor_strlen,数据库宕机的问题。

185、【1029614】【一般】修复了由于error的信息没有做编码转换,导致数据库编码格式与应用编码格式不一致,应用端显示的报错信息会乱码的问题。

186、【1029512】【严重】修复了由于修改物化视图导致后续报错,出现数据库宕机的问题。

187、【1029467】【严重】修复了java应用执行定时任务引起实例crash的问题。

188、【1029310】【严重】修复了创建function后,查询pg_operator 和pg_proc表,与全量包结果不一致的问题。

189、【1029219】【一般】修复了由于\d命令代码处理没有判断参数,导致报错的问题。

190、【1029187】【致命】修复了创建返回类型是游标的function,调用函数时数据库挂库的问题。

191、【1029173】【一般】修复了由于没有保存对应的数组类型的oid,导致关联数组的元素类型是package1.sub1,其中package1.sub1的基类型为基本类型,package创建失败的问题。

192、【1029127】【一般】修复了由于record类型的参数信息没有保存,导致子类型sub2的基类型是package.sub1,其中package.sub1的基类型为record类型,创建package时报错的问题。

193、【1029096】【致命】修复了由于匿名块编译时报错,没有在异常处理中释放缓存,导致野指针,出现匿名块中subtype之间的相互赋值,执行匿名块出现挂库的问题。

194、【1029078】【一般】修复了使用vb_dump导出数据时报错:column number 0 is out of range 0..-1的问题。

195、【1029017】【一般】修复了vsql客户端工具不支持-u的问题。

196、【1029016】【一般】修复了调用存储过程报错:ERROR: invalid typLen: 0的问题。

197、【1028999】【一般】修复了connect_by时select * 多字段查询的返回结果不准确的问题。

198、【1028967】【严重】修复了DBMS_OUTPUT.PUT_LINE中输出日期类型时报错的问题。

199、【1028958】【一般】修复了调用sys_context报错ERROR:Invalid namespace的问题。

200、【1028893】【一般】修复了由于构造函数中没有传入schema信息,导致用户在其他schema下执行create type ... as table of ...失败的问题。

201、【1028891】【一般】修复了由于拼写错误,导致在MySQL兼容模式下创建postgis插件失败,报错信息中提示database有误的问题。

202、【1028887】【一般】修复了在Oracle兼容模式下,PL/SQL中使用insert all语法报错的问题。

203、【1028854】【提示】修复了vb_initdb在指定--auth-host时,指定sm3出现报错的问题。

204、【1028811】【一般】修复了设置参数enable_pbe_optimization为off 时,自定义函数c2b执行不成功,报错:ERROR: output parameter not a bind variable的问题。

205、【1028778】【致命】修复了由于default_with_secids本不应生效但生效了,导致报错:FailedAssertion("!(!(((tup)->t_data)->t_infomask2 & 0x2000))", File: "heapam.cpp") ,数据库宕机的问题。

206、【1028766】【一般】修复了由于unios包管理工具无法使用,导致使用UniOS2.0 + intel安装包来安装数据库时检查依赖失败的问题。

207、【1028761】【一般】修复了使用vsql工具时不支持使用-D选项, --with-decryption后有空格与无空格返回结果不一致的问题。

208、【1028746】【致命】修复了设置parallel on 2 后执行insert into 操作,数据库宕机的问题。

209、【1028642】【一般】修复了to_char传入时间格式字符串报错ERROR:invalid input syntax for type numeric: "2023-06-25 16:36:29"的问题。

210、【1028634】【一般】修复了由于vsql恢复报错后会卸载硬件设备句柄等资源,导致多次进行\i导入数据,第二次执行卡死的问题。

211、【1028587】【致命】修复了由于上下文问题,导致提示:BadArgument("!(((context) != __null && (((((const Node*)((context)))->type) == T_AllocSetContext) || ((((const Node*)((context)))->type) == T_AsanSetContext))))"),数据库宕机的问题。

212、【1028543】【一般】修复了由于interval参数不支持占位符的写法,导致在MySQL兼容模式下,JDBC调用date_add使用interval $1 hour报错的问题。

213、【1028540】【一般】修复了由于Oracle兼容模式下不支持将'.'作为时间的分隔符进行识别,导致设置nls_timestamp_format参数为'DD-MON-RR HH.MI.SSXFF AM'不生效的问题。

214、【1028538】【严重】修复了执行select * from information_schema.views命令导致数据库实例crash的问题。

215、【1028536】【严重】修复了vb_dump加密导出数据,vsql导入时速度很慢,相比不加密性能劣化严重的问题。

216、【1028530】【一般】修复了数组内元素被赋值null后,数组长度改变的问题。

217、【1028514】【致命】修复了由于申请的DbmsApplicationInfo内存没有及时释放,导致报错:memory is temporarily unavailable,vsql 连接超时的问题。

218、【1028489】【致命】修复了由于动态库加载时重复初始化,ST_3DDistance以投影单位返回两个几何之间的3D笛卡尔最小距离,执行查询时数据库挂库的问题。

219、【1028463】【一般】修复了由于创建类型时member函数中不能识别类型的属性,导致在type body中通过member函数给变量赋值,报错:ERROR: "exchangeid" is not a known variable的问题。

220、【1028461】【致命】修复了由于自治事务引起并行plpython创建删除一段时间后,关闭线程池heap-use-after-free,数据库宕机的问题。

221、【1028458】【严重】修复了由于函数查询中将没有结果的输出传递到变量中,导致创建好pgrouting插件后调用pgr_createTopology函数失败的问题。

222、【1028451】【一般】修复了由于安装数据库成功后,.Vastbase文件版本号显示异常的问题。

223、【1028446】【致命】修复了由于自治事务的信号函数处理不正确,导致自治事务提交xlog相关,数据库宕机的问题。

224、【1028430】【一般】修复了重复对某一列进行修改,没有拦截报错的问题。

225、【1028416】【一般】修复了执行select convert()结果列名却为convert_coding的问题。

226、【1028390】【致命】【1028366】修复了大数据量DUPILCATE KEY UPDATE时出现out of memory,数据库进程被kill的问题。

227、【1028376】【一般】修复了nvl2函数在处理含有连接符的输入时,类型处理错误导致sql执行报错的问题。

228、【1028367】【严重】修复了由于创建基表更新force view时,没有获取到force view所在的schema,导致在模式1使用force view创建视图(依赖模式2的表),在模式2创建表报错:RROR: xxx is not a view的问题。

229、【1028344】【一般】修复了由于升级脚本错误,导致升级版数据库不能使用-操作符。

230、【1028273】【严重】修复了关闭参数enable_tde,查询加密表时数据库宕机的问题。

231、【1028226】【提示】修复了gs_encrypt中对-t参数报错的问题。

232、【1028188】【严重】修复了当存储过程的sql是NULL时,数据库实例宕机的问题。

233、【1028179】【提示】修复了由于在使用\c连接数据库出错时会释放掉全局密钥句柄,导致原连接获取到空的密钥句柄,切换用户失败后重新切换数据库,打印报错信息的问题。

234、【1028114】【提示】修复了由于在vsql加载硬件动态库失败时缺少报错的提示信息,导致取消配置硬件加密环境变量,连接数据库失败,未打印提示信息的问题。

235、【1028055】【严重】修复了当使用江南天安加密卡时,vb_probackup备份时报错提示有文件损坏的问题。

236、【1028052】【一般】修复了由于传入参数被参数检查函数判定为非法,导致\i+恢复时报错:error:cap_key.c:1275的问题。

237、【1028046】【严重】修复了备库回放日志很慢,主备同步异常的问题。

238、【1027995】【一般】修复了sys_connect_by_path函数无法在函数内引用子查询字段的问题。

239、【1027858】【严重】修复了由于审计信息根据数据出错的错误码进行记录,当错误码重复导致审计信息错误的问题。

240、【1027851】【严重】修复了初始化数据库出错后,会删除共享存储的目录,导致集群无法再使用的问题。

241、【1027835】【严重】修复了server_encoding本该为UTF8,但实际为SQL_ASCII的问题。

242、【1027755】【一般】修复了由于未进行正确的判断,导致select @i方式赋值查询时变量名带空格没有报错的问题。

243、【1027689】【严重】修复了datetime类型作为where条件时,setObject报错:operator is not unique的问题。

244、【1027685】【致命】修复了由于使用了释放后的内存,导致报错:heap-use-after-free in TrFindAllInternalObjs,数据库宕机的问题。

245、【1027468】【一般】修复了不支持活动会话内存查询,且报错信息不明确的问题。

246、【1027175】【一般】修复了num_rows显示分区中的数据行数与表行数相同的问题。

247、【1027017】【严重】修复了由于函数名大小写敏感,导致在MySQL兼容模式下,to_numeric 无法把text转成numeric类型的问题。

248、【1026546】【一般】修复了SQL Server兼容模式下,convert函数在转换timesatmp类型时,结果显示有误的问题。

249、【1025922】【严重】修复了insert多条数据,执行SQL报错:SubPlan found with no parent plan的问题。

250、【1025622】【致命】修复了由于数据库启动时共享内存模块会往标准输出打印大量日志,而stderr默认是阻塞模式的,机器性能比较差或者其他情况下一旦有大量的write把stderr缓冲区写满,就会阻塞进程的问题。

251、【1025546】【一般】修复了由于\h select 帮助语法未更新的问题。

252、【1025393】【严重】修复了vb_dump出现大量提示信息:WARNING: could not resolve dependency loop among these items的问题。

253、【1022431】【严重】修复了由于插件未设置正确的退出清理函数,导致配置配置参数 enable_pgroonga = on,在运行状态中停止数据库 vb_ctl stop,检测到内存泄漏的问题。

254、【1020214】【严重】修复了由于plpython等问题,导致重复drop/create extension plpython3u几次后,数据库挂库的问题。

255、【1016413】【一般】修复了在备份时关键字被转换成表达式导致还原报错的问题。

256、【1016410】【一般】修复了当前整形、浮点形数据的导出非必要的耗时流程较多的问题。

257、【1016376】【一般】修复了由于没有考虑内存为0的情况,导致特殊值0.0没有被处理的情况。

258、【1032367】【严重】修复了窗口内使用order by会导致计算结果错误的问题。

行为变更说明

1、系统表及系统视图变更如下:

变更项 变更前 变更后
GS_MATVIEW - 新增matnamespace、jobid字段。
GS_POLICY_LABEL enable_global_syscache默认值为off nable_global_syscache默认值为on
PG_ATTRIBUTE - 新增attisquoted字段。
PG_AUTHID - 新增rolstatus字段。
PG_CLASS - 新增relrewrite字段。
PG_DATABASE - 新增dbmaxsize、spcthreshold字段。
PG_PROC - 新增proparallel字段。
PG_PUBLICATION - 新增pubtruncate、pubddl字段。
PG_SUBSCRIPTION - 新增submatchddlowner字段。

2、GUC参数变更如下:

变更项 变更前 变更后
enable_union_all_subquery_orderby 无enable_union_all_subquery_orderby参数,union all的子查询被优化。 打开参数enable_union_all_subquery_orderby,union all的子查询不优化。
enable_global_syscache 默认值为off 默认值为on
cluster_run_mode - 删除本参数
vastbase_sql_mode 请参考vastbase_sql_mode 取值范围,默认值发生变化:
  • 取值范围新增:ansi_quotes和no_zero_date
  • 默认值变更为:ONLY_FULL_GROUP_BY,ANSI_QUOTES,pipes_as_concat,pad_char_to_full_length
  • behavior_compat_options 无accept_empty_str选项控制空字符串处理。 添加新的选项accept_empty_str,该选项开启时,Oracle兼容模式下会接收空字符串,关闭时则保持原样,空字符串被当做null处理。
    enable_global_result_cache 决定是否启用result_cache。参数级别为POSTMASTER,详情请参考enable_global_result_cacheenable_global_result_cache 参数级别变更为SIGHUP。
    result_cache_mode 会话参数,决定查询结果是否使用查询缓存。详情请参考result_cache_mode 新增AUXILIARY取值,若主库查询缓存关闭,备库开启查询缓存,则主库必须配置为此参数,这样主库上的ddl/dml操作才会令备库上的相应缓存失效,否则备库上的缓存不能失效。此参数值的目的是关闭查询缓存的时候也能在备库正常使用查询缓存,以节约性能。
    nvm_buffers参数和enable_nvm参数 允许开启enable_nvm的同时nvm_buffers为0。 当开启enable_nvm的时候,nvm_buffers不能为0,否则无法启动数据库。
    guc参数default_with_secids default_with_secids参数影响create...as...语法的使用。 default_with_secids参数不影响内核逻辑,参数做保留设计。
    logging_module 用于设置或者显示模块日志在服务端的可输出性。变更前模块范围可参考logging_module。 模块范围发生变化,变更后为所有模块包括:COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,MOT,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PARAM,TIMESERIES,SCHEMA,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UNDO,TIMECAPSULE,GEN_COL,DCF,DB4AI,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,REPSYNC,SQLPATCH,DMS,DSS_API,GPI,PARTITION,SRF,SS_TXNSTATUS,BACKEND

    3、关键字变更情况如下:

    关键字类别 变更项 变更前 变更后
    MySQL关键字 enum 非保留关键字。 保留关键字。
    first 非保留关键字。 保留关键字。
    fixed 非保留关键字。 保留关键字。
    index 非保留关键字。 保留 (可用于函数、类型名)。
    subdate - 删除本关键字
    value 非保留关键字。 保留关键字。
    values 列名 保留关键字。
    PostgreSQL关键字 identity 非保留关键字。 保留关键字。

    4、函数变更

    函数 变更前 变更后 升级应对方案
    year 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    makedate 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    maketime 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    sec_to_time 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    period_diff 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    unix_timestamp 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    timediff 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    hour 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    dayofmonth 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    dayofweek 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    dayofyear 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    weekday 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    quarter 全兼容模式支持 仅MySQL兼容模式支持 如需在其他模式下使用该函数,可以参考数据库安装目录下share/postgresql/mysql_object.sql中的函数定义手动创建函数。
    mssql_connections 全兼容模式支持 仅SQL Server兼容模式支持 sqlserver模式独有特性支持函数,非对外功能,无需处理。
    cast(blob as raw) 全兼容模式支持 Oracle兼容模式不支持 A模式下有新增的blob类型,因此不需要该函数,无需处理。
    cast(raw as blob) 全兼容模式支持 Oracle兼容模式不支持 A模式下有新增的blob类型,因此不需要该函数,无需处理。
    oracle_object.sql 全兼容模式支持 仅Oracle兼容模式支持 Oracle独有特性,其他模式不存在,无需处理
    dbms_metadata.sql 全兼容模式支持 仅Oracle兼容模式支持 Oracle独有特性,其他模式不存在,无需处理
    dbms_aq.sql 全兼容模式支持 仅Oracle兼容模式支持 Oracle独有特性,其他模式不存在,无需处理
    dbms_aqadm.sql 全兼容模式支持 仅Oracle兼容模式支持 Oracle独有特性,其他模式不存在,无需处理

    5、其他变更

    变更项 变更前 变更后
    有限表空间上创建段页式表 有限表空间上允许建段页式表。 有限表空间上不允许建段页式表。
    SQL Server兼容模式下,datetime类型的+、-操作符 不支持SQL Server兼容模式的datetime类型与字符串的+、-操作。 支持SQL Server兼容模式下,datetime类型与字符串的+、-操作符。
    DECODE关键字类型 Oracle,MySQL兼容模式下,DECODE关键字为COL_NAME_KEYWORD类型。 Oracle,MySQL兼容性下数据库,DECODE关键字为UNRESERVER_KEYWORD类型。
    在列存表中使用datetime2类型 不允许在创建列存表时使用DATETIME2类型。 允许在创建列存表时使用DATETIME2类型。
    对于不存在的软连接报错信息有差异 软连接对应的路径被删除,数据库卡住时无报错。 增加数据库卡住时的报错信息。
    定时任务中不支持事务处理。 定时任务中支持事务处理,事务处理与外层调用定时任务的事务隔离。
    创建视图时指定definer 创建视图时不支持指定definer为current_user。 创建视图时支持指定definer为current_user。
    hour()函数 hour()函数传入空字符串时返回0。 hour()函数传入空字符串时返回NULL。
    file_fdw file_fdw可以被删除,但是删除再重建后插件依赖函数仍然建在pg_catalog下。 将file_fdw加入黑名单,不允许删除该插件。
    vb_dumpall 资源池化集群架构下不支持在备库执行vb_dumpall。 资源池化集群架构下支持在备库执行vb_dumpall。
    IndexOnlyScan算子是否回表 处于恢复状态时IndexOnlyScan会根据堆表页面的all visible标记判断是否回表,若标记值为真则不回表;否则回表。 处于恢复状态时IndexOnlyScan必定回表,避免了IndexOnlyScan和SeqScan结果不一致。
    MySQ兼容模式下的CREATE TABLE语法 MySQL兼容模式下建表时CHARSET选项必须在ENGINE选项之前。 MySQL兼容模式下建表时对CHARSET选项和ENGINE选项先后顺序无限制。
    物化视图 可以使用alter对 mlog_xxx(xxx为物化视图原表的oid) 执行修改。 不支持对mlog(物化视图)表执行alter操作。
    select to_char(decode(1, 1, sysdate, ''), 'yyyy-MM-dd') 执行语句报错。 可以正常执行语句。
    Oracle兼容模式下time的识别 不支持将'.'作为时间的分隔符进行识别。 支持将'.'作为时间的分隔符,按照hh.mm.ss.sss或hh.mm.ss进行识别,尚不支持'.'和':'混用。
    vsql连接工具 若未设置并行度,并行度设置为需并行的语句数量,但打印出的并行度是默认为1024。 若未设置并行度,并行度设置为max_connections的一半,若未正常获取max_connections,则设置为100。
    mot_session_memory_detail,mot_global_memory_detail,mot_local_memory_detail,mot_jit_detail,mot_jit_profile函数 非mot版本使用mot_session_memory_detail,mot_global_memory_detail,mot_local_memory_detail,mot_jit_detail,mot_jit_profile函数时,报错提示不支持在集群节点上使用。 非mot版本使用mot_session_memory_detail,mot_global_memory_detail,mot_local_memory_detail,mot_jit_detail,mot_jit_profile函数时,报错提示此函数仅在MOT版本被支持。