VastbaseG100

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

Menu

V2.2 Build 10(Patch No.2)

发布日期

2022年11月8日

升级方式

VPatch工具升级。可参考使用VPatch进行版本控制

commit 标识:10236

新特性

1、新增Oracle兼容性:

2、新增PG兼容性:

3、新增MySQL兼容性:

4、新增存储数据完整性校验功能

5、新增适配wal2json逻辑解码插件适配

特性优化

回收站功能优化:使用回收站功能时先判断对象名称,再判断回收站是否为空,减少不必要的系统表访问。

使用限制

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

缺陷修复

1、【1016066】修复了部分兼容模式下,separator被设置成了非保留关键字,但并未加在非保留关键字列表中的问题。删除非MySQL兼容性的separator关键字,将MySQL兼容性的separator设置为保留关键字。在dump工具中,增加对数据库兼容性的查询,并针对不同兼容性数据库在关键字检索时使用对应的关键字列表。

2、【1016326】修复了函数中处理数组元素引用变量报错的问题。

3、【1016327】修复了追加参数 log_destination = 'stderr,csvlog'到配置文件后,重启数据库Coredump的问题。

4、【1016843】修复了使用DBLINK远程访问进行查询时由占用锁导致的并发超时问题。

5、【1016791】修复了存储加密使用全局变量时未判空导致数据库启动时出现Coredump的问题。

6、【1016333】修复了向带索引的列存表大批量插入数据时耗时久的问题。

7、【1016591】修复了Oracle和MySQL兼容模式下,创建与表连接的序列后触发自增列导致查询结果翻倍的问题。

8、【1016336】修复了并发修改postgresql.conf配置文件时出现Coredump的问题。

9、【1016343】修复了因获取cpuusage的时机不对导致explain analyze的结果不合理的问题。

10、【1017370】修复了在PostgreSQL兼容模式下plpython3u扩展创建失败的问题。

11、【1017371】修复了在MySQL兼容模式下默认值函数没有'0'这个默认值导致插入'0'实际插入空的问题。

12、【1016349】修复了timestamp函数不支持识别NaN的问题。

13、【1016372】修复了主机进行PITR后XLOG未清理干净导致备机重启失败的问题。

14、【1016380】修复了开启并行解析后,在多事务的情况下返回LSN错误导致重启应用后重复解析数据的问题。

15、【1016286】修复了因不支持wm_concat函数导致无法使用internal数据类型的问题。

16、【1016409】修复了事务隔离级别为可重复读时,执行insert into… on duplicate key update nothing报错的问题。

17、【1017185】修复了设置set func_colname_with_args=on不生效的问题。

18、【1015401】修复了show jdbc_fdw.maxheapsize查看的结果与实际设置不符的问题。

19、【1016430】修复了user_cons_columns和dba_cons_columns视图定义有误导致视图查询结果有误的问题。

20、【1016540】修复了执行自治事务的bgworker启动失败导致报错信息未能发送给父线程的问题。

21、【1016196】修复了使用create or replace synonym语句更新带dblink的同义词时,没有对系统表的dblink字段进行更新,导致查询同义词结果有误的问题。

22、【1016208】修复了查询时使用connect by语法结果有误的问题。

23、【1016720】修复了设置参数div_precision_increment后精度显示结果与MySQL不一致的问题。

24、【1012115】修复了设置查询并行度query_dop=1时,执行full join查询报错的问题。

25、【1016980】修复了Oracle兼容模式下,执行创建包操作时将%type变量类型设为varray会出现数据库断开连接的问题。

26、【1014166】修复了MySQL兼容模式下,设置参数behavior_compat_options='display_leading_zero'无法全局生效的问题。

27、【1016983】修复了使用DBLINK远程连接进行查询分区表操作时,报错提示信息不准确的问题。

28、【1016984】修复了使用vsql连接数据库时限制了–with-decryption必须和–with-key一起使用的问题。

29、【1016985】修复了集群状态下修改max_flashback_time导致备库不能登录的问题。

30、【1016731】修复了嵌套聚合函数后使用with…as语法出现报错的问题。

31、【1013405】修改了因数据库系统对红黑树相关函数的参数异常处理导致的数据库系统挂死的问题。

32、【1015987】修复了由于不断调用存储过程触发审计导致磁盘占满引起数据库实例挂机后无法正常重启的问题。

33、【1017014】修复了MySQL兼容模式下执行cast函数后的返回结果有误的问题。

34、【1017015】修复了设置include-origin参数在部分版本中不生效的问题。

35、【1017024】修复了开启审计后日志中不存在空间告警信息的问题。

36、【1017025】修复了replace into…语法无法用于存储过程、自定义函数和触发器中的问题。

37、【1016262】修复了当别名与字段名相同时,order by子句将别名识别为字段名的问题。

38、【1016264】修复了使用select…group by后接的值为负数时出现挂库现象的问题。

39、【1016265】修复了执行完业务流程后系统固定触发短暂休眠导致关闭数据库耗时过长的问题。

40、【1016527】修复了因pg_stat_statements插件无法处理多条SQL语句同时执行的情况导致内存越界从而引发数据库实例崩溃的问题。

41、【1013468】修复了MySQL兼容模式下,返回numeric的函数或运算符没有固定精度的问题。

