VastbaseG100

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

Menu

Vastbase G100 V2.2 Build 5(Patch No.161)

发布日期

2022年8月30日

新特性

1、适配Postgis3.2版本

2、支持jsonb数据类型

3、MySQL兼容性–支持find_in_set函数

4、PG兼容性–字符串连接符+null执行结果对标PG

修复缺陷

1、【ID1009847】修复了(a join b) full join c 的查询结果与原生PG和Oracle的不一致问题

2、【ID1010033】修复了数组元素赋值没有判断数据类型导致数据库宕机问

3、【ID1009859】修复了执行语句select (select q from (select 1,2,3 where f1>0 union all select 4,5,6.0 where f1<=0) q) from int4_tbl失败的问题

4、【ID1009929】修复了执行语句CREATE FOREIGN TABLE xxx SERVER xxx 报错的问题

5、【ID1009897】修复了插入数据infinity, -infinity,查询结果显示为inf, -inf的问题

6、【ID1009932】修复了SELECT '1|2|4|5|6'::tsquery 结果与PG不一致的问题

7、【ID1009904】修复了select current_timestamp = now()结果为f的问题

8、【ID1009860】修复了select '4714-11-23 16:00:00-08 BC' :: timestamptz 执行失败的问题

9、【ID1009637】修复了order siblings by与distinct同时使用会报错的问题

10、【ID1009914】修复了询时区Europe/Moscow时间,与查询时区MSK时间不一致的问题

11、【ID1009918】修复了select xmlparse(content “),content是空值报错的问题

12、【ID1009898】修复了select case when then end 在某些情况下结果与PG不一致的问题

13、【ID1010242】修复了参数track_functions设置为all时发生内存泄漏的问题

14、【ID1010217】修复了order siblings by查询字段与oracle不一致,select * 时结果集会多出伪列的问题

15、【ID1010098】增加了在create tablespace时,会检查pg_tblspc目录下的tablespace软连接的目标是否为软连接,是则报错的提示

16、【ID1010348】修复了含参数的嵌套表使用递归查询参数注入失败的问题

17、【ID1010468】修复了使用order siblings by递归查询报错的问题

18、【ID1009965】修复了表字段名为level,执行start with connect by宕机的问题

19、【ID1010524】修复了重复创建的address_standardizer,报错提示信息不明确的问题

20、【ID1008828】修复了pg_dump中过滤了vb_login_info视图导致恢复时删除public模式报vb_login_info的问题

21、【ID1010538】修复了数据库SEQUENCE序列定义的最小值不正确的问题

22、【ID1010586】修复了含有as datatype的归档数据恢复,恢复后的序列开始值与恢复前的开始值不符的问题

23、【ID1010437】修复了执行pg_stop_backup('t')导致数据库宕机的问题

24、【ID1010700】修复了匿名块执行regexp_matches函数嵌套version函数发生宕机的问题

25、【ID1010721】修复了数据库升级后alter操作旧sequence导致表指针溢出的问题

26、【ID1010881】修复了执行select调用存储过程/函数时,数据库异常崩溃的问题

27、【ID1010868】修复了Vastbase G100大字段pg_toast表不会触发autovacuum的问题

28、【ID1010864】修复了审计日志中审计类型出现错误的问题

29、【ID1011464】修复了使用JDBC连接池测试,不断进行连接执行select 1语句,连接次数达到两百万多次后数据库coredump的问题

30、【ID1010037】修复了元命令\copyright 显示版本归华为公司所有的问题

31、【ID1009776】修复了to_timestamp('20000-1116', 'YYYY-MMDD') 执行失败的问题

数据库行为变更说明

