VastbaseG100

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

Menu

V2.2 Build 17

版本升级指南

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

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

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

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

补丁编号说明

例:2-2.2-15-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.9 V1.6 V1.2/V1.4/V3.4

Vastbase G100 V2.2 Build 17

commit 标识:20385

发布日期

2024年6月7日

新特性

安装

  • 支持在数据库实例初始化时设置page size

SQL语法

  • 新增支持在线DDL,可有效避免因DDL等锁造成DML和查询语句阻塞的情况。
  • 查询语法新增支持PRIOR,用于构建递归查询,与 CONNECT BY 一起使用,允许根据父子关系来遍历数据,形成一个层级结构的结果集。

函数

系统表

  • 自定义类型增减字段操作支持同步到系统表PG_OBJETC_TYPE。该系统表所有兼容模式下可查,仅Oracle兼容模式下支持更新。
  • 支持统计字段值超过1024 bytes的列信息并记录在PG_STATISTIC系统表中。
  • 新增系统表VB_USAGE_STATISTIC,用于存储数据库历史统计数据,该系统表每隔10分钟会定期记录系统时间和当前xid的max值。

对象

  • 支持通过内置命令查询对应机器在某个时间段内的每日在线时长和每日事务数,详见vb_ctl

SQL引擎

安全

  • 支持对带有可变长字段的表,并且可变长字段作为索引的列进行逻辑数据校验。
  • 密态数据库新增OPE保序加密算法,支持表密文列排序操作。

PL/pgSQL

插件

  • 新增支持pg_bigm插件,该插件提供了全文搜索功能,并允许创建二元语法(2-gram)的GIN索引,以加速搜索过程,从而提高了Vastbase的全文搜索性能。
  • 新增支持pg_prewarm插件,允许管理员手动预加载指定的表或索引数据到数据库的共享缓冲区(shared buffers),这个过程也被称为“预热”。预热后,查询可直接从内存中访问数据,有效提高数据库重启后首次查询时的性能。目前Vastbase仅实现对pg_prewarm的语法兼容,无法保证预热后对查询性能存在提升效果。
  • 新增支持pgvector插件,该插件引入了专用的向量数据类型、运算符和函数,可以直接在 Vastbase数据库中高效存储、操作和分析矢量数据。可以基于向量字段创建IVFFlat和HNSW类型的索引,以在高维向量空间内进行有效快速的搜索。

GUC参数

  • 新增GUC参数enable_ignore_dquotes_for_char_convert,用于控制定长向变长转换时是否加双引号,开启时转换不加双引号。
  • 新增GUC参数enable_je_enhanced,用于控制是否启用JOIN ELIMINATION子表消除功能。
  • 新增GUC参数enable_nonblocking_ddl用于控制是否启用在线DDL
  • 新增GUC参数log_max_size,用于设置日志空间所能容纳的日志总量的最大值,为0时表示不对日志空间容量进行限制,目前仅对服务器日志文件所在的文件夹生效。
  • 新增GUC参数new_sort,用于控制是否开启自适应排序
  • 新增GUC参数new_sort_msdradix_size_threshold,用于在开启自适应排序的情况下,当排序的位宽超过该参数设置的值时,使用 MsdRadixSort 排序算法;反之使用 LsdRadixSort 排序算法。
  • 新增GUC参数new_sort_store_strxfrm_var,用于在开启自适应排序的情况下,对于 TEXT、BPCHAR、VARCHAR 类型,在 collate 不为 “C” 时是否保存 strxfrm() 后的字符串,以提高字符串比较的性能。开启后可以提升字符串比较与排序性能,但会占用更大的工作内存。
  • 新增GUC参数new_sort_string_prefix_length,用于设置在开启自适应排序的情况下,TEXT、BPCHAR、VARCHAR 类型放入排序空间的数据长度。
  • 新增GUC参数scalar_array_filter_pushdown_threshold,用于设置标量数组筛选器下推为索引或表扫描的阈值。
  • 新增GUC参数time_record_level,用于控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句的耗时级别。
  • 新增GUC参数wdr_usage_statistic_retention_days,该参数用于设置VB_USAGE_STATISTIC系统表中记录的存储时间。当参数设置为0时,表示在删除之前的数据后,不会向表中插入新的记录。

Oracle兼容性

  • 物化视图支持使用ON COMMIT语法,在事务提交的同时更新物化视图。
  • 自定义函数中支持嵌套函数,定义的嵌套函数可在函数内部调用,详见子程序
  • 新增支持以下函数:
    • LENGTHC,使用Unicode完整字符返回字符计算长度。
    • UNISTR,用于将Unicode字符转化为对应的字符串表示形式,其它字符保持不变。
  • TABLE函数新增支持cast入参。
  • FIRST_VALUELAST_VALUE函数新增支持IGNORE NULLS选项,用于忽略空值。
  • DBMS_SQL.DEFINE_COLUMN函数新增了对DATE、CHAR、和VARCHAR三种数据类型的支持。
  • 动态性能视图V$SESSION新增osuser 和 machine字段,用于查询客户端操作系统用户名以及执行的机器。
  • 新增GUC参数enable_on_commit_matview用于控制是否支持物化视图的ON COMMIT选项。若开启则支持设置ON COMMIT修饰物化视图,从而设置事务提交时更新物化视图。

MySQL兼容性

  • DECLARE HANDLER语句支持使用NOT FOUND参数,触发一个特定的处理程序,而不是立即退出游标循环。详见DECLARE HANDLER
  • 支持在PREPARE FROM语法后使用变量,可通过GUC参数b_format_behavior_compat_options进行配置,当取值包含b_format_plpgsql_execute时,将EXECUTE statement中的statement为PREPARE处理过的语句,而不是将statement视作一个sqlstring模板执行动态sql。
  • 支持使用RETURNS CHARSET和RETURN ()语法创建函数,详见CREATE FUNCTION
  • 支持使用DECIMAL UNSIGINED ZEROFILL语法,创建一个只能存储非负数值,并且显示时总用零填充到指定长度的列。
  • 支持创建user@host'user'@'host'之类的用户,新增GUC参数b_compatibility_user_host_ignore进行控制。
  • 新增支持以下函数:
    • COMPRESS,用于压缩指定的字符串,可节省存储空间。
    • UNCOMPRESS,用于解压缩压缩过的二进制数据,并返回原始数据。
    • UNCOMPRESSED_LENGTH,用于返回经过压缩的数据在解压缩后的长度。
    • WEIGHT_STRING,用于获取字符串的权重,该函数返回一个二进制字符串,用于字符串的比较和排序。

PostgreSQL兼容性

  • 支持在类型转换时指定目标name数据类型的排序规则。详见COLLATE
  • 支持临时表/全局临时表的ON COMMIT DROP语法。
  • 支持CREATE SEQUENCE IF NOT EXISTS语法,当创建同名的SEQUENCE时不会报错,仅提示该Relation已存在。

SQL Server兼容性

  • 支持字符集排序规则chinese_prc_ci_ai,从而达到在查询数据时忽略大小写的效果,详见排序规则
  • 支持在对表创建的语句级after触发器所关联的触发器函数中,查询inserted 和 deleted中间表

特性优化

SQL语法

  • 在查询语句中,支持对左外连接进行优化,消除不需要的右表,提升查询效率。详见JOIN ELIMINATION
  • 支持在特定场景下消除不影响最终查询结果的ORDER BY子句,从而增强优化器的能力,提高执行效率。详见ORDER BY ELIMINATION
  • 支持在查询语句中使用FOR UPDATE OF语法,仅做语法兼容,支持后跟列名,形如table_name.column_name的写法,但不支持schema.table_name、schema.table_name.column_name。

SQL引擎

  • ROWNUM查询性能优化,原始ROWNUM查询在执行时会整表扫描,然后再判断ROWNUM的条件,执行效率较低,对于特定场景优化为LIMIT节点可以提前结束执行,以提高执行效率。
  • 支持自适应排序,能够将不同数据类型的数据进行解析,并根据实际情况选择合适的排序算法。

安全

  • 审计日志强制保留180天,仅初始用户可进行删除。

插件

  • 适配pgcrypto插件升级至1.2版本。提供了对PGP加密数据进行armor相关操作的能力。

