VastbaseG100

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

Menu

Vastbase V2.2 Build 10(Patch No.12)

发布日期

2023年9月29日

升级方式

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

commit 标识:15917

新特性

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

2、支持事件触发器的创建,编辑和删除。

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

4、新增了VB_VERSION函数,用于返回数据库版本号,详见系统信息函数章节的VB_VERSION函数

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

6、LOWER函数支持UUID类型的入参。

7、新增以下Oracle兼容性:

  • 新增以下内置包函数:

    • DBMS_LOB.WRITE:从BOLB(CLOB)开头的指定偏移量offset开始,将指定数量amount的数据写入BLOB(CLOB)中。

    • DBMS_LOB.APPEND:将源BLOB(CLOB)数据追加到目标BLOB(CLOB)数据后。

  • 支持在使用窗口聚集函数的条件下使用DISTINCT去重过滤,参见窗口函数支持DISTINCT过滤

8、新增以下MySQL兼容性:

9、新增以下PostgreSQL兼容性:

  • 支持REGNAMESPACE类型,该类型是OID在命名空间下的别名类型。

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

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

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

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

使用限制

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

缺陷修复

1、【1032536】【严重】修复了select查询中包含fetch next n rows only,并将其作为sys_refcursor的定义语句,next后跟定义的变量时,创建存储过程报错的问题。

2、【1032499】【致命】修复了由于升级脚本缺少otherdb,导致在除postgres库外的其他库, pg_vastbase_login_info表结构缺少一列,进而造成升级过程中出现core文件的问题。

3、【1032275】【一般】修复了系统表中查询不到函数jsonb_path_exists相关信息的问题。

4、【1032218】【致命】修复了构造plpgsql_pkg_HashTable时未设置HASH_FUNCTION标记导致使用string_hash函数计算哈希值,而实际的哈希键为OID类型,两者不匹配的问题。

5、【1032216】【严重】修复了江南天安加密环境升级失败的问题。

6、【1032202】【致命】修复了升级加密接口而未对旧版本加密表适配导致的旧版本表加密失败的问题。

7、【1032179】【一般】修复了系统表pg_proc中的proargnames字段内容为空的问题。

8、【1032089】【一般】修复了lower函数识别不到UUID的问题。

9、【1030826】【致命】修复了MySQL兼容模式下pg_tablespace创建视图并删除数据后,重新创建vastbase数据库成功,但却无法登录的问题。

10、【1032069】【致命】修复了关闭GUC参数enable_global_syscache,导致升级后无法启动的问题。

11、【1032052】【一般】修复了Vastbase G100与Vastbase M100数据解析方式不同的问题。

12、【1031992】【一般】修复了vb_probackup进行全量物理备份时出现Segmentation fault报错的问题。

13、【1030742】【一般】修复了数据库编码格式与应用编码格式不一致,从而应用端显示的报错信息乱码的问题。

14、【1030736】【一般】修复了使用pg_get_tabledef函数查询垂直分区表DDL报错的问题。

15、【1032173】【致命】修复了使用升级脚本升级数据库之后,启动数据库失败,产生core文件的问题。

16、【1029943】【严重】修复了alter table modify column语句修改列默认值未生效的问题。

17、【1029941】【一般】修复了alter table modify column语句增加列时报错新加列包含NULL的问题。

18、【1029844】【一般】修复了\h alter table没有获取到alter table change语法帮助信息的问题。

19、【1028499】【严重】修复了convert函数转化数值为BINARY类型报错cannot cast type numeric to "binary"的问题。

20、【1032498】【严重】修复了varchar类型转换结果比全量包少了json的问题。

21、【1032072】【一般】修复了升级环境使用jsonb-号操作符失败的问题。

22、【1031406】【严重】修复了更新表数据时未读入更新元组的数据信息导致访问空指针,进而导致数据库实例crash的问题。

23、【1029849】【严重】修复了plpgsql中没有适配insert ignore语法,导致 insert ignore 在函数中使用报错的问题。

24、【1029944】【严重】修复了alter table modify column语句修改列约束条件NOT NULL前后逻辑矛盾的问题。

25、【1030181】【一般】修复了Op操作符先匹配=>,导致符号=>没有当做赋值符号处理的问题。

26、【1030534】【一般】修复了convert函数date+time,转换成类型timestamp时,显示格式有误的问题。

27、【1029307】【严重】修复了Vastbase升级过程中date类型转换结果比全量包少的问题。

