VastbaseG100

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

Menu

版本介绍

Vastbase G100 V2.2 Build 12 Release Notes

Vastbase G100 V2.2 Build 12是Vastbase于2023年3月17日发布的先行版,新增了大量语法、函数、功能以及兼容性特性。本章将介绍新增特性概览,其他功能请参考Vastbase G100 V2.2 Build 10以及Vastbase G100 V2.2 Build 11

新特性

兼容模式 功能模块 新增特性
通用 安全性 支持无过度损失的自动恢复,即当数据库由于GUC参数无效导致进程启动失败时,数据库可以通过单用户single模式登录进入维护模式,并通过该模式修改无效的guc参数。
支持数据库启动及安装包完整性校验,对重要文件可以生成对应的MD5文件、提供MD5检验功能、提供恢复功能。
触发器 新增支持事件触发器
OEM 支持OEM标识定制,包括安装介质名称、vsql登录显示的产品标签、版本查询函数显示,也可以使用编译参数控制OEM信息和安装包OEM信息。
函数 支持IP白名单查询和更新的函数
GUC参数 新增GUC参数vb_max_dbms_locks用于限制dbms_lock的最大数量,参见锁管理
Oracle兼容性 内置包 支持内置包DBMS_SESSION的部分功能,该内置包提供了查询和设置会话相关状态的方法。
支持当包体存在初始化块时,不同包体的初始化块/包体函数进行相互调用
PL/SQL 支持PL/SQL在匿名块中使用占位符作为赋值表达式左值
函数 EMPTY_CLOB,用于构造空的LOB供后续使用流插入
支持重载包函数时检查参数名
MySQL兼容性 函数 新增支持以下函数:
  • UNIX_TIMESTAMP,获取时间戳。
  • SUBSTRING_INDEX,按照指定的分隔符划分字符串,返回以分隔符分割的原字符串中对应索引位的子字符串。
  • CONV,用于将数值从一种进制转换为另一种进制,函数返回值为目标进制字符串的形式。
  • DATE,用于提取日期或日期时间表达式的中的日期部分。
  • CURRENT_DATE,获取当前日期(不包含时分秒)。
  • FIELD,用于查找特定字符串在给出的若干个字符串序列中的位置。
  • ISNULL,用于判读输入的参数是否为null,如果输入参数为null返回true,否则返回false。
  • JSON_VALID,用于判读输入值是否为合法的JSON数据。如果输入值是合法的JSON数据则返回1,否则返回0。
  • LOCATE,用于查找子字符串在原字符串中的位置。
  • DATEDIFF,用于返回两个日期之间的天数。
  • 多表关联查询支持COUNT函数
  • PL/SQL 支持SELECT 支持@i:=expr方式赋值查询,输出查询结果并将查询结果存储到"@i"中,若查询结果有多行,则存储最后一行数据。
    SQL语法 支持使用DECLARE CONDITION语句声明一个命名的错误条件,可以为错误号或者 SOLSTATE重命名,在异常处理中可以使用声明的 CONDITION。
    支持DECLARE CONTINUE HANDLER进行异常处理。
    支持IGNORE INDEX,参见IGNORE|FORCE INDEX语法
    支持使用CHANGE COLUMN语法修改表列的名字和类型。
    类型转换 支持UUID到字符串类型的隐式转换
    SQL Server兼容性 函数 新增支持以下函数:
  • CHARINDEX,在第二个字符表达式中搜索一个字符表达式,返回第一个表达式(如果发现存在)的开始位置。
  • STR,返回数字数据转换来的字符数据,具有指定长度和十进制精度。
  • SYSDATETIME,返回计算机的日期和时间,返回值为timestamp类型。
  • COUNT_BIG,返回表中的非空记录条数,返回值为bigint类型。
  • LEN,返回字符串的字符数,不包含尾随空格。
  • DATENAME,返回指定 date 中的指定 datepart 的字符串,返回值为varchar类型。
  • DATEPART,返回指定 date中 的指定 datepart 的整数,返回值为整数类型。
  • DATEADD,在日期中添加或减去指定的时间间隔。
  • CONVERT,将表达式由一种数据类型转换为另一种数据类型,返回值为函数中指定数据类型。
  • GETDATE,返回当前数据库系统的时间戳,函数的返回值为timestamp类型。
  • ISNULL,判断表达式的值是否为NULL。当表达式值被判断为NULL时,使用指定的值替换NULL值。
  • DATEDIFF,计算两个日期之间的时间间隔。
  • 数据类型 新增支持以下数据类型:
  • VARBINARY类型,可变长度二进制字符串类型,存储的是二进制数据。
  • TABLE类型,作为表值参数,以INPUT输入形式传递到存储过程或函数中。
  • SQL_VARIANT类型,保存非用户定义类型(除特殊说明的类型)的值,并保留原类型信息。
  • NTEXT类型,可变长度,用于存储大量Unicode文本数据。
  • SMALLMONEY类型,代表货币或货币值的数据类型。
  • DATETIME2类型,结合了24小时制时间的日期,精确到小数点后6位。
  • UNIQUEIDENTIFIER类型,用于确保表的多个副本中唯一标识行。
  • 操作符 支持对字符串进行加法操作,字符串相加的操作作为字符串的连接返回,参见字符操作符
    SQL语法 支持使用TRY CATCH捕捉异常。
    支持OUTPUT语法,返回受SQL语句影响的各行中的信息。

    特性优化

    兼容模式 功能模块 新增特性
    通用 SQL语法 支持分区表表结构变更后与普通表的分区交换,参见ALTER TABLE PARTITION
    interval分区下支持创建二级分区,详见CREATE TABLE SUBPARTITION
    支持创建数据库时自定义指定模板,参见CREATE DATABASE
    审计日志 支持当审计日志空间满后审计日志自动转存备份的功能。
    支持对审计日志加密存储
    支持审计使用光电安辰密码卡实现密码卡的密钥管理和加密运算并产生审计数据,详情参见审计密钥管理和加密运算
    备份工具 支持vb_dump导出SQL文本格式生成insert语句时使用子命令--table condition指定导出条件。
    外部数据封装器 支持POSTGRES_FDW功能连接PostgreSQL 11数据库。
    Oracle兼容性 内置包 DBMS_LOB功能增强,新增支持的常量、函数、存储过程。
    DBMS_UTILITY包新增支持ANALYZE_SCHEMA工具。
    SQL语法 创建视图时支持with read only功能,详情参考CREATE VIEW创建只读视图
    支持保存和查看创建视图时的注释信息
    编译控制选项pragma serially_reusable,可以将package设定为连续可复用包,此选项可以使得对应package分配的内存在调用后被释放,复用package时包内变量都被初始化为其默认值,参见CREATE PACKAGECREATE PACKAGE BODY
    在创建type时,支持对成员函数进行重写,参见CREATE TYPE
    支持在CREATE TRIGGER的语句中包含触发器执行的PL/SQL块。
    外部数据封装器 DBLINK支持package同义词访问Oracle包中的函数。
    MySQL兼容性 SQL语法 支持子查询识别上层查询字段别名
    支持使用UNION [ALL]语句将两个或多个查询结果合并,并通过ORDER BY子句排序,参见支持在UNION [ALL] 语句中使用ORDER BY 子句
    支持多表关联时关联的同名字段不需要指定表名
    支持INNER JOIN连接条件使用WHERE子句。
    BEGIN...END代码块的label标签可以通过":"的形式设置。详情参见支持LABEL:[DECLARE]BEGIN
    支持用户使用delimiter定义分隔符。在创建触发器SQL末尾可以不使用固定的结尾,整个触发器的语法以delimiter定义的结束符作为结束,参见CREATE TRIGGER
    异常处理,完善DECLARE EXIT HANDLER语句。
    CREATE TABLE AS支持定义表字段属性。
    支持在初始化实例或创建数据库时,通过参数pad_attribute控制字符串等值查询时是否忽略空格匹配,参见vb_initdbCREATE DATABASE
    支持多表关联UPDATEDELETE语法。
    支持在INSERT语句中使用IGNORE选项。
    CREATE TABLE语法增强,支持在建表时指定表级校对规则、存储引擎、字符集以及表的注释。
    支持无关联条件的JOIN,返回结果为笛卡尔积的形式。
    支持INSERT INTO语法使用value插入数据,参见INSERT INTO...VALUE
    操作符 支持使用“+”运算符时,若左值为“0”且右值为任意带数字的字符串(charnum),则" 0 + charnum"将得到与原字符串charnum中相同精度的浮点数或者整数,参见+运算符精度处理

    新增以下操作系统及CPU平台适配

    CPU型号 操作系统 操作系统版本号
    飞腾s2500 Kylin V10专用版操作系统
    FusionOS 22
    UOS V20(1050a)
    V20(1050e)
    飞腾s2000 UOS V20(1020d)
    龙芯 UOS V20(1050a)
    海光 UOS V20(1050e)