Oracle兼容性

  • PL/pgSQL全局缓存性能提升,目前全局缓存会作为二级缓存,并且仅存储类型和语法树,提升了单会话中多次查询的性能及稳定性。
  • 当参数behavior_compat_options取值为'proc_outparam_override'时,将出参也作为包函数重载的依据。即包内创建重载函数时,只要满足出参个数、出参名称、出参类型中的任意一点不同,即可创建成功。

生态适配

Vastbase G100 新增适配情况如下:

CPU 操作系统 操作系统版本
Intel X86 OpenEuler OpenEuler 22.03 SP3
Rocky Rocky 8.5
NingOS NingOS V3
飞腾D2000 银河麒麟 kylin V10 SP3
统信UOS UOS 1060a
海光C86 OpenEuler OpenEuler release 22.03 (LTS-SP1)
H3Linux H3Linux 2.0.2
鲲鹏920 OpenEuler OpenEuler 23.09
OpenEuler 22.03 SP3
UOS UOS 1050u2a
FusionOS FusionOS 23.0.4
兆芯x86 银河麒麟 kylin V10 SP1 桌面版
kylin V10 SP3
龙芯 3C5000 威视nuctech 威视 1.0

升级须知

  • 使用PL/Python实现自定义过程语言时,禁止使用plpy模块。
  • 禁用Teradata数据库兼容模式。

行为变更说明

模块 变更项 变更前 变更后 注意事项
函数 pv_instance_time - 新增多个统计字段。 -
to_char 报错 The input NUMCacheEntry is invalid, which is Null 与PG一致,返回具体错误信息。 -
系统表 GS_INSTANCE_TIME - 新增统计多个类型时间消耗信息。 -
GS_WLM_SESSION_INFO_ALL - 新增多个字段。 -
GS_WLM_SESSION_QUERY_INFO_ALL - 新增多个字段 -
GS_MATVIEW - 新增字段oncommit,用于标识对应的物化视图是否为ON COMMIT刷新方式。 -
GS_PACKAGE - 新增字段pkgconfig,用于记录针对运行时配置变量的本地设置。 -
PG_AGGREGATE - 新增字段aggobye,标记是否能进行Order By消除优化。 -
PG_PROC - 新增字段proprocoid、proexistoutparam,分别记录子程序的外层程序的oid、判断函数或存储过程是否有出参。 -
DBE_PERF Schema INSTANCE_TIME - 新增多个统计类型。 -
STATEMENT - 新增多个字段。
SUMMARY_STATEMENT - 新增多个字段。 -
WDR Snapshot Schema Time Model - 新增多个字段。 -
系统视图 PG_PREPARED_STATEMENTS - 新增多个字段 -
SQL语法 PRIOR递归查询 PRIOR递归查询语义分析时,不支持greatest操作。 PRIOR递归查询语义分析时,支持greatest操作。 -
递归查询 WHERE条件中PRIOR不生效 WHERE条件中PRIOR生效 -
INSERT ALL语句 给列存表插入数据异常。 不支持插入数据到列存表。 -
不同兼容模式下使用UPSERT语法时发生主键冲突。 所有兼容模式下支持冲突时更新主键。 仅MySQL兼容模式下支持冲突时更新主键。 -
SQL引擎 判断是否满足DELETE条件 旧代码使用UPDATE之前的值判断是否满足DELETE条件 新代码使用UPDATE之后的值判断是否满足DELETE条件,和O保持一致,如果满足DELETE条件则直接执行DELETE,O会先执行UPDATE,这点和O不一致。 升级影响:如果旧版本有使用MERGE INTO UPDATE DELETE语法建立视图,需要重建视图,否则视图执行结果错误。
全局系统缓存 支持范围 PL/Python在Fenced模式支持使用全局系统缓存。 PL/Python在Fenced模式不支持使用全局系统缓存。 需根据需求调整全局系统缓存使用场景。
安全 数据库审计 创建审计策略对用户进行审计不生效。 创建审计策略不支持对用户进行审计。 -
数据库工具 vsql 支持使用-V查询数据库实例版本信息 不支持使用-V查询数据库实例版本信息 -
GUC参数 b_format_behavior_compat_options - 新增控制选项set_keyword_as_colname:指定select name '别名'为类型转换 -
comm_ackchk_time 存在此参数。 删除参数。 -
comm_client_bind 存在此参数。 删除参数。 -
comm_debug_mode 存在此参数。 删除参数。 -
comm_no_delay 存在此参数。 删除参数。 -
comm_ssl 存在此参数。 删除参数。 -
comm_tcp_mode 存在此参数。 删除参数。 -
comm_timer_mode 存在此参数。 删除参数。 -
enable_force_reuse_connections 存在此参数。 删除参数。 -
enable_stateless_pooler_reuse 存在此参数。 删除参数。 -
max_pool_size 存在此参数。 删除参数。 -
minimum_pool_size 存在此参数。 删除参数。 -
pooler_connect_interval_time 存在此参数。 删除参数。 -
pooler_connect_max_loops 存在此参数。 删除参数。 -
comm_maximum_idle_time 存在此参数。 删除参数。 -
pooler_port 存在此参数。 删除参数。 -
驱动 jdbc_fdw带rownum,limit,fetch first row only的查询语句的远端执行计划。 仅有rownum下推,且可能会改变查询语义从而影响结果准确性。 rownum和limit子句均会下推,且不会改变查询语义,理论上能减少这些sql语句的查询时间。 -
Oracle兼容性 字符常量间比较 字符常量末尾空格参与比较 字符常量末尾空格不参与比较 -
table函数内支持select xx() from dual table函数内不支持from dual table函数内支持from dual -
WHERE条件 WHERE条件IN后不加括号的场景下不支持值为NULL。 WHERE条件IN后不加括号的场景下支持值为NULL -
MERGE INTO语法指定的源表和目标表。 不允许源表和目标表为同一个表,执行时报错。 允许源表和目标表为同一个表,执行时成功。 -
内置包utl_raw内函数 cast_to_raw,cast_to_varchar2,bit_xor,substr 可以不带包名调用 必须带包名才能调用 需修改业务中使用utl_raw内置包的调用方式。
MySQL兼容性 AND/OR运算符 AND/OR运算符对于'TRUE'的处理结余与MySQL不一致 AND/OR运算符对于'TRUE'的处理结余与MySQL一致,当字符型的数据类型为CHAR、VARCHAR和UNKNOWN类型时,对于包含不为数值部分的操作数给出告警信息,严格模式下报错。 -
函数show_all_guc_reset的参数名 参数名为首字母大写的Variable_name Value 参数名为小写的 variable_name value select * from show_all_guc_reset() 的返回的列名为纯小写。
SQL语法 执行类似select 'a' 'b' 'c'的查询结果的列名为?Column?,结果为'abc' 执行类似select 'a' 'b' 'c'的查询结果的列名为'a',结果为'abc' -
select name '别名' 默认作为别名用法而不是类型转换。 select name '别名'会将name列的内容转换为别名类型(对于name类型而言会将内容转换成'别名'内容)。 默认情况下 select name '别名'会认为'别名'是name列的别名。可以通过设置GUC参数b_format_behavior_compat_options不包含set_keyword_as_colname来指定select name '别名'为类型转换。 -
自增序列serial insert的value列数小于表列数,且不指定列名的情况插入成功。 insert的value列数小于表列数,且不指定列名的情况插入失败。 需根据业务需求调整相关语句。
时间函数 hour、minute、second函数在输入错误时返回值与MySQL不一致。 修改函数实现,使hour、minute、second函数在输入错误时返回值与MySQL一致。入参为timetz或timstamptz时,可获取对应值 建议根据业务调整返回结果预期。
create table ... with data/with no data语法 与PostgreSQL保持一致。 不支持该用法。 需处理业务中create table ... with data/with no data相关语句。
MySQL兼容模式下between and在执行计划中的显示格式 between and 语法在 B模式中按照函数b_between_and处理,执行计划中展示可参考`Filter: b_between_and(d, '2009-08-01'::date, '2009-08-31'::date)` 当三个入参为相同类型时,采用大于/小于逻辑操作符的方式进行比较,支持索引。执行计划中展示可参考`Filter: ((d >= '2009-08-01'::date) AND (d <= '2009-08-31'::date))` -
时间单位 时间间隔定义为YEAR TO MONTH、DAY TO HOUR、DAY TO MINUTE、DAY TO SECOND、MINUTE TO SECOND、HOUR TO MINUTE、HOUR TO SECOND 兼容MySQL时间单位,时间间隔定义为YEAR_MONTH、DAY_HOUR、DAY_MINUTE、DAY_SECOND、MINUTE_SECOND、HOUR_MINUTE、HOUR_SECOND -
lower_case_column_names lower_case_column_names为0的时候,没有采用不区分大小写的方式比较列名。 lower_case_column_names为0的时候,采用不区分大小写的方式比较列名。 -
vastbase_sql_mode不满足要求时dump时报错情况。 dump失败。 报错请求重新设置参数。 -
PostgreSQL兼容性 NUMBER关键字 不加as时不可作为列别名。 不加as时可以作为列别名。 -

