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函数 |
|
|
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搭建集群,在业务压力较高时,可能会出现主备切换导致业务异常的风险。