变更项 升级前 升级后
mod函数 mod部分函数稳定级别不是immutable,不支持使用函数:int8mod,numeric_mod创建btree索引。 mod函数稳定级别为immutable,支持使用函数:int8mod,numeric_mod创建btree索引。
原有函数gs_encrypt、gs_decrypt、gs_encrypt_aes128、gs_decrypt_ase128对密钥检测功能的支持 gs_encrypt、gs_decrypt、gs_encrypt_aes128、gs_decrypt_ase128函数不支持密钥检测功能,gs_decrypt解密密钥错误时返回乱码。 gs_encrypt、gs_decrypt、gs_encrypt_aes128、gs_decrypt_ase128函数支持密钥检测功能,添加密钥检测的boolean类型参数,加解密时需配套使用。
authid做为字段名建表或在函数中使用 authid为保留关键字,不能作为列名来创建表。 authid为列名相关关键字,可以作为字段名创建表或在函数中使用。
group by语句 执行查询操作输出字段与group by字段一致,但group by对象为函数时校验group by字段出错。 在Oracle兼容模式下,group by对象为函数时查询操作能执行成功。
登录访问历史信息查询与共享存储rac功能 在进行登录访问历史信息记录时对数据库内部gs_clean与rac存在的内部连接未做过滤。 对gs_clean与rac存在的内部连接做过滤,完善登录访问历史信息。
track_funxtion参数对内存的影响 开启track_functions参数后内存发生泄露。 开启track_functions参数后,使用Function stat hash的内存上下文保存函数执行信息,该上下文在会话结束时释放。
substr函数
    在PostgreSQL兼容模式下:
  • substr(string,-1,5)与substring(string,-1,5)的结果不一致,且substr的结果不准确;
  • 执行substr(string, from [, count])函数,当count小于0时,没有报错。
    在PostgreSQL兼容模式下:
  • substr(string,-1,5)与substring(string,-1,5)的结果一致且结果正确;
  • 执行substr(string, from [, count])函数,当count小于0时会报错。
grant/revoke语法 在PostgreSQL兼容模式下,不支持/revoke..on..to current_user/session_user操作。 在PostgreSQL兼容模式下,支持grant/revoke..on..to current_user/session_user操作。
创建安全策略 在PostgreSQL兼容模式下,执行create policy... on table_name创建安全策略失败。 在PostgreSQL兼容模式下,执行create policy... on table_name创建安全策略成功。
全列查询和子查询功能 执行带子查询的全列查询操作失败。
例:执行select (select q from (select 1,2,3 where f1>0 union all select 4,5,6.0 where f1<=0) q) from int4_tbl 执行报错record type has not been registered
在PostgreSQL兼容模式下,执行带子查询的全列查询操作成功返回结果。
输出字符的格式转化 在PostgreSQL兼容模式下输出字符串未转化,select ‘(infinity,-infinity)'::point显示(inf,-inf)。 在PostgreSQL兼容模式下,执行select ‘(infinity,-infinity)'::point显示结果为(Infinity,-Infinity)。
current_timestamp函数 current_timestamp与now函数返回结果不一致。 PostgreSQL兼容模式下current_timestamp与now函数返回结果一致。
最小时间边界值 PostgreSQL兼容模式下时间边界值最小为-4713年11月24日。 PostgreSQL兼容模式下时间边界最小值为-4713年11月。
tsquery数据类型输出结果 tsquery数据类型输出结果与PostgreSQL不一致。 PostgreSQL兼容模式下,tsquery数据类型输出结果与PostgreSQL一致。
array_agg函数输出结果 array_agg输入参数只有anyelement,与PostgreSQL不一致。 array_agg函数有两个输入不一样的重载,一个输入参数类型为anyarray,一个是anynonarray。
xmlparse函数 PostgreSQL兼容模式下,xmlparse函数空值输入时报错。 PostgreSQL兼容模式下,xmlparse函数空值输入时不报错,显示空值。
CONNECT BY子句 递归查询包含参数时参数注入失败。
例:prepare test(text) as select T.* FROM ( select * from Tab qa where qa.year= $1 ) T START WITH T.P_ID ='001' CONNECT BY T.P_ID = PRIOR ID
递归查询包含参数时参数注入成功。
对fuzzystrmatch插件的支持 不支持fuzzystrmatch插件。 支持fuzzystrmatch插件。
create sequence as datatype语法 PostgreSQL兼容模式下,不支持create sequence as datatype语法。 PostgreSQL兼容模式下,支持create sequence as datatype语法,系统表pg_sequence新增type_id字段。
jsonb数据类型 不支持jsonb数据类型。 支持jsonb数据类型,新增jsonb相关函数、操作符等,新增json相关函数json_agg、json_each等。
jdbc执行setbytes jdbc使用setbytes写raw,binary类型失败。 jdbc使用setbytes写raw,binary类型成功。

注意事项

本次长稳测试集群通过裸数据库搭建,长稳测试环境不涉及has和dcs,本次版本发布仅限于数据库。如果需要使用has和dcs搭建集群,需要咨询开发和测试人员,否则,使用已发布has和dcs搭建集群,在业务压力较高时,可能会出现主备切换导致业务异常的风险。