关键字变更情况如下:

关键字类别 变更项 变更前 变更后
MySQL关键字 ascii - 新增,非保留关键字
end 保留关键字 非保留关键字
login_any 非保留关键字 删除
login_failure 非保留关键字 删除
login_success 非保留关键字 删除
logout 非保留关键字 删除
reverse - 新增,非保留关键字
weight_string - 新增,非保留关键字(不能作为函数和类型名称)
SQL Server关键字 login_any 非保留关键字 删除
login_failure 非保留关键字 删除
login_success 非保留关键字 删除
logout 非保留关键字 删除
PostgreSQL关键字 login_any 非保留关键字 删除
login_failure 非保留关键字 删除
login_success 非保留关键字 删除
logout 非保留关键字 删除
rownum 保留关键字 删除
varbinary 保留关键字(不能作为函数和类型名称) 删除

缺陷修复

存储引擎

【1042192】【致命】修复了列存执行sonichashagg 相关查询,出现挂库的问题。

1040765】【致命】insert all 给列存表插入数据出现挂库,不再支持insert all 插入列存表。

【1035555】【致命】修复了SMP并行测试过程中,执行错误的SQL语句任务,query_dop=1004时数据库宕机的问题。

【1035112】【致命】修复了开启并行查询的前提下调用自治事务执行大量DML,数据库宕机的问题。

【1039725】【严重】修复了cstore_buffers设置为100GB时数据库启动异常的问题。

SQL引擎

【1043072】【致命】修复了创建二级分区表时,由于空指针解引用异常导致core dump的问题。

【1039773】【致命】修复了由于字符串查找对as的处理异常导致出现SEGV in __strlen_sse2_pminub报错,数据库宕机的问题。

【1039643】【致命】修复了由于agg算子执行异常,导致执行查询数据库宕机,没有日志输出,有core文件产生的问题。

【1037549】【致命】修复了由于合法性判断逻辑原因,导致的数据库宕机,报错 FailedAssertion(“!(u_sess->opt_cxt.qrw_inlist2join_optmode > QRW_INLIST2JOIN_DISABLE)“, File: “createplan.cpp”)的问题。

1038880】【严重】修复了执行merge into update … delete where语句,where判断条件为 not 0或1 and 2 or 0等常量表达式,G100并不执行delete操作的问题。

【1038523】【严重】修复了由于函数pull_varnos_level逻辑错误,对于部分成员没有初始化,从而导致判断错误,IN子查询多层嵌套,最内层子查询与外层关联,执行报错的问题。

【1037267】【一般】修复了由于解析keep子句中的order by时,别名处理逻辑的问题,导致聚合函数结果集的别名与keep函数的排序列名相同时,报错ERROR:keep (... order by ...) do not support aggregate functions in order by的问题。

安装升级

【1042607】【致命】修复了Vastbase G100 V2.2 Build 15.2升级到V2.2 Build 15.3升级失败的问题。

集群

【1042431】【致命】修复了设置max_flashback_time场景下用benchmark装载数据,集群主机宕机,触发主备切换的问题。

基础元素

【1042882】【致命】修复了select sys_guid() from dual挂库的问题。

【1042774】【致命】修复了使用 dbms_job 定时任务调用 sys_guid()时,数据库重启失败的问题。

【1042764】【致命】修复了由于fcinfo->flinfo指针使用异常导致匿名块中执行插入语句时数据库宕机的问题。

【1040284】【致命】修复了解析嵌套json层数过深导致core的问题。

【1041869】【严重】修复了设置NLS_DATE_FORMAT参数后,使用内置函数systimestamp报错的问题。

【1039936】【严重】修复了由于lower_case_table_names为会话级参数,会话启动中会重新初始化此参数,导致使用大写表名查询报错表不存在的问题。

【1042734】【严重】修复了小于号或大于号和等号中间存在空格,执行报错的问题。

【1039915】【严重】修复了列存表共享缓冲区参数cstore_buffers设置大于50G(上限1024G),数据库启动报错的问题。

【1039730】【严重】修复了正则表达式无法支持中文标点匹配的问题。

【1042891】【严重】在存储过程中使用connect by,将十六进度转换为十进制,报错cache loopup failed for type 0

【1042890】【严重】修复了int8类型无法转为interval的问题。

【1042716】【一般】修复了day函数处理日期报错的问题。

【1041411】【一般】修复了pg_class 中 pg_proc 列属性值(46)与实际(47)不一致的问题。

【1041303】【一般】修复了通过analyze收集表统计信息后,查询all_tab_columns信息有重复的问题。

【1040877】【一般】修复了参数vb_exclude_reserved_words不能在参数文件中重复设置的问题。

【1040139】【一般】修复了dbms_scheduler 失败时 all_scheduler_log 没有错误日志的问题。

【1038546】【一般】修复了报错信息顺序不稳定的问题。

【1037116】【一般】修复了由于缺少对varchar2等类型的处理和转换,导致查询VARCHAR2(3 CHAR)类型数据报错:value too long的问题。

【1027610】【一般】修复了无法通过vb_exclude_reserved_words参数屏蔽delayed关键字的问题。

【1026389】【一般】修复了通过vb_guc set的方式设置lower_case_column_names的值时报错的问题。

【1037034】【建议】修复了开启GUC参数enable_show_any_tuples,执行vacuum时报错信息不合理的问题。

【1024959】【提示】修复了配置参数audit_data_format、audit_directory取值超出1024个字节时报错信息不合理的问题。

【1039505】【提示】修复了vbtrace命令中文提示异常的问题。

数据类型

【1042601】【严重】修复了在long类型字段上建立索引报错的问题。

【1040064】【严重】修复了test_mysql_enum中integer转换枚举类型失败的问题。

【1035459】【严重】修复了在除Oracle以外的其它兼容模式下,为date类型字段插入sysdate时提示oradate只能在A模式下使用的问题。

【1029817】【严重】修复了除MySQL外的其它兼容模式下,允许向int类型字段中插入超出int范围的值的问题。

【1042385】【一般】修复了char类型如果有 ( )转字符串会加双引号处理的问题。

【1040210】【一般】修复了防篡改表使用number类型报错的问题。

【1040141】【一般】修复了创建对象类型后引用对象类型属性时,将属性误判为对象类型方法的问题。

【1039796】【一般】修复了int8zf类型相关操作符出现异常的shell操作符以及导致unit4=unit8不唯一的问题。

【1039702】【一般】修复了date类型与number类型相加报错的问题。

【1038926】【一般】修复了由于auto_null属性赋值不对,导致定义as object 复杂类型,匿名块中%rowtype赋值失败的问题。

【1038919】【一般】修复了由于row类型数据作为select值时,最终调用exec_move_row的value是整个row的value,而target的row会将field拆分,导致定义as object 复杂对象类型,匿名块中select into 赋值失败的问题。

SQL语法

【1043058】【致命】修复了prior *时由于将a_star类型表达式当成了字符串导致内存溢出的问题。

【1042877】【致命】修复了prior xml,order by 场景数据库异常的问题。

【1040987】【1040553】【致命】修复了connect by语句中,右外连接,关键字在start with处,数据库卡住的问题。

【1042557】【严重】修复了分区表设置外键约束,插入数据报错的问题。

【1037962】【严重】修复了由于逻辑复制ddl解析语句时未考虑到字符单位场景,导致逻辑复制时当表字段为字符类型时,未进行精度转换的问题。

【1042040】【严重】修复了varchar->number赋值形转化只能应用隐式规则 转到 col::text = $1::varchar::text,导致不走索引,致使SQL性能低下的问题。

【1041693】【1041567】【严重】修复了过滤条件含有NULL时ORDER BY输出结果缺失的问题。

