VastbaseG100

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

Menu

V2.2 Build 10(Patch No.9)

发布日期

2023年06月08日

升级方式

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

commit 标识:13573

新特性

1、新增MySQL兼容性:

  • 支持使用FORCE INDEX语法,为优化器提供有关如何在查询处理期间选择索引的信息。

  • 支持通过lower_case_table_names参数来控制对象名的大小写敏感,需注意该参数仅支持在建库时指定,数据库创建成功后不支持修改。

  • 支持多表关联UPDATEDELETE语法,支持多表更新和删除。

  • 字段定义支持使用UNSIGNED属性,仅能插入正数,如遇到负数则报错。

  • 对于MySQL兼容模式下的数据类型:int,tinyint和bigint,支持int(N),tinyint(N),bigint(N)的写法。

  • 新增了对以下函数的支持:

    • SUBSTRING_INDEX:按照指定的分隔符划分字符串,返回以分隔符分割的原字符串中对应索引位的子字符串。

    • UNIX_TIMESTAMP:获取时间戳。

    • FROM_UNIXTIME:用于将数值格式的时间戳转换为字符串类型的日期时间格式。

    • DAY:用于返回某个日期是当月中的第几天。

    • DAYOFMONTH:用于返回某个日期是当月中的第几天。

    • WEEKDAY:用于获取某个日期是一周中的星期几。

    • DAYOFYEAR:用于获取某个日期是一年中的第几天。

    • WEEKOFYEAR:用于获取某个日期是一年中的第几周。

    • WEEK:用于计算某个日期所在的周数。

    • DAYOFWEEK:用于获取某个日期为星期几。

    • HOUR:用于提取并返回时间值中的小时部分。

    • ANY_VALUE:字符处理函数,用于解决查询字段不属于GROUP BY字段的问题。当SELECT的字段没有出现在GROUP BY子句中时,可使用ANY_VALUE函数让语句正常执行。

2、新增Oracle兼容性:

  • 支持LONG和LONG RAW数据类型

    • LONG:可变长的字符串数据,具有VARCHAR2的特性,最多存储1GB的字符数据。

    • LONG RAW:可变长二进制数据,最多存储1GB的二进制数据。

  • 新增以下函数:

    • TO_LOB:该函数用于将LONG或LONG RAW类型的值转换成LOB值,只能应用于LONG或者LONG RAW列。

    • TO_BLOB:该函数用于将RAW或LONG RAW类型的值转换成BLOB值。

使用限制

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

  • 在开启线程池模式时,有触发宕机风险。在生产环境中,可以通过关闭线程池模式来规避。

  • 在字符集编码为GBK环境下升级时,解压后需要将补丁包中share/postgresql/extension目录下的pg_zhtrgm--1.0--1.1.sql,pg_zhtrgm--1.1.sqlpg_zhtrgm--unpackage--1.0.sql文件中的中文注释删除,否则可能导致升级失败

缺陷修复

1、【1027633】修复了由于pg_zhtrgm插件的脚本是utf8编码且存在中文注释,导致gbk编码数据库在读取插件脚本时发生编码错误,出现了执行字符集相关操作后升级失败的情况。

2、【1027458】修复了由于主进程在stream方式下备份,连接数据库时释放了已经获取的密码,导致fork后的子进程在连接数据库时密码为空而报错提示密码错误的问题。

3、【1027457】修复了由于插件获取到的sql语句只在查询接口显示时对密码脱敏,存储时未脱敏导致了$PGDATA/global目录下pg_stat_statements.stat文件中存在明文密码信息的问题。

4、【1027370】修复了由于pg_database表中datacl字段有值,但程序采用了结构体内的取值对lower_case_table_names赋值,在用户赋予权限后,pg_database表中datacl字段值发生改变的问题。

5、【1027365】由于SQL Server兼容模式下未合入多表联合删除语法,导致在SQL Server兼容模式下执行delete操作数据库挂库的问题。

6、【1027359】修复了由于未考虑到检查当前用户是否是超级用户,导致在执行vb_ttrestore导入命令,-U指定用户为非管理员时报错提示信息不明确的问题。

7、【1027341】修复了由于高速导入导出没有正确筛选出Ustore表,导致vb_ttrestore导入数据后,查询时数据库宕机的问题。

8、【1027340】修复了动态加载过程中出现挂库的情况。

9、【1027302】修复了MySQL兼容模式下,建表时为CLOB类型字段指定COLLATE,查询带空格的值时返回结果错误的问题。

10、【1027237】修复了由于函数表别名未做敏感处理,导致报错的问题。

11、【1026963】修复了由于MySQL兼容模式下的视图名大小写敏感,但升级脚本中包含了大写视图名的语句,导致带对象数据库升级失败的情况。

12、【1026844】修复了由于栈上空间申请有问题,导致栈内存空间溢出,数据库宕机的问题。

13、【1026769】修复了由于增加longtext类型的操作符和cast时未增加raw类型cast,导致插入数据报错的问题。

14、【1026614】修复了由于启动AI进程继承端口,导致新的vastbase启动和AI进程之间端口冲突,出现报错的情况。

15、【1026597】修复了审计未记录对表的DML具体SQL信息的问题。

16、【1026548】修复了由于缺少style为NULL的语法,导致报错的问题。

17、【1025556】修复了由于反引号和!等都属于操作符,当这些操作符一起出现时,词法解析将其作为操作符串传入,导致当变量名为反引号包裹的特殊字符时,部分字符报错的问题。

18、【1025135】修复了由于对insert into xx values [数组]的处理存在问题,导致创建存储过程失败的问题。

19、【1025130】修复了部分内置函数在集合为空时未报错的问题。

20、【1024654】修复了vb_dump和vb_restore使用--no-tablespaces参数无效的问题。

21、【1026714】修复了由于fixbug升级时,readnode读取了旧版本没有的内容,导致升级失败的问题。

22、【1027298】修复了由于日志打印时错把int类型数据按照%c 输出,导致在报错信息中看不到具体type的问题。