28、【1029853】【一般】修复了使用ALTER change语句修改表字段类型,字段的NOT NULL表现与MySQL不一致的问题。

29、【1032127】【严重】修复了由于建立分区没有同步父表的索引信息,从而导致的upsert语句更新数据,有unique约束的字段存在重复值的问题。

30、【1032083】【一般】修复了regnamespace函数的系统表字段信息不符合预期的问题。

31、【1032151】【严重】修复了由于语法判断部分传入空指针,导致PG兼容模式下创建分区表指定if not exists选项挂库的问题。

32、【1032165】【严重】修复了在PG兼容模式下,创建表时使用表空间报错的问题。

33、【1032171】【严重】修复了创建表时使用text作为分区报错的问题。

34、【1032172】【严重】修复了在PG兼容模式下,创建分区表时设置外键约束语法错误的问题。

35、【1032187】【严重】修复了创建分区表作为普通表的继承表理应创建失败,实际hash分区表却创建成功的问题。

36、【1032189】【一般】修复了将普通表添加为hash分区表的分区,插入相同数据在不同分区不报错的问题。

37、【1032211】【严重】修复了vb_restore恢复的数据缺少部分视图的问题。

38、【1032222】【一般】修复了在PG兼容模式下,Attach Partition语法附加表与目标表列个数不一致,修改表结构一致后,attach失败的问题。

39、【1032226】【一般】修复了创建事件触发器会报警告:generating possibly-non-unique OID for "pg_event_trigger"的问题。

40、【1032239】【严重】修复了在PG兼容模式下,分区表语法ALTER TABLE删除约束时,报错约束不存在的问题。

41、【1032243】【严重】修复了在PG兼容模式下,游标与分区和分区表结合,查询数据不正确的问题。

42、【1032245】【严重】修复了在PG兼容模式下,使用vb_bulkload为分区表或分区插入数据,导入报错的问题。

43、【1032365】【致命】修复了一主两备长稳测试中,主库宕机并出现 core 文件的问题。

44、【1032375】【一般】修复了系统表查询不到json_array函数的问题。

45、【1032585】【严重】修复了由于vb_dump导出透明加密相关表时未对encrypt_algo参数使用符号格式化,导致恢复时语法解折失败的问题。

46、【1032593】【严重】修复了由于vb_dump -a只导出数据不导出定义,提示无权限的问题。

47、【1032633】【严重】修复了升级库中使用tar格式导出数据,导出文件大小异常,恢复提示input file is too short的问题。

48、【1032635】【一般】修复了升级库中tar格式导出,vb_restore恢复失败,提示could not find header for file "7292.dat" in tar archive的问题。

49、【1032648】【严重】修复了关键字EVENT的变更导致的升级失败的问题。

50、【1032656】【严重】修复了调用gs_encrypt函数失败的问题。

51、【1032657】【严重】修复了使用gs_encrypt工具失败的问题。

52、【1032660】【一般】修复了使用vb_probackup的多线程并行方式备份,备份失败报错ERROR: Backup RXBA7L failed的问题。

53、【1032688】【一般】修复了设置密钥轮转失败的问题。

54、【1032700】【一般】修复了由于tar格式在导出时会对各数据库对象生成临时文件,在使用硬件加密时对每个临时文件都进行了注册清理从而临时文件数量超出限制,导致导出失败的问题。

55、【1032770】【严重】修复了centos系统,创建加密表,插入数据导致数据库宕机的问题。

56、【1032772】【一般】修复了系统表中无DATEDIFF函数信息的问题。

57、【1026298】【严重】修复了pg_amproc中缺少oradate和timestamp数据类型转换的函数,从而导致存储过程执行报错的问题。

58、【1032578】【严重】修复了由于升级脚本中表名和列名的大小写不一致导致的升级失败的问题。

59、【1032750】【严重】修复了创建plpython3u插件失败,报错:The destination buffer or format is a NULL pointer or the invalid parmeter hadle is invoked的问题。

60、【1033136】【严重】修复了自动化脚本安装9104版本数据库,升级至PSU12失败的问题。

61、【1032186】【致命】修复了PSU11升级到PSU12失败的问题。

62、【1033176】【致命】修复了从10603升级到PSU12,回归出现core文件的问题。

行为变更说明

变更项 升级前 升级后
GUC参数rewrite_rule rewrite_rule没有 'rownumenhance'选项。 rewrite_rule支持设置选项'rownumenhance',可以将rownum < const \ rownum <= const的场景转为limit常量算子。