【1038751】【1041905】【严重】修复了由于逻辑复制未适配修改后的LOB方案,导致LOB类型同步失败的问题。

【1041537】【严重】修复了CTE查询中order by子句,报错:cache lookup failed for attribute 188589 of relation 2的问题。

【1041528】【严重】修复了vb_dump导入create domain 自定义类型字段的数据时将空字符串当成了null的问题。

【1039057】【严重】修复了对于含有聚集函数且有order by的语句,没有检查order by后的列就直接抛弃了order by语句,导致order by不存在的列不报错的问题。

【1038797】【严重】修复了由于ALTER语法逻辑复制遗漏处理该情况,导致ALTER VIEW修改视图所属者同步失败的问题。

【1040694】【严重】修复了由于MySQL兼容模式下不开ansi_quote时,双引号只能用来包字符串,导致外键检查构造的sql语句用双引号包schema和表名时出现异常的问题。

【1040503】【严重】修复了CONNECT BY语句中多表相互外连接嵌套, INNER JOIN 与 LEFT JOIN,结果与oracle不一致的问题。

【1040359】【严重】修复了start with..connect by语法中含表别名及value关键字导致查询错误的问题。

【1040161】【严重】修复了拆分分区后,发布端与订阅端表数据不一致的问题。

【1040058】【严重】修复了CREATE OR REPLACE TYPE在替换场景报错的问题。

【1039975】【严重】修复了SELECT列表及HAVING子句同时使用聚合函数报错:ERROR: aggregate function calls cannot be nested的问题。

【1039504】【严重】修复了show create view执行失败的问题。

【1042863】【严重】修复了prior递归查询语义分析时,使用greatest函数报错的问题。

【1042820】【严重】WHERE条件中PRIOR不生效的问题。

【1043078】【严重】修复了对二级分区表通过COPY FROM导入数据时,导入失败的问题。

【1043008】【严重】修复了查询绑定计划后,设置索引分区不可用,执行查询报错的问题。

【1042866】【严重】修复了connect by 查询含函数嵌套时,执行报错的问题。

【1042848】【严重】修复了递归查询内置函数读取timestamp with/without time zone未传入参数的问题。

【1041498】【一般】修复了创建索引和约束时报错pg_toast_xxx已存在的问题。

【1041045】【一般】修复了create schema if not exists创建模式,查询pg_namespace,nspcollation字段不为空的问题。

【1040950】【一般】修复了RANGE分区表最外层表中插入数据失败的问题。

【1040513】【一般】修复了CONNECT BY语句中交叉连接sys_connect_by_path结果与oracle不一致的问题。

【1040242】【一般】修复了CREATE TABLE LIKE默认没有复制default值的问题。

【1039953】【一般】修复了FORCE INDEX (PRIMARY)不兼容的问题。

【1039950】【一般】修复了别名相同的情况下,查询匹配列名的时候只能在本层内查询,而非由内而外逐层匹配的问题。

【1039940】【一般】修复了由于FULL JOIN重写异常导致出现报错:ERROR: no relation entry for relid 10的问题。

【1039678】【一般】修复了自定义@变量出现在join子查询中,查询结果与mysql不一致的问题。

【1039221】【一般】修复了逻辑复制场景下,drop type删除订阅端不存在的类型时发生阻塞的问题。

【1038768】【一般】修复了MySQL兼容性下,全量物化视图查询使用CTE递归创建失败的问题。

【1038763】【一般】修复了由于pg_get_querydef函数没有考虑到Query被改写的情况,导致发布端创建使用表别名多表关联的物化视图失败的问题。

【1038758】【一般】修复了由于没有考虑start with和next表达式字符串换行的情况,导致创建定时刷新物化视图失败的问题。

【1038009】【一般】修复了由于逻辑复制ddl解析语句时未考虑到字符单位场景,导致在发布端添加char(n char)和char(n byte)类型列时,订阅端日志解析成bpchar不带单位的问题。

【1042428】【一般】修复了视图查询中形如'xx'::text的过滤条件不下推的问题。

【1042240】【一般】修复了由于prior expr 未完整下推至CTE导致connect by prior 语句中使用not exists子查询结果异常的问题。

【1042237】【一般】修复了connect by语句中指定多个prior,使用or连接 (not null,is null)结果异常的问题。

【1042235】【一般】修复了connect by语句中inner join 与 FULL OUTER JOIN嵌套,结果异常的问题。

【1042225】【一般】修复了由于startwithop的过滤条件引用了下层的表,当存在子查询时,无法获取正确的表元数据,导致explain SQL执行报错ERROR: invalid attnum 5 for rangetable entry v1的问题。

【1042052】【一般】修复了查询时使用concat函数效率下降的问题。

【1041636】【一般】修复了behavior_compat_options含有proc_outparam_override配置项执行with function语句报错的问题。

函数

【1042471】【致命】修复了regexp_like中数组使用错误的问题。

【1041516】【严重】修复了pg_stat_系列函数无法获取分区信息的问题。

【1040364】【严重】修复了lead、lag函数返回值类型不正确的问题。

【1039493】【严重】修复了PATINDEX函数匹配字段不同字符数据类型,报错cache lookup failed for collation的问题。

1040466】【一般】修复了to_char函数报错信息异常的问题。

【1040135】【一般】修复了jsonb_path_query_first函数不支持返回值true 或false到boolean类型t或f的转换。

【1038755】【一般】修复了Oracle兼容模式下,由于没有对trunk()函数的类型进行匹配,导致仅支持trunc(date)场景,不支持trunc(date,text)场景的问题。

对象

【1043038】【致命】修复了merge partition合入system分区表时挂库的问题,修改为不支持合入system分区,当合入非range/interval分区时报错。

【1039742】【致命】修复了创建自定义聚合函数中包含多个as语句的场景下,查询时数据库宕机的问题。

【1036953】【致命】修复了在没有基表的情况下强制创建视图后,由于视图编译失败,子事务回滚清理了SPI资源,导致数据库宕机的问题。

【1042911】【严重】修复了修改表字段/压缩参数及vacuum等会重建表或者删除_fsm文件的操作后,查询压缩率函数compress_ratio_info执行结果异常的问题。

【1042251】【严重】修复了发布订阅中,订阅端在tablesync.cpp中获取发布端表信息时,查询语句没有连接namespace和rel,查到了其他模式下的同名表,导致字段匹配失败的问题。

【1042218】【严重】修复了当GUC参数standard_conforming_strings开启时,逃逸字符使用不双写反斜线无法正常返回结果。

【1042121】【严重】修复了逻辑导出时部分对象模式设置错误,导致对象丢失的问题。

【1041894】【严重】修复了创建分区表,分区键使用列进行类型转换,创建时报错的问题。

【1041888】【严重】修复了创建二级分区表,分区键使用date_part函数,导出时报错的问题。

【1041670】【严重】修复了在含异常处理的函数中创建视图并触发异常,查询视图不存在的问题。

【1040415】【严重】修复了修改字段名为tid时失败的问题。

【1036172】【严重】修复了创建含有convert函数的视图后,执行\d元命令查看的视图定义与创建时不一致的问题。

【1041504】【一般】修复了在inlist to join的过程中,如果目标表为for update/share的操作目标,进行转换时rowmark没有正确处理的问题。

【1042120】【一般】修复了log_statement设为ddl时,创建type提示WARNING的问题。

安全

【1042898】【致命】修复了创建事件触发器后,给表设置安全标签,数据库宕机的问题。

【1042684】【1042365】【致命】修复了开启停写策略,审计日志占满,超过license日期场景下数据库宕机的问题。

【1042343】【致命】修复了创建非加密表,打开表加密开关成功,插入数据,数据库宕机的问题。

【1041761】【致命】修复了创建列存加密表,插入大量数据后,执行vacuum full操作,偶现数据库宕机的问题。

【1041551】【致命】修复了创建列存加密表,插入大量数据后,删除表,数据库宕机的问题。

【1041264】【严重】修复了设置日志空间告警,触发审计,生成审计日志,会话卡住的问题。

【1042792】【严重】修复了授予ALTER ANY SEQUENCE权限后未拥有PUBLIC模式下序列ALTER权限的问题。

【1042272】【严重】修复了开启审计日志转存后,执行存储过程,触发审计,数据库夯住的问题。

【1042803】【一般】修复了审计日志中detail_info隐藏了创建和修改密码的相关信息,导致无法识别错误提示的问题。