42、【1016028】修复了统信UOS_1050在安装数据库时出现“数据库初始化失败”报错的问题。

43、【1016297】修复了ustore表对interval分区执行exchange操作时出现报错的问题。

44、【1016301】修复了查询时使用了复杂的正则表达式导致执行失败出现报错的问题。

45、【1016318】修复了因init_gtt_storage函数没有对merge into语句进行适配,导致对全局临时表执行merge into语句时出现报错的问题。

数据库行为变更说明

变更项 升级前 升级后
wal2json插件功能
  • 不支持wal2json插件功能;
  • wal2json插件在解析wal日志时,无法根据replica identity的设置解析出更新和删除的旧元组的正确值;
  • wal2json插件不支持include-origin选项。
  • 支持wal2json插件功能,将wal日志转换为json格式;
  • 可以根据replica identity的设置解析出更新和删除的旧元组的正确值;
  • wal2json插件支持include-origin选项。
主备环境 备库不允许写属性的操作发生,开启flashback特性之后,在某些场景下会要求在数据库当中执行写属性的操作,导致备库卡死。 备库禁止flashback特性,在备库执行相关sql函数(select * from sometable flashback(10), select * from pg_flashback('public.sometable', 10))时报错,有相关报错信息。
behavior_compat_options参数 MySQL兼容库中behavior_compat_options参数无法全局设置。 MySQL兼容库中behavior_compat_options参数可以全局设置。
newArray的匹配规则 array[index:identifier]这种形式的写法在语法分析时,把其中的:identifier 当成了占位符来处理,导致了例如函数中有array[1:$3]同时出现了$和:identifier两种写法时,报不能同时使用$和:xx的错。 调用array[index:identifier]写法形式的数组成功。
vb_probackup备份工具 vb_probackup不支持备份逻辑复制槽,导致发布端在备份恢复后缺少订阅端复制槽,订阅端请求连接时报错,发布订阅连接断开。 vb_probackup支持备份逻辑复制槽,备份恢复后连接不断开,功能正常。
interval分区交换 对interval交换分区进行交换,exchange失败。 对interval交换分区进行交换,exchange成功。
order by子句 聚合函数中有某一列的别名与列名相同时,执行报错。 处理order by字段时,当别名与字段名相同,解析targetlist时返回别名对应的聚合函数,执行不报错。
connect by带多表的查询 connect by中有连表查询时,处理连接条件下推逻辑有误导致宕机。 connect by中有连表查询时能执行成功。
cast as char 原始cast(x as char) 等价于 cast(x as char(1))。 MySQL兼容模式数据库下的 cast(x as char) 变成和MySQL一样的规则,等价于cast( x as varchar)。
存储加密和数据完整性校验 不支持江南天安KMS存储加密与数据完整性校验。 支持江南天安KMS存储加密与完数据整性校验。
同义词synonym 同义词synonym对象不支持引用序列sequence。 同义词synonym对象支持引用序列sequence。
lower_case_column_names参数对字段名大小写的影响 不支持guc参数控制字段名大小写。 增加guc参数lower_case_column_names来控制字段名大小写。
各个兼容性数据库的关键字列表对dump工具的影响
  • 使用dump工具进行检索关键字时,只检索Oracle兼容性的关键字列表;
  • separator关键字设置为非保留关键字,但在语法文件中未加入非保留关键字列表。
  • 删除非MySQL兼容性的separator关键字,将MySQL兼容性的separator设置为保留关键字;
  • 在dump工具中,增加对数据库兼容性的查询,并针对不同兼容性数据库在关键字检索时使用对应的关键字列表。
create or replace synonym语句 使用create or replace更新带dblink的同义词,dblink字段不自动更新。 使用create or replace更新带dblink的同义词,dblink字段能够自动更新。
plpgsql和prepare语句中的replace into replace into语句在plpgsql和prepare中执行报错。 replace into语句能够正确插入数据。
vastbase_sql_mode校验 在不同模式下都会校验vastbase_sql_mode。 只在mysql兼容模式下校验vastbase_sql_mode。
正则表达式匹配 某些模式下的正则表达式无法识别。 正则表达式能执行成功。
内存不足时宕机问题 日志中出现内存不足的错误,当前会话会杀掉消耗内存过多的会话。 内存不足时当前会话不会杀掉消耗内存过多的会话。
备机PITR恢复 备机PITR恢复后仅清理(置0)恢复点所在XLOG页面的日志。 备机PITR恢复后会将恢复点之后的XLOG日志进行清理(置0)。
func_colname_with_args参数
  • 查询函数返回结果集字段不带参数列表;
  • func_colname_with_args为实例级别参数。
  • 增加func_colname_with_args参数控制函数返回结果集字段,开启该参数后查询函数返回结果集字段带参数列表;
  • func_colname_with_args为会话级别参数。
CREATE TABLE INHERITS Vastbase不支持继承表功能。
  • 开放CREATE TABLE table_name[INHERITS(parent_table[,...])]语法功能;
  • 对普通行存表开放继承表功能,禁止有继承关系的约束使用约束的启用和禁用功能;
  • 禁止在分区表、ustore表、列存表、行压缩表、全局临时表使用继承表功能。

相关链接:升级方法介绍