【1042689】【1042173】【一般】修复了创建脱敏策略失败,查询审计日志报错的问题。

【1042394】【一般】修复了创建列存加密表,指定部分列加密无效,查看表数据,全表加密的问题。

【1042300】【一般】修复了创建列存分区加密表,插入数据报错的问题。

【1042206】【一般】修复了执行SQL失败时,未记录语句序列审计的问题。

【1041854】【一般】修复了创建加密表,执行copy to stdout卡住的问题。

【1040291】【一般】修复了普通用户执行analyze verify异常的问题。

1039581】【一般】策略审计不支持审计用户,建议使用安全审计对用户登录状态进行审计。

【1040228】【一般】修复了alter system set方式修改audit_directory值超出长度限制后,通过guc set方式修改ssl值为on报错的问题。

【1038640】【一般】修复了由于审计参数列表中缺少了部分审计参数,导致三权分立开启,部分audit相关的参数,vbadmin能查看,vbaudit不能的问题。

PL/pgSQL

【1042894】【致命】修复了PL/pgSQL中使用argname=>argvalue传参造成数据库宕机的问题。

【1039671】【致命】修复了打开PL/pgSQL全局缓存时,由于包变量缓存异常,导致执行dbms_aq时挂库的问题。

【1041549】【致命】修复了debug版本,function返回游标变量类型不匹配导致挂库的问题。

【1042460】【致命】修复了PL/pgSQL全局缓存由于自治事务同步变量时未进行datatype判断访问到空指针,导致挂库的问题。

【1040774】【致命】修复了自定义模式下subprogram重构,与原内容一致,自定义模式发生变化,执行挂库的问题。

【1040390】【严重】修复了匿名块中调用存储过程报错:查询没有结果数据的目的地的问题。

【1040256】【严重】修复了由于自治事务更新子类型对象的mtime,与主事务发生冲突,导致包中存储过程相互调用含有自治事务时,多次执行出现卡死的问题。

【1040181】【严重】修复了package中含有自治事务时,调用报错包不存在的问题。

【1040160】【严重】修复了多个package相互依赖,执行带自治事务的匿名块报错的问题。

【1039590】【严重】修复了逻辑复制场景下删除包函数存储过程跨schema同步失败的问题。

【1039052】【严重】修复了由于解析type名字时逻辑错误,导致创建package报错ERROR: cache lookup failed for package settleadmin的问题。

【1038971】【严重】修复了由于vb在plpgsql实现自定义嵌套表类型时没有考虑和agg算子的结合,导致聚合函数入参类型为自定义嵌套表类型时,查询中调用时报错:cache lookup failed for type 0的问题。

【1038902】【严重】修复了由于切换用户后,当更新package到全局时没有对本地package进行鉴权,导致报错没有权限的问题。

【1038849】【严重】修复了子程序在每次编译父函数时都会重新创建子程序,导致主事务和自治事务中子程序的事务id不匹配,自治事务以为子程序被并发用户修改导致报错的问题。

【1038786】【严重】修复了由于代码中误删了没有初始化块的情况,导致包体同步失败的问题。

【1042446】【严重】修复了package中使用自治事务在收到ctrl c信号后,在报fatal之前未进行清理自治事务全局缓存得问题。

【1042279】【严重】修复了存储过程中的dblink查询从record类型数据中取值当作过滤条件,执行效率低下的问题。

【1042003】【严重】修复了在函数中定义表类型为事务临时表(事务结束后表被删除),第二次调用函数时报错表已经存在的问题。

【1039726】【严重】修复了由于自治事务中当同步package状态时没有检查package是否有效,导致存储过程开启自治事务,匿名块调用存储过程报错编译失败,并输出不相关语句的问题。

【1041837】【严重】修复了自定义type中返回char类型结果多出双引号的问题。

【1039986】【严重】修复了由于subtype后续编译时没有添加datums到当前plsql编译空间,导致调用package提示VastPackageRuntimeState object and Package mismatch的问题。

【1041525】【严重】修复了由于key在currentTransactionId数字个数大于等于8时出现拷贝越界,导致执行匿名块报错:dbms.lob_og.cpp : 120 : The destination buffer or format is a NUlL pointer or the invalid parameter handle is invoked.的问题。

【1041390】【1041183】【严重】修复了存储过程声明handler场景下,执行没有跳出loop循环体导致数据库卡住的问题。

【1041292】【严重】修复了父过程中定义的rowtype类型,在子过程中调用时,与Oracle返回结果不一致的问题。

【1041149】【严重】修复了修改package 所在的schema,执行package 报错的问题。

【1040787】【严重】修复了包内对象数量较大且含有自治事务时执行缓慢的问题。

【1040143】【一般】修复了由于部分场景下A模式会抛出NO_DATA_FOUND错误,导致当存储过程中含有select xxx into xxx语法时,若返回结果为空调用存储过程报错的问题。

【1040121】【一般】修复了CompositeTypeStmt拷贝函数异常的问题。

【1041092】【一般】修复了复合类型在存储过程子过程中赋值导致数据库实例CRASH的问题。

【1040028】【一般】修复了数组初始化时如果有NULL元素,数组对应位置不可见,导致数组count与Oracle不一致的问题。

【1039861】【一般】修复了由于package全局哈希表中的needinit标志只在package第一次同步到全局的时候进行了更新之后没有更新,导致package多层嵌套,不同窗口执行结果不一致的问题。

【1039724】【一般】修复了存储过程中含有select xxx into xxx语法,若返回结果为空调用存储过程报错的问题。

【1039390】【一般】修复了MySQL/PostgreSQL兼容模式下,创建自定义函数时使用多变量赋值,创建函数报错的问题。

【1030366】【一般】修复了数据库在调用存储过程时堆栈溢出导致实例宕机的问题。

【1027219】【一般】修复了MySQL兼容模式下,创建存储过程失败并在报错提示中将变量名视列名的问题。

【1022335】【一般】修复了使用create or replace语法创建type作为存储过程入参数据类型,再次使用create or replace创建同名type时报错的问题。

【1042781】【一般】修复了匿名块内部定义出参名重载过程,执行报错的问题。

【1042552】【一般】修复了设置behavior_compat_options含有proc_outparam_override,执行可变参数个数的with function语句报错的问题。

【1042550】【一般】修复了设置behavior_compat_options含有proc_outparam_override,执行table参数类型的with function语句报错的问题。

【1042524】【一般】修复了创建package,涉及函数重载时报错ERROR: record “cur_clientpart” is not assigned yet when get datum type info的问题。

【1042156】【一般】修复了在PostgreSQL和SQLServer兼容模式下可配置behavior_compat_options='proc_outparam_override'的问题。

【1042108】【一般】修复了DBE_PLDEBUGGER获取当前调试的语句,获取失败时终止调试的问题。

【1041903】【一般】修复了由于pl子程序中出现row.field变量时,子程序row的field->dno异常,导致父过程中定义的rowtype类型在子程序调用时与Oracle返回结果不一致的问题。

【1041884】【一般】修复了dbms_output.put_line直接输出数组元素值报错的问题。

【1039558】【提示】修复了创建发布订阅后删除不存在对象时报错提示cache lookup failed for relation0提示不友好的问题。

【1041314】【提示】修复了不支持创建列存表,报错提示信息拼写有误的问题。

备份恢复

【1043073】【致命】修复了当uppercase_attribute_name为on时,使用 vb_restore 出现异常问题。

【1042508】【致命】修复了由于并发线程过多导致vb_probackup在全量备份模式下传输数据文件过程中core dumped的问题。

【1041646】【致命】修复了系统表utl_file_dir中插入数据的场景下,执行vb_dump 出现dump相关core的问题。

【1041257】【致命】修复了列存表执行dump,出现vb_dump相关core的问题。

【1042760】【严重】修复了由于vb_dump执行函数CheckSqlmode中非MySQL兼容模式退出时没有释放内存,导致内存泄漏的问题。

【1041483】【1041423】【严重】修复了基于表定义重写规则,vb_dump备份表时报错的问题。

【1041339】【严重】修复了vb_dump备份存储过程后再恢复到新库,恢复时报语法错误的问题。

【1040648】【严重】修复了开启三权分立,使用vbaudit和vbsso用户导出,出现core dump的问题。

【1040314】【严重】修复了MySQL兼容模式下,表名中含有多个”\“时,vb_dump导出报错的问题。

【1040107】【严重】修复了由于语法处禁止了类型转换表达式作为分区键,导致vb_dump导出操作将date_part函数做了错误的类型转换。

【1040122】【一般】修复了由于MySQL兼容模式下自增序列设置初始值,导致vb_dump导出数据后恢复报错的问题。

逻辑复制

【1027655】【严重】修复了单机状态使用逻辑复制功能时订阅端无法创建订阅的问题。

插件

【1036897】【严重】修复了分布表在分区数量较大时,导入数据耗时过慢的问题。

数据库工具

【1041210】【严重】修复了vsql查询多行“大数据量”的行失败,报lost synchronization with server的问题。

外部数据封装器

【1042494】【严重】修复了使用dblink查询远端表时,自动将被查询表的schema换成了dblink的用户名的问题。

【1041520】【严重】修复了两个不同的dblink,连接同个数据库,生成的foreign schema名相同的问题。

【1040091】【严重】修复了DBLINK中聚集函数查询计划不下推的问题。

【1040565】【一般】修复了oracle_fdw无法查询Oracle端的NVARCHAR2和CLOB类型数据,报错无法转换的问题。

【1036908】【提示】修复了重复创建oracle_fdw时,报错提示与预期不符的问题。

资源池化

【1040550】【致命】修复了资源池化中cm_ctl stop -n2停止备节点,另一个备节点coredump的问题。

【1038419】【严重】修复了一主一备集群,开启按需回放,kill新主,重新拉起集群后,集群一直无法拉起,reform状态卡在in-ondemand-redo的问题。

【1038406】【严重】修复了由于cleanup锁和按需回放的分区锁发生死锁,导致开启按需回放,大压力下tpcc读写业务锁超时的问题。

【1038405】【严重】修复了由于社区网络通信问题,导致开启按需回放,对主节点注入掉电故障,集群对外服务后,再重新拉起集群,集群reform时间太久的问题。

GUC参数

【1043039】【严重】修复了参数 unix_socket_directory 不为空,参数 enable_bbox_dump 修改失效的问题。

驱动

【1042247】【严重】修复了varbinary类型,无法通过preparestatement.setBinaryStream()传参的问题。

【1042246】【严重】修复了varbinary类型,无法通过Preparestatement.setBytes传值的问题。

【1042245】【严重】修复了varbinary类型,无法通过preparestatement.SetBlob传值的问题。

【1037668】【严重】修复了第三方库源码perl包太旧,perl5编译安装失败的问题。

【1037321】【严重】修复了Oracle兼容模式下,OCILobCopy amount参数为0时,执行失败的问题。

1036674】【严重】修复了JDBC连接数据库时,外表rownum无法转换为limit子句,导致原查询语义被改变,查询结果不正确的问题。

Oracle兼容性

【1042883】【致命】修复了perform调用包含出参的函数时报错的问题。

【1042339】【致命】修复了由于包函数出参重载功能中,未给定义ParamListInfo变量的回调函数paramAssignValue赋值,导致调用该函数时数据库宕机的问题。

【1039222】【致命】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致在包体中使用insert all into语法时,调用包时挂库的问题。

【1039213】【致命】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致在包体中使用insert all into语法,调用时未报错,查询挂库的问题。

【1038714】【致命】修复了Oracle兼容模式下,package中的自治事务使用record 出现挂库的问题。

【1043084】【严重】修复了由于aggrewrite未考虑cast节点导致查询中含有cast时报错的问题。

【1042865】【严重】修复了DBMS_LOB.convertToBlob 对于blob为空且src_offset不为1时,执行结果与Oracle不一致的问题。

【1042695】【严重】修复了PERFORM语句中,当函数重载开关关闭且isPerform为true时,utl_file.put_line使用报错的问题。

【1041835】【严重】修复了递归查询语义分析改写嵌套agg时未考虑参数是var,导致报错failed on assertion in initsplan.cpp的问题。

【1041577】【严重】修复了游标结合update where current of语法使用,更新结果和oracle不一致的问题。

【1041480】【严重】修复了ALTER PACKAGE OWNER时报错 unrecognized object的问题。

【1041337】【严重】修复了由于触发器函数内,package变量未进行拷贝的相应处理,导致触发器中调用包变量返回结果不符合预期的问题。

1041312】【一般】修复了由于varchar数据违反raw数据格式要求,导致内置包UTL_RAW函数执行报错的问题。

【1041291】【严重】修复了update tab set () = (select start with )语法报错的问题。

【1040032】【严重】修复了列名为大写的情况下,执行存储过程报错的问题。

【1039225】【严重】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致在包体中使用insert all into语法时出现数据错误的问题。

【1039202】【严重】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致在包体中使用insert all into语法,插入的表列数与select表的列数不一致时,包调用成功,查询插入表报错的问题。

【1039201】【严重】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致在包体中使用insert all into语法,insert all的结果刷掉了其他指定列的数据的问题。

【1039198】【严重】修复了Oracle兼容模式下,插入数据时当values为空的时候,由于没有对select的targetlist和目标列做对应解析处理,导致预期与oracle不相符的问题。

【1038783】【严重】修复了Oracle兼容模式下,增量物化视图和基表在不同表空间时,增量物化视图刷新失败的问题。

【1038749】【严重】修复了Oracle兼容模式下,自治事务中修改全局变量的值,其他自治事务无法获取最新的值的问题。

【1038718】【严重】修复了Oracle兼容模式下,由于未在创建同义词之前判断同义词是否存在,导致主事务和自治事务重复进行创建同义词,最终导致死锁的问题。

【1038689】【严重】修复了Oracle兼容模式下,由于在用%type时没有对record类型变量进行解析,导致引用类型为自定义类型时报错package不存在的问题。

【1038424】【严重】修复了Oracle兼容模式下,dbms_lob.read(bfile)函数的offset参数范围及参数含义有误以及offset>文件长度的报错信息与Oracle不一致的问题。

【1038421】【严重】修复了Oracle兼容模式下,自定义嵌套表类型在OBJECT TYPE中调用,创建type body时报错的问题。

【1038346】【严重】修复了Oracle兼容模式下当package中有私有变量时,在把全局pack状态更新到自治事务本地时,会出现ndatums对不上的情况,导致在session1创建package,执行后,session2 重构包体再次执行package报错的问题。

【1038332】【严重】修复了Oracle兼容模式下,自治事务使用package中的变量,执行报错的问题。

【1038329】【严重】修复了Oracle兼容模式下,由于在在报错之前没有释放锁,导致存储过程中使用自治事务时出现报错的问题。

【1038328】【严重】修复了Oracle兼容模式下,由于在使用匿名自治事务时没有对句柄进行清理,导致匿名块中使用自治事务时出现报错的问题。

【1037775】【严重】修复了Oracle兼容模式下,由于exch_rt是关联数组不是嵌套表,而在当前版本只有嵌套表才支持exists函数,因此导致在调用包含exch_rt的存储过程时报错的问题。

【1037665】【严重】修复了Oracle兼容模式下,在表中有数据的时候,给表字段添加检查约束时报错的问题。

【1037193】【严重】修复了Oracle兼容模式下,由于dbms_lob.substr函数注册的默认参数声明的位置出错,导致使用旧lob时,dbms_lob.substr和CONVERTTOBLOB入参为nclob类型,执行报错的问题。

【1036927】【严重】修复了由于平台适配问题导致的Oracle兼容模式下,内置包DBMS_UTILITY.ANALYZE_SCHEMA执行结果报错的问题。

【1036603】【严重】修复了Oracle兼容模式下,调用dbms_crypto.encrypt函数对数据加密,需要第二次执行SQL才能执行成功的问题。

【1033011】【严重】修复了Oracle兼容模式下执行匿名块,其中含有被双引号包裹的大写record类型名,匿名块执行时报错的问题。

【1026882】【严重】修复了V2.2 Build 13版本中创建DBLINK插件失败的问题。

【1036063】【一般】修复了Oracle兼容模式下,向table of type类型的字段中直接插入type类型数据时插入失败的问题。

【1035453】【一般】修复了 \h元命令查看ALTER VIEW/FUNCTION/PROCEDURE/PACKAGE/TYPE的语法帮助信息中,未包含使用ALTER…COMPILE命令对PL/SQL对象重新编译的语法说明。

【1035304】【一般】修复了PL/pgSQL中创建函数并为一入参设置默认值为数组类型,由于Oracle兼容模式下数组类型隐式转换受限而创建失败时的报错信息不合理的问题。

【1034438】【一般】修复了递归查询不支持窗口函数的问题。

【1034022】【一般】(偶现)修复了Oracle兼容模式下在本地创建dblink远端一个函数的同义词时,删除函数重建后再调用时报错“function xxx isnot exclusive”的问题。

【1031193】【一般】修复了Oracle兼容模式下嵌套程序的子程序以由SYS_REFCURSOR为入参,而子程序未继承游标参数导致调用嵌套程序时报错的问题。

【1030516】【一般】修复了Oracle兼容模式下包内使用嵌套程序时,子类型sub2的基类型是package.sub1,而package.sub1的基类型为集合类型(关联数组),调用时报错的问题。

1029404】【一般】修复了Oracle兼容模式下,使用MERGE语法进行匹配的目标视图和源视图是同一个时语法报错的问题。

【1029097】【一般】修复了Oracle兼容模式下在存储过程中定义SUBTYPE时名字出现重复时未报错的问题。

【1027745】【一般】修复了Oracle兼容模式下执行含dbms_xslprocessor的自治事务时出现ERROR并且缺少部分返回信息的问题。

【1027586】【一般】修复了开启vbplsql_check进行语义检查后,创建含伪类型inout参数的存储过程失败的问题。

【1020991】【一般】修复了由于对象类型成员方法调用自身member方法时,PL/pgSQL没有处理self参数,导致子类函数内部调用重写函数失败的问题。

【1042810】【一般】修复了不加as使用别名报语法错误的问题。

【1042738】【一般】修复了SQL不支持比较字符中间有空格回车等空白字符的问题。

【1042503】【一般】修复了在intersect 前后使用oradate和date,类型无法比较的问题。

1042353】【一般】修复了WHERE条件IN后不加括号的场景下,值为NULL时报错的问题。

【1041289】【一般】修复了update tab set () = (select start with )语法,select返回多条结果时报错信息不合理的问题。

【1041274】【一般】修复了connect by语句中or表达式的子表达式含有rownum时报错的问题。

【1041226】【一般】修复了clob、blob、name、char作为列字段,创建表失败的问题。

【1040961】【一般】修复了where in 后面绑定变量不加括号时语法报错的问题。

【1040955】【一般】修复了where条件in后面不加括号运算结果异常的问题。

【1040575】【一般】修复了递归查询语法中,START WITH condition 中使用table函数异常的问题。

【1040467】【一般】修复了联合查询逻辑下判断oradate到date类型转换异常的问题。

【1039907】【一般】修复了DBMS_SCHEDULER.CREATE_JOB_CLASS:logging_level设置run,log history设置为-1,仍旧可以保存日志的问题。

1038245】【一般】修复了Oracle兼容模式下,table函数中嵌套使用SELECT语句发生语法报错的问题。

【1036685】【一般】修复了PL/pgSQL程序中SQLERRM打印的错误码为空的问题。

【1036614】【一般】修复了创建子类型为record类型时,subtype未与基类型产生关联,导致匿名块调用时报错的问题。

【1042921】【1042921】【一般】修复了对于字符常量的对比处理与Oracle不一致的问题,修改为末尾空格不参与比较。

MySQL兼容性

【1042591】【致命】修复了CREATE USER带IF NOT EXISTS选项时,如用户已存在且指定IDENTIFIED BY场景下挂库的问题。

【1041712】【致命】修复了创建表设置charset以及collate,使用元命令\d+查看表结构时数据库宕机的问题。

【1041638】【致命】修复了由于MySQL兼容模式下对JSON的”\“处理异常导致访问JSON数据时数据库宕机的问题。

【1041572】【致命】修复了执行带@变量的查询语句时数据库宕机并产生 core的问题。

【1040456】【致命】修复了@变量使用在where子句中,执行查询数据库卡住,ctl+c无法停止的问题。

【1040367】【致命】修复了执行@变量的查询时由于直接使用未定义的uservar时,没有判断set的类型是否可直接转为Datum指针,导致数据库宕机的问题。

【1040156】【致命】修复了@变量作为内置函数入参,执行查询内存持续上涨的问题。

【1040080】【致命】修复了使用default函数异常的问题。

【1039535】【致命】修复了插入binary(n)类型 “\0”后的数据丢失的问题。

【1041637】【严重】修复了standard_conforming_strings开启时,逃逸字符使用不双写反斜线无法正常返回结果的问题,导致aes_encrypt/aes_decrypt结果异常的问题。

1042743】【严重】修复了语法器对TARGET_LIST中的字符串列表处理与MySQL不一致的问题。

【1042850】【严重】修复了由于GetSpecificPartOfTime返回值类型错误导致hour函数异常的问题。

【1042832】【严重】修复了MySQL兼容模式下开启b_func_display_mode时,由于函数返回的列名与函数名不同导致vb_dump失败的问题。

【1042733】【严重】修复了操作符->、->>在json_set函数中使用报错的问题。

【1042706】【严重】修复了操作符-> ->> !在含有异常处理的函数中使用,没有走到异常处理逻辑的问题。

【1042516】【严重】修复了longblob类型插入中文字符报错的问题。

【1042596】【严重】修复了select for update of语句报错invalid memory alloc request size的问题。

【1041818】【严重】修复了转义字符处理异常的问题。

【1041791】【严重】修复了参数lower_case_column_names为1时show variables报错的问题。

【1041740】【严重】修复了由于语义分析时会把表名都强行转成小写,导致创建视图成功,调用失败的问题。

【1041479】【1040280】【严重】修复了自增序列serial,结果与MySQL不一致的问题。

【1041471】【严重】修复了prepare语句结合@变量使用,报语法错误的问题。

【1041443】【严重】修复了由于numeric_in函数入参为”时报错,导致ORDER BY(id+“)执行报错的问题。

【1041270】【严重】修复了@变量作为内置函数入参时报错的问题。

【1040971】【严重】修复了,create table as+with no data语句在列数大于1时报错的问题。

【1040079】【严重】修复了使用show_status函数异常的问题。

【1039900】【严重】修复了MySQL兼容模式下向量引擎报错不支持variable的问题。

1038208】【严重】修复了MySQL兼容模式下,由于vb的关键字和MySQL存在差异,VB下name属于类型,select name '别名'会被识别为类型转换用法,导致列名大小写在引号里面显示错误的问题。

1037807】【严重】修复了MySQL兼容模式下,由于设置了参数vastbase_sql_mode导致'||'词法解析为不同含义,最终导致dump时语法错误的问题。

【1037772】【严重】修复了MySQL兼容模式下,prepare语句执行varbinary类型插入时,报错长度太长的问题。

【1040615】【1040552】【严重】修复了PREPARE后对表结构进行DDL操作,该PREPARE无法再次使用的问题。

【1034787】【严重】修复了MySQL兼容模式下使用CONVERT函数进行字符集转换时无法正常显示中文结果的问题。

【1034318】【严重】修复了MySQL兼容模式下,由于\0被转义成空字符导致返回结果不符合预期的问题。

【1031910】【严重】修复了MySQL兼容模式下,长存储过程中执行json_set函数时性能较差,执行耗时过久的问题。

【1042547】【一般】修复了LIKE语法中使用binary类型返回结果不符合预期的问题。

【1042452】【一般】修复了关键字end使用异常的问题。

【1042336】【一般】修复了使用左外连接、模式、表大小写敏感判断错误的问题。

【1042160】【一般】修复了base64函数入参为'on'或'off'时,调用函数失败的问题。

【1042144】【一般】修复了部分collation context成员未初始化的问题。

【1042123】【一般】修复了GUC参数vastbase_sql_mode不能用vb_guc工具配置的问题。

【1042102】【一般】修复了lower_case_column_names为0时,建表指定外键,列名大小写与前面建表列名大小写不同的问题。

【1041914】【一般】修复了正则表达式子串匹配次数为0场景下使用regexp_substr函数执行结果异常的问题。

【1041833】【一般】修复了float(p,0) 类型解析为numeric(p,0) 将浮点类型转换为整数类型,类型转换不合理的问题。

【1041647】【一般】修复了distinct函数对collation为utf8_general_ci的表执行结果异常的问题。

【1041532】【一般】修复了vastbase_sql_mode未设置ansi_quotes时,delimiter异常的问题。

【1041511】【一般】修复了使用regexp_replace函数与MySQL数据库结果不一致的问题。

【1040979】【一般】修复了serial类型异常转化为int类型的问题。

【1040915】【一般】修复了lower_case_table_names为0,当表名含有大写字母时,vb_dump使用-t导出报错no matching tables were found的问题。

【1040634】【一般】修复了json_search 函数,escape_str的值为0时,结果异常的问题。

【1040607】【一般】修复了select关联查询中给@变量赋值报错:rel 1 already exists的问题。

【1040604】【一般】修复了反引号作为标识符,执行报错的问题。

【1040074】【一般】修复了datetime2类型使用异常的问题。

【1040000】【一般】修复了signed、integer等类型转换不兼容的问题。

【1039982】【一般】修复了由于date_add函数解析interval类型中没有考虑用户变量的情况,导致@变量出现在interval后报错的问题。

【1039867】【一般】修复了range table是function scan时,由于序列化反序列化有多余逻辑,导致解析出错的问题。

【1039837】【一般】修复了if函数第一个参数为字符串时,返回结果异常的问题。

【1039699】【一般】修复了time类型使用date_format和to_char转换异常的问题。

【1039428】【一般】修复了MySQL兼容模式下调用from_base64函数时入参为'on'、'off',调用函数失败的问题。

【1039368】【一般】修复了MySQL兼容模式下使用CREATE TABLE AS创建表时,为新表字段指定约束时报错“Invalid table column definition”的问题。

【1039076】【一般】修复了MySQL兼容模式下,由于prepare触发计划缓存,缓存中的prepare stmt as @var 中的变量不更新的问题。

【1038645】【一般】修复了MySQL兼容模式下,含有自增列的表名称带有空格时,vb_dump导出报错query failed: ERROR: unterminated quoted identifier at or near “”\““的问题。

【1038631】【一般】修复了MySQL兼容模式下,当用户变量和外层列字段同名时报错的问题。

【1038330】【一般】修复了MySQL兼容模式下,函数输入参数与表列名重名,导致函数调用时报错的问题。

【1037356】【一般】修复了MySQL兼容模式下,递归with查询中传入列名查询失败的问题。

【1034739】【一般】修复了MySQL兼容模式下插入数据时指定类型为cidr时报错的问题。

【1034473】【一般】修复了MySQL兼容模式下,创建dayofmonth()函数作为分区键的range+hash分区表后,增加分区失败的问题。

【1034232】【一般】修复了MySQL兼容模式下无法正常使用TABLE OF type类型创建自定义函数的问题。

【1031842】【一般】修复了MySQL兼容模式下调用json_unquote函数时对于\f的转义结果与MySQL不一致的问题。

【1031042】【一般】修复了MySQL兼容模式下错误地使用操作符->或JSON_EXTRACT函数时未按预期进行报错的问题。

【1030712】【一般】修复了MySQL兼容模式下,参数lower_case_table_names为0(即大小写敏感)时,使用\dt,\dv,\dn、\det、\du元命令查看各对象名时,只能查到小写对象的问题。

【1030469】【一般】修复了MySQL兼容模式下,json_search函数的escape_str参数值为0时结果与MySQL不一致的问题。

【1030452】【一般】修复了MySQL兼容模式下执行多表联合更新,一个表的名称与另一个表中的某个字段名相同时,执行UPDATE更新表数据失败的问题。

【1030373】【一般】修复了MySQL兼容模式下在字符串中使用#表示注释内容,查看结果时异常显示COMMENT字样的问题。

【1029501】【一般】修复了MySQL兼容模式下开启全密态,使用 has_cmk_privilege和has_cek_privilege查询密钥的使用权限时,报错密钥不存在的问题。

【1027240】【一般】修复了MySQL兼容模式下为INT字段定义UNSIGNED属性并插入数据,根据该字段值进行排序时结果有误的问题。

【1026579】【一般】修复了\h查看CREATE/ALTER VIEW语法帮助信息中,缺少MySQL兼容模式下使用SQL SECURITY语法为视图添加安全属性用法说明的问题。

【1026577】【一般】修复了在除MySQL以外的其它兼容模式下也能使用day()和dayofmonth()函数的问题。

【1025328】【一般】修复了MySQL兼容模式下,lower_case_table_names为1(对象名大小写不敏感)时,使用COMMENT语法为字段添加注释时因大小写不匹配而执行失败的问题。

1025075】【一般】修复了非MySQL兼容模式下insert on duplicate允许更新主键的问题。

【1024376】【一般】修复了MySQL兼容模式下rpad函数的执行结果与MySQL不一致的问题。

【1020304】【一般】修复了convert函数与order by联合使用出现错误的问题。

【1019721】【一般】修复了MySQL兼容模式下使用date_add函数时,使用@变量作为参数时传入失败的问题。

【1018185】【一般】修复了convert函数转换为不支持转换的类型时,执行结果与MySQL不一致的问题。

【1042654】【一般】修复了创建加密表指定enable_tde=off,报语法错误的问题。

【1042869】【一般】修复了float8数据在extra_float_digits = 3的情况下,数据查询错误的问题。

【1016708】【一般】修复了lower_case_table_names参数为0时,schema对于大小写不敏感的问题。

【1031072】【提示】修复了MySQL兼容模式下调用JSON_UNQUOTE函数的返回值类型错误的问题。

PostgreSQL兼容性

【1042735】【严重】修复了修改identity列属性报错列不是identity列的问题。

【1042194】【1042197】【严重】修复了rownum关键字无法作为列的别名问题。

【1041979】【严重】修复了create table like创建临时表时报错的问题。

【1041014】【1040654】【严重】修复了建表和btree索引,执行备份时,内存泄漏的问题。

【1038789】【一般】修复了PostgreSQL兼容模式下,创建物化视图使用filter解码异常的问题。

【1032565】【一般】修复了PostgreSQL兼容模式下,执行PG风格的分区声明语法时,查询计划中没有提前筛选无法命中的分区,导致实际执行了代价更高的查询计划的问题。

【1030293】【一般】修复了通过PG风格的分区创建语法创建的分区表,通过\d元命令查看的分区个数有误的问题。

【1042325】【一般】修复了varbinary作为入参变量时被识别成类型的问题。

SQLServer兼容性

【1042857】【严重】修复了create type时由于charset设置异常,导致插入数据报错的问题。

【1042799】【严重】修复了由于int到varbinary为显示转换,导致SELECT BETWEEN…AND查询结果与SQLServer不一致的问题。

【1036624】【严重】修复了SQL Server兼容模式下无法将timestamp转换为datetime2的问题。

【1039476】【一般】修复了set image类型变量为字符串报错:failed to find conversion function的问题。

【1039438】【一般】修复了SQL Server兼容模式下使用dateadd函数时date参数使用不支持的类型仍能成功执行的问题。

【1039433】【一般】修复了SQL Server兼容模式下,PL/pgSQL将EXEC设计为关键字,导致使用EXEC调用含@@变量的存储过程失败的问题。

【1038484】【一般】修复了SQL Server兼容模式下,由于实现临时表#table时,未考虑与按位异或运算符#相区分,导致数字操作符#计算失败的问题。

【1034207】【一般】修复了SQL Server兼容模式下,标识符为unicode字符,无法使用方括号作为分隔符创建数据库的问题。

【1030036】【一般】修复了SQL Server兼容模式下创建表,表字段类型为datetime2,为该字段添加default约束,指定其默认值为getdate()函数,创建表报错的问题。

【1027614】【一般】修复了SQL Server兼容模式下声明变量数据类型为interval day to second并成功赋值后,调用变量时报错“unrecognized interval typmod:7176”的问题。

【1026980】【一般】修复了SQL Server兼容模式下日期时间类型datetime2支持的日期范围与SQL Server中不一致的问题。

【1022892】【一般】修复了pg_type系统表中查看的datetime2类型记录错误的问题。

【1042700】【一般】修复了PL/pgSQL中查询语句不支持带变量赋值操作的问题。

【1042377】【一般】修复了解析+=操作符的时候,没有将左边的操作数和右边的相加,而是直接用了右边的结果,导致结果错误的问题。

【1041486】【一般】修复了当表字段为decimal(n)类型时使用IDENTITY属性创建表报错的问题。

【1040094】【提示】修复了sp_xml_preparedocument函数报错信息有误的问题。