VastbaseG100

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

Menu

Vastbase G100 V2.2 Build 15(Patch No.4 )

发布日期

2024年7月31日

升级方式

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

commit 标识:21728

升级须知

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

  • PG风格的自定义重载函数和存储过程,在使用\df cache lookup failed for type这个报错时,需要重新初始化,或者重新创建。

  • 若Vastbase G100 V2.2 Build15基础版本在使用initdb命令初始化数据库指定数据库兼容模式时使用了非纯大写(例如a \b \pG\ MsSql 等形式的兼容模式字符串) 则在开始升级为Vastbase G100 V2.2 Build15(patch No.4)前需要手动修改所有数据库(包括vastbase库)在PG_DATABASE系统表中的信息,将其改为纯大写字符串。如下为更新初始化指定b字符串的MySQL兼容模式库的记录示例:

    update pg_database set datcompatibility = 'B' where datcompatibility ='b'; 
    

新特性

系统表

新增系统表VB_USAGE_STATISTIC,用于存储数据库历史统计数据,该系统表每隔10分钟会定期记录系统时间和当前xid的max值。可通过vb_ctl statistic功能,查阅数据库历史使用情况。

GUC参数

  • 新增GUC参数wdr_usage_statistic_retention_days,该参数用于设置VB_USAGE_STATISTIC系统表中记录的存储时间。当参数设置为0时,表示在删除之前的数据后,不会向表中插入新的记录。

  • 新增插件控制参数

    • pg_bigm.last_update:表示pg_bigm插件的最后更新日期。
    • pg_bigm.gin_key_limit:控制pg_bigm是否在索引扫描时进行重新检查。
    • pg_bigm.enable_recheck:限制用于全文本搜索的2-gram元素的最大个数。
    • pg_bigm.similarity_limit:设置相似度阈值,相似度超过这个阈值的元组会做为相似性搜索的结果。

PL/pgSQL

插件

支持pg_bigm插件。该插件提供了全文本搜索能力,支持创建GIN索引和相似性搜索。

Oracle兼容性

  • 自定义函数中支持嵌套函数,定义的嵌套函数可在函数内部调用,详见子程序

  • 支持在package中使用自治事务,但是不能在package实例中声明,只能在package的函数或过程中声明。

  • DBMS_SQL内置包新增如下函数:

    • COLUMN_VALUE_CHAR:用于从游标接收CHAR值的变量。
    • COLUMN_VALUE_RAW:用于从游标接收RAW值的变量。
    • DEFINE_COLUMN_RAW:定义 SELECT 列表中要在游标中返回和检索的 RAW 列或表达式。
    • DEFINE_COLUMN_CHAR:定义 SELECT 列表中要在游标中返回和检索的 CHAR 列或表达式。

MySQL兼容性

支持在PREPARE FROM语法后使用变量,可通过GUC参数b_format_behavior_compat_options进行配置,当取值包含b_format_plpgsql_execute时,将EXECUTE statement中的statement为PREPARE处理过的语句,而不是将statement视作一个sqlstring模板执行动态sql。

行为变更说明

模块 变更项 变更前 变更后 注意事项
系统表 PG_PROC - 新增字段proprocoid、proexistoutparam,分别记录子程序的外层程序的oid、判断函数或存储过程是否有出参。 -
函数 sysdate函数 在非Oracle兼容模式下支持使用sysdate函数必须添加括号。 在非Oracle兼容模式下支持使用sysdate函数对括号无硬性要求。 -
sys_context函数 sys_context函数返回类型为cstring类型。 sys_context函数返回类型为varchar类型。 需调整业务中对sys_context函数返回结果的字符类型预期。
year函数 时间函数YEAR支持raw类型。 在SQL Server兼容模式下,时间函数YEAR不支持raw类型参数。 需修改SQL Server兼容模式下YEAR函数使用raw类型参数的相关业务。
对象 临时表 临时表支持使用vsql的\parallel功能进行多客户端插入;支持使用smp查询。 临时表不支持使用vsql的\parallel功能进行多客户端插入;不支持使用smp查询。 -
查询优化 连接谓词推入 rewrite_rule='predpushnormal',query_dop=1不支持谓词推入。 rewrite_rule='predpushnormal',query_dop=1支持谓词推入。 -
已经失效的索引处理 DML无法更新失效的唯一索引。 GUC参数sql_beta_feature新增选项update_unusable_unique_index_on_iud, 开启此选项后,在对表进行DML操作时,如果该表上存在失效的索引,仍然会对该失效索引进行更新,如果关闭此选项,不会对失效索引进行更新。 -
并行度计算方式 生成计划时,使用堆表页面数或索引页面数计算并行度。 新增GUC参数use_workers_per_gather 如果为true,则使用max_parallel_workers_per_gather的值做为并行度,否则使用原有逻辑。 -
GUC参数 pgxc_node_name 允许任意修改pgxc_node_name参数值。 增加参数合法性检测,不能有空格,\/:*?"< >|等非法字符。 -
SQL语法 MERGE INTO MERGE INTO A using B中,不允许A和B为同一个视图。 允许MERGE INTO A using B中A和B为同一个视图。 -
INSERT ON DUPLICATE更新主键。 所有兼容模式下支持。 仅在MySQL兼容模式下支持。 -
分区表统计信息 不支持获取分区表分区的统计信息,估算出来的行数与实际行数相差过大,导致计划选择出错 新增GUC参数enable_partition_analyze,开启enable_partition_analyze参数后,analyze分区表,将收集分区的统计信息,在pg_statistic中对应starelkind='p',starelid为分区oid。 -
number关键字不加as作为列别名 不支持number关键字不加as作为列别名。 支持number关键字不加as作为列别名 强烈建议仅在Oracle兼容模式下将number作为类型来使用,虽然目前其他模式下number也可以作为类型,但未来计划在其他模式下删除number类型。
  • 若用户需要在MySQL兼容模式下使用number类型,应当用decimal代替。
  • 若用户需要在PostgreSQL兼容模式使用number类型,应当用numeric或者decimal代替。
  • 若用户需要在SQL Server兼容模式下使用number类型,应当用numeric或者decimal代替。
  • 数据库启停 启动过程系统环境检查项 启动过程中不校验操作系统环境变量的合法性 启动过程中校验操作系统环境变量的合法性,若非法则尝试使用C语言环境,若C语言环境也无法使用则启动失败。 -
    Oracle兼容性 字符串排序 默认使用字符集对应的 default 的排序规则排序。 使用GUC参数enable_ora_text_sort控制。`enable_ora_text_sort =on `时,对于所有字符集使用default的排序规则是C;`enable_ora_text_sort = off` 时,仍然使用对应的default排序。 -
    DBMS_SQL
  • DEFINE_COLUMN函数列值的入参类型支持四种数据类型:CHAR,VARCHAR,NUMBER,DATE(oradate)。
  • COLUMN_VALUE函数列值的入参类型支持NUMBER数据类型。
  • DEFINE_COLUMN和COLUMN_VALUE函数列值支持anyelement(表示函数接受任何数据类型)。 -
    DBMS_AQADM dbms_aqadm.create_queue_table接口入参queue_load_type只识别小写。 queue_load_type参数大小写敏感。 -
    内置包在PUBLIC下的权限 部分内置包赋予过多权限给PUBLIC,部分内置包未赋予任何权限给PUBLIC。 所有内置包统一赋予PUBLIC 执行权限。 -
    MySQL兼容性 int1类型在调用输出函数时的返回结果。 查询返回值为 0 ~255。 查询返回值为 -128~127。 -
    MySQL兼容模式下时间类型使用BC结尾。 MySQL兼容模式下时间使用BC不报错。 MySQL兼容模式下时间使用BC报错。 -
    vastbase_sql_mode 无ERROR_FOR_DIVISION_BY_ZERO选项,分母为0时报错 新增ERROR_FOR_DIVISION_BY_ZERO选项,用于控制分母为0时不报错,进行告警。当ERROR_FOR_DIVISION_BY_ZERO与SQL_MODE_STRICT同时指定时,分母为0报错。 -
    SESSION_USER()语法
  • 涉及用户名的语法中不支持SESSION_USER()语法。
  • 涉及用户名的语法中支持SESSION_USER()语法,返回的是CURRENT_USER当前用户。
  • 支持SESSION_USER()语法
  • SESSION_USER/SESSION_USER()返回会话用户。
  • -
    GUC参数lower_case_column_names 控制范围 此选项不会控制alter table modify options 中的colname匹配方式。 参数等于0 时,上述语法中的colname 会按照正确的列名不敏感的匹配方式进行匹配。 此语法中的 匹配规则在关闭参数时,和select中用到列名的匹配规则一致。
    GUC参数b_format_behavior_compat_options 不支持enable_user_as_keyword选项,user无法作为列名表名使用。 支持enable_user_as_keyword选项。开启该选项前提下,user可以做列名。 受此变更影响的用法还包括:
  • alter table name disable trigger USER;
  • alter tbale name enable trigger USER;
  • {CREATE|ALTER|DROP} user MAPPING FOR USER server name [options];
  • select USER;
  • 以上用法升级前不支持,升级后,开启enable_user_as_keyword选项时支持。
    GUC参数b_format_behavior_compat_options 不支持 enable_autoinc_adaptive_maxvalue选项。导出包含自增序列的表后导入异常。 开启了enable_autoinc_adaptive_maxvalue可选项后创建的包含自增序列的表,导出后可正常导入。 导出为tar格式或者自定义格式时将无法导入到不支持这个可选项的vastbase版本中,可以导出为sql文件的形式规避这个问题。使用sql文件形式导出的表,导入后会使用默认值(int16_max)作为maxvalue创建autoinc的sequence。
    用户自定义变量 bool类型的用户自定义变量,会返回 t /f 。int类型的变量 + 0.0 的情况,返回的结果类型是float。 bool类型的用户自定义变量,会返回1/0 。int类型的变量 + 0.0 的情况,返回的结果类型是int。 -
    json_search 函数返回类型 json_search 返回类型为 text。 json_search 返回类型为 json。 -
    PostgreSQL兼容性 分区表支持索引的类型 支持PG分区表的GLOBAL索引,但实际上无法使用。 不支持PG分区表的GLOBAL索引,默认创建LOCAL索引。删除PG分区表的索引还会级联删除其分区的索引。 -
    group_concat函数 group_concat函数使用报错。 group_concat函数使用正常。
    GUC参数pg_format_behavior_compat_options 无pg_to_date_format参数选项,to_date返回timestamp类型。 增加pg_to_date_format参数选项,控制了to_date从原始的返回timestamp类型变为返回date类型,并且忽略多余的字符。 -
    to_date函数支持的格式 to_date函数转化的日期。必须保证字符完全匹配format 才能成功。 开启GUC参数standard_parsing_mode,表示必须完全匹配date format。关闭standard_parsing_mode 表示必须匹配`date format`中要匹配的内容,只要和提供的字符串符合,即可忽略剩余未匹配的字符串内容。如 to_date('2024-01-01 01:00:00+08', 'YYYY-MM-DD'); 即可忽略日期后的信息。 -

    缺陷修复

    基础元素

    【1043041】【致命】修复了由于地址未对齐导致的数据库宕机问题。

    【1045844】【严重】修复了由于获取时间返回值类型错误,导致使用hour()函数入参为timestamp类型时结果异常的问题。

    【1045790】【严重】修复了由于mediumblob类型缺少对应的opfamily操作符,导致mediumblob建立索引失败的问题。

    【1045485】【严重】由于prior关键字的信息与实际未匹配,导致vb_dump导出带有prior关键字的表时有报错的问题。

    【1045301】【严重】修复了由于未对time类型的入参进行特殊处理,导致week函数的time类型入参的结果返回错误的问题。

    【1045075】【严重】修复了由于创建并修改用户后,查找系统表pg_namespace中用户名时被转为小写,导致查看入参为pg_namespace表的命名空间失败的问题。

    【1045813】【一般】修复了由于line类型在黑名单,导致别名line放在匿名块或存储过程中执行报错的问题。

    【1045808】【一般】修复了enable_double_type参数无法通过vb_guc方式修改的问题。

    【1045749】【一般】修复了使用函数作为分区键时函数参数类型有误的问题。

    【1045416】【一般】修复了列存表中oradate类型没有过滤cu,全部命中导致耗时较长的问题。

    【1045153】【一般】修复了BLOB类型不支持排序的问题。

    【1044544】【一般】修复了bigserial字段类型的行为与serial类型不一致的问题。

    【1044275】【一般】修复了由于缺少oradate和int8的比较运算符,导致创建包含date+rownum的函数时报错operator does not exist: oradate + bigint Hint...

    【1043620】【一般】修复了由于number类型相关操作符在初始化时未正确补充到pg_depend,导致修改基表生成列字段长度时失败。

    【1042190】【一般】修复了由于 number 类型相关操作符在初始化时没有补充到 pg_depend,未能正确建立表结构的依赖关系,导致在修改基表的生成列字段长度时操作失败的问题。

    【1040758】【一般】修复了由于增加了BLOB类型,在transform阶段选择raw的length函数时,因raw与blob属于同一类别,导致由以前选择text的length函数变为了选择blob的length函数,与结果不一致的问题。

    【1037289】【一般】修复了由于数据类型datetime2->date 的隐式转换,导致datetime2类型与”-“操作符运算结果错误的问题。

    【1037023】【一般】修复了由于函数相互依赖d的问题,导致的vb_dump导出dml触发器报警告:could not resolve dependency loop among these items的问题。

    【1036911】【一般】修复了clob类型与oradate类型相互转换失败的问题。

    【1045863】【一般】修复了非Oracle兼容模式下,syadate函数使用失败的问题。

    【1042664】【提示】修复了在非SQL Server兼容模式下,使用sp_xml_preparedocument函数的报错信息中有拼写错误的问题。

    基础组件

    【1045325】【致命】修复了在内存极度不足的情况下,内存溢出后单进程报错,导致数据库宕机的问题。

    【1043746】【致命】修复了由于将uppercase_attribute_name 设置为 on 导致列名匹配失败并返回空指针,最终传入 std::string 构造函数导致数据宕机的问题。

    【1042538】【严重】修复了操作系统lscpu显示cpu(s) scaling MHZ ,vastbase无法启动的问题。

    【1042039】【严重】修复了由于在导出包体时包含了权限控制处理,但包体本身不支持 GRANT 和 REVOKE 命令,导致使用 vb_dump 导出时产生的 REVOKE 命令中多出了 BODY 部分,从而引发了语法错误的问题。

    【1045892】【一般】修复了\d+查询不到pg_proc系统视图的proprocoid字段的问题。

    【1040261】【一般】修复了使用 vb_dump 导出数据时,因缺少分号导致恢复报错的问题。

    SQL语法

    【1043554】【致命】修复了由于 strncat_s 传入的目标字符串长度少了 1 ,导致from_unixtime函数操作失败并触发断言,最终导致数据库宕机的问题。

    【1045896】【严重】修复了由于缺少双引号,大写形式的dblink无法使用的问题。

    【1045887】【严重】修复了rownum表达式放在connect by条件中结果不正确的问题。

    【1045866】【严重】修复了通过upsert给含有自增列的表插入数据时,内存持续增加的问题。

    【1045854】【严重】修复了char和etxt类型转换时走索引扫描和不走索引扫描的结果不一致的问题。

    【1045782】【严重】修复了由于缺少引号,导致schema创建错误的问题。

    【1045139】【严重】修复了带distinct的查询报错:operator 16631 is not a member of opfamily 1976的问题。

    【1038909】【严重】修复了JPA自动生成insert语句字段顺序和数据库表字段顺序不一致,插入数据报错的问题。修复后GUC参数b_format_behavior_compat_optioins增加选项mybatis_returning,用于控制MySQL兼容模式下的returning * 的行为,当设置set b_format_behavior_compat_optioins='mybatis_returning';后,返回顺序即为insert into xx(…)括号中的字段顺序,如果字段个数 < 表字段个数,剩余的字段会放在后面。

    【1044739】【严重】修复了由于select into被当做有查询结果的情况处理,导致动态sql中有select into时创建临时表语句可以执行但报错的问题。

    【1044661】【严重】修复了statement_history视图无法查看部分SQL的完整执行计划的问题。

    【1042487】【严重】修复了由于递归查询语义解析时未考虑到CONNECT BY语句中 rownum 另一侧的表达式,导致了在使用 PRIOR xxx = rownum 时出现报错的问题。

    【1044650】【严重】修复了递归查询的connect by条件中含有rownum时出错,数据库断开连接的问题。

    【1039627】【1039669】【严重】修复了由于未支持获取分区表分区的统计信息,估算出来的行数与实际行数相差过大,导致索引cost预估过低,SQL效率低的问题。

    【1044525】【严重】修复了由于当参数为空字符串时,只分配了空间,没有改size,导致创建表报错:ERROR: invalid memory alloc request size 18446744073709551612 in varlena.cpp:582的问题。

    【1043110】【严重】修复了由于 pivot for 后面带了括号,语法生成时被识别为一个 List,而后续处理中没有对应处理,导致了含 pivot 的查询报错:unrecognized node type: 656的问题。

    【1043015】【严重】修复了由于Vastbase的UserVar类型设置与MySQL不一致,导致查询语句中未识别到变量的数据类型的问题。

    【1042940】【严重】修复了由于语义分析时漏掉了nullif case等表达式,导致执行connect by 查询含函数嵌套,执行报错的问题。

    【1044649】【一般】修复了由于rownum被替换成常量 ,导致递归查询rownum<N时递归未执行,结果不正确的问题。

    【1043681】【一般】修复了Vastbase G100 V2.2 Build 15不支持ctid作为prior列的问题。

    【1043342】【一般】修复了由于递归查询语义分析阶段未忽略连接的作用列的重复,从而导致自然连接报错的问题。

    【1042997】【一般】修复了缺少create view和alter view语法的说明的问题。

    【1042488】【一般】修复了由于递归查询不支持OR语句中包含 rownum,导致了在使用CONNECT BY与 rownum 结合时,当 rownum 的取值为 0 时出现报错的问题。

    【1041082】【一般】修复了ALTER COMPILE命令帮助信息未更新的问题。

    【1040856】【一般】修复了使用connect by语句进行关键字拼接创建表时报错的问题。

    【1039968】【一般】修复了传入的表达式含有显式的字符序时,预期结果与实际不符的问题。

    【1039814】【一般】修复了tab自动补全show参数失败的问题。

    【1038577】【一般】修复了create resource label 不带add语句创建成功的问题。

    【1037270】【一般】修复了将?|解析为param,而不是成操作符?|查询报错的问题。

    【1036899】【一般】修复了由于level作为普通列名,递归查询会把level作为内置列,导致结果错误和语法错误的问题。

    【1045745】【一般】修复了由于数组越界,导致COPY数据时数据库宕机的问题。

    【1044835】【一般】修复了不支持连接谓词推入的问题。

    【1044740】【一般】修复了由于获取二级分区的oid失败,导致创建二级分区后普通用户执行vacuum报错relation不存在的问题。

    【1044651】【一般】修复了递归查询prior表达式 = rownum时,结果异常的问题。

    PL/pgSQL

    【1045573】【致命】修复了由于try catch中catch没有正确切换内存上下文,导致出现数据库宕机的问题。

    【1045520】【致命】修复了由于jobworker 线程没初始化插件需要的变量,导致数据库宕机的问题。

    【1045481】【致命】修复了打开全局缓存后执行try catch出现挂库的问题。

    【1045395】【致命】修复了由于自治事务没有初始化wml_cxt.thread_node_group,导致数据库宕机的问题。

    【1045092】【致命】修复了由于出现了内存踩踏问题,导致调用package中含自治事务匿名块出现数据库宕机的问题。

    【1043797】【致命】修复了在包中嵌套调用函数时,当函数返回集合类型,plpgsql_call_handler 错误地将函数的原子性设置为 true,导致 SPI 内存上下文被不当释放,进而使得 estate 中的数据不可用并引发后续访问错误,最终导致数据库宕机的问题。

    【1042835】【致命】修复了由于函数引用package的类型时未创建依赖包的处理,导致包删除时处理无效信息时没有删除函数的缓存,最后引起数据库宕机的问题。

    【1046108】【严重】修复了在数据库升级后,创建的FUNCTION不可用的问题。

    【1045911】【严重】修复了由于uservar转换的目标类型没有适配timestamp类型,导致存储过程内调用date_add返回结果异常的问题。

    【1045881】【严重】修复了由于判断是否为子程序逻辑中当procoid字段为空时陷入死循环,导致drop function时命令卡住超时的问题。

    【1043347】【严重】修复了由于编译时row类型参数没有展开,导致package中子类型解析错误,schema报错的问题。

    【1042872】【严重】修复了执行含raise_application_error的PL/pgSQL语句时返回结果不正确的问题。

    【1044850】【一般】修复了cursor类型作为function的参数传入时,notfound属性被改变的问题。

    【1044551】【一般】修复了当多个触发器关联一张表,drop trigger不指定表名级联删除时有报错的问题。

    【1043935】【一般】修复了由于 check_assignable 函数未对 assign_list 类型进行校验,导致包函数在非 CALL 调用时出现错误的问题。

    【1043910】【一般】修复了使用 FORALL 语句批量向表中插入数据时,表中数据插入有误的问题。

    【1042553】【一般】修复了table函数中嵌套使用SELECT语句发生语法报错的问题。

    SQL引擎

    【1045754】【致命】修复了connect by 交互出现数据库宕机的问题。

    【1042862】【致命】修复了由于出现野指针情况导致在子程序内调用窗口函数排序时,出现数据库挂库的情况。

    【1045625】【严重】修复了并发索引DDL/DML并查询执行一段时间后出现索引报错的问题。

    【1045286】【严重】修复了由于在pbe场景下用户设置指定变量操作的标记没有重置,导致在连续执行两次同样的sql,但传参不同时第二次会话卡住的问题。

    【1043558】【严重】修复了使用带自定义函数的SQL性能比Oracle慢的问题。

    【1043202】【严重】修复了update里where使用@@,长时间无法执行成功的问题。

    【1043186】【一般】修复了由于inlist to join优化与unpivot处理冲突,导致WHERE条件中IN子句超过 10 个时出现 variable not found in subplan target list报错的问题。

    【1041734】【一般】修复了在带有事务的存储过程中,内存处理不正确,导致了内存泄漏的问题。

    【1038236】【一般】修复了使用LEVEL等关键字创建视图,调用视图定义失败的问题。

    【1038235】【一般】修复了使用sys_connect_by_path 函数嵌套创建视图,调用视图定义失败的问题。

    【1037512】【一般】修复了添加注释时”checktable”和”delayed”必须加上双引号的问题。

    【1034980】【一般】修复了由于开启autosave=always时,每条SQL会新建一个子事务,在内核中每个为栈结构,子事务过多导致栈溢出宕机的问题。

    内核生态

    【1044653】【致命】修复了kylinv10sp3环境下预安装卡住的问题。

    【1044448】【致命】修复了由于全局变量缓存中间地址,等待全局变量释放时导致数据库宕机的问题。

    【1042994】【致命】修复了由于并发线程太多,导致的vb_probackup在全量备份模式下传输数据文件过程中宕机的问题。

    【1042421】【致命】修复了由于在 SPI 中执行的子事务失败并回滚时,SPI 的内存上下文被错误地删除或重置,导致了在从 Vastbase G100 2.2 Build 15.2 升级到 2.2 Build 15.3 的过程中发生 core dump,进而导致升级失败的问题。

    【1044585】【严重】修复了 vb_ctl query有报错显示的问题。

    【1044534】【严重】修复了数据库软连接不全的问题。

    【1042948】【严重】修复了使用dblink查询远端表时,自动将被查询表的schema换成了dblink的用户名的问题。

    【1042683】【严重】修复了主备集群中,备库增量build变全量build的问题。

    【1042645】【严重】修复了由于record变量的条件未下推,导致存储过程中的dblink查询执行效率低下的问题。

    【1042546】【严重】修复了由于释放内存时未释放dropStmt 内存,导致 vb_restore出现内存泄漏的问题。

    【1041969】【严重】修复了执行vb_probackup backup命令内存泄漏的问题。

    【1035537】【严重】修复了在未开启 enable_hashjoin_nestloop 参数时,因 batch 文件数组未提前扩容而导致的潜在数组越界问题。

    【1035063】【严重】修复了vb_dump使用-j参数并行导出报错的问题。

    【1044537】【一般】修复了数据默认库和默认用户不正确的问题。

    【1044526】【一般】修复了vsql查询数据库版本信息时不正确的问题。

    【1042880】【一般】修复了视图查询中过滤条件不下推的问题。

    【1037805】【一般】修复了pg_repack插件在执行repack过程中,卸载插件导致使用的session一直报错不退出的问题。

    存储引擎

    【1038299】【严重】修复了gs_probackup基于时间点恢复后,启动数据库失败的问题。

    【1040180】【一般】修复了主库预生成的xlog文件过多的问题。

    【1035627】【一般】修复了可能存在sprintf缓冲区溢出的问题。

    【1044662】【建议】修复了由于vb_restore的--remap-schema选项会进行替换schema的操作,但恢复时创建了将被替换的schema,导致报错的问题。

    安全

    【1042932】【致命】修复了创建事件触发器后,给表设置安全标签,数据库宕机的问题。

    【1037238】【1037360】【严重】修复了全密态实现中,因函数入参在适配同义词时修改了参数类型赋值逻辑,导致全密态使用函数异常的问题。

    【1045906】【一般】修复了创建数据库时不设置容量和阈值时,查询阈值不为默认值的问题。

    【1045819】【一般】修复了由于判断角色是否启用的逻辑有问题,导致查询information_schema.table_privileges 报错的问题。

    【1044425】【一般】修复了定义自定类型为表字段,强制删除自定义数据类型后,查询表数据不报错的问题。

    【1042135】【一般】修复了由于 SQL 执行成功后才调用语句序列审计接口,而 SQL 执行失败时不调用该接口,导致了创建审计策略后,执行 SQL 失败时未记录审计日志的问题。

    【1035021】【一般】修复了使用vb_ctl notify命令指定用户名和密码时提示信息不准确的问题

    【1035019】【一般】修复了vb_ctl query命令在指定用户名和密码时,当指定了不存在的用户名和密码,detail_information有误的问题。

    插件

    【1046105】【致命】修复了由于内存提前释放,导致数据库宕机的问题。

    【1045823】【致命】修复了创建postgis相关插件时address_standardizer_us挂库的问题。

    【1045622】【提示】修复了行存表创建超表时报错内容错误的问题。

    MySQL兼容性

    【1044241】【致命】修复了由于索引扫描条件中的变量值不变引起重复ExecReScan,在查询期间开启新会话时内存持续上涨的问题。

    【1043920】【致命】修复了MySQL兼容模式下,在用例执行过程中,虽然设置了 in_userset 为 true,但由于中途报错导致第二次执行时 in_userset 仍然为 true,从而在索引扫描时触发了 ExecRescan 的频繁执行,使得扫描被不断重置,最终导致执行过程陷入无限循环并且会话卡住的问题。

    【1042884】【致命】修复了由于指针使用问题,导致在匿名块中执行插入语句时,数据库宕机的问题。

    【1042876】【致命】修复了由于未对空字符设置size,导致在longtext类型转换为空字符串时报错invalid memory alloc并产生数据库宕机的问题。

    【1042842】【致命】由于未对空字符设置size,导致mediumblob插入数据hextoraw(“)时报错并产生数据库宕机的问题。

    【1040686】【致命】修复了MySQL兼容模式下,执行带@变量的查询,数据库宕机的问题。

    【1045932】【严重】修复了由于tinyint在intout函数中返回uint8范围下的结果,导致将字段类型为tinyint类型的表导出后再导入出错的问题。

    【1045834】【严重】修复了当vastbase_sql_mode为空时,升级失败报错Error: START TRANSACTION的问题。

    【1044786】【严重】修复了由于curdate函数转换为date日期时采用的是UTC时间,导致与MySQL不一致的问题。

    【1042969】【严重】修复了MySQL兼容模式下,由于未对\x做兼容,导致不同版本更新bytea类型的数据后数据显示不同的问题。

    【1042908】【严重】修复了由于转义字符需要双写,在导出时保持双写,导致还原失败的问题。

    【1042806】【严重】修复了由于uservar类型与MySQL不一致,导致数据库多次宕机的问题。

    【1042597】【严重】修复了支持select for update语句报错invalid memory alloc request size的问题。

    【1043524】【严重】修复了MySQL兼容模式下,由于类型匹配时,没有检查当前的查询模式,导致查询中使用@变量,报错类型不匹配的问题。

    【1042540】【严重】修复了MySQL兼容模式下,由于date时间解析到BC(公元前)会出现报错,导致插入不正确的时间数据会执行成功的问题。

    【1042049】【严重】修复了MySQL兼容模式下,longblob类型插入中文字符报错的问题。

    【1045884】【一般】修复了由于group_concat函数中缺少了对于别名的设置,导致在一个SQL语句中多次使用group_concat函数时列名显示未生效的问题。

    【1045878】【一般】修复了由于insert语句对values字段用作列名,多做了检查,导致values作为关键字创建存储过程失败的问题。

    【1045855】【一般】修复了创建自增序列,备份恢复后恢复库边界值错误的问题。

    【1045676】【一般】修复了date函数的结果与MySQL不一致的问题。

    【1045148】【一般】修复了查看部分数据类型边界值maxvalue不符合预期的问题。

    【1044735】【一般】修复了CREATE TABLE的语法帮助信息未更新的问题。

    【1044003】【一般】修复了由于未处理在没有处理双引号和反引号导致在创建表时指定hostname报错信息不符的问题。

    【1042783】【一般】修复了rpad函数执行结果与MySQL不一致的问题。

    【1042678】【一般】修复了由于未将cidr类型添加至列表,导致插入数据时指定数据类型为cidr时报错不支持的问题。

    【1042627】【一般】修复了第一个参数为字符串的if函数执行结果与MySQL不一致的问题。

    【1042147】【一般】修复了MySQL兼容模式下,部分collation context成员未初始化的问题。

    【1040188】【一般】修复了MySQL兼容模式下,自增序列创建为large sequence引起框架报错超出long范围的问题。

    【1039874】【一般】修复了MySQL兼容模式下,分母为0报错的问题,修复后GUC参数vastbase_sql_mode增加选项ERROR_FOR_DIVISION_BY_ZERO,用于控制分母为0时不报错。

    【1034985】【一般】修复了MySQL兼容模式下,smallserial、bigserial类型,插入null值异常的问题。

    【1033940】【一般】修复了由于Vastbase的关键字和MySQL不同,Vastbase下name属于类型,select name '别名'会被识别为类型转换用法,导致与预期被识别为别名用法不符的问题。

    【1042996】【一般】修复了MySQL兼容模式下,create table as 创建表带约束,报错”Invalid table column definition“的问题。

    【1034004】【一般】修复了MySQL兼容模式下,unhex参数为十六进制时报错的问题。

    【1042947】【一般】修复了MySQL兼容模式下,由于内部创建二级 hash 分区时获取序号的逻辑错误,导致使用 crdayofmonth() 函数作为分区键时创建 range + hash 分区表并增加分区时出现错误的问题。

    【1042175】【一般】修复了MySQL兼容模式下,clob 类型转换失败的问题。

    【1042106】【一般】修复了MySQL兼容模式下,由于 interval 加法处理错误,导致了 date 函数加上 '1 year 1 month 1 day' 时,日期并未正确更新的问题。

    【1041913】【一般】修复了MySQL兼容模式下,使用regexp_substr函数的执行结果错误的问题。

    【1042943】【一般】修复了MySQL兼容模式下,自定义user表不加双引号时无法进行增删改查操作的问题。

    【1042527】【一般】修复了MySQL兼容模式下,由于end关键字没有被声明为nonassoc,导致了当查询字段名为end时,可以无需使用双引号或者反引号来明确标识字段名的问题。

    【1041801】【一般】修复了MySQL兼容模式下,在聚合函数中使用 DISTINCT 时,排序和前后比较是否相等的过程中没有传入 collation,utf8_general_ci 比较规则未生效,从而导致在使用 utf8_general_ci 的表上执行 COUNT(DISTINCT *) 时,结果不正确的问题。

    【1043140】【一般】修复了MySQL兼容模式下,由于只允许有一个VALUE子句,导致ON DUPLICATE KEY UPDATE语法在存储过程中执行报错的问题。

    【1042517】【一般】修复了未对兼容模式进行限制,导致的INSERT ON DUPLICATE语句不允许更新主键,但MySQL兼容模式下可以更新的问题。

    【1042187】【一般】修复了MySQL兼容模式下,由于 LIKE 操作符缺少对 binary 类型的重载处理,导致在执行 LIKE 'ABC' 时被隐式转换为 BLOB LIKE VARBIT 的表达式,从而未能正确返回空结果的问题。

    Oracle兼容性

    【1036021】【致命】修复了Oracle兼容模式下,创建含blob类型的表,创建视图后,再次给表插入数据,数据库宕机的问题。

    【1042914】【致命】修复了Oracle兼容模式下,由于 Vastbase 数据库支持 argname=>argvalue 这样的传参方式,但在 dbms_sql 包里的函数和过程中没有声明参数名称,导致 argmodes 和 argnames 不对称,导致数据库执行匿名块时宕机的问题。

    【1034134】【致命】修复了打开全局缓存,执行dbms_aq用例出现宕机的问题。

    【1036800】【严重】修复了Oracle兼容模式下,由于lob类型处理逻辑的原因,导致当参数enable_oralob_type 为off时,,表上创建增量物化视图后,插入数据,刷新视图报错的问题。

    【1036792】【严重】修复了Oracle兼容模式下,由于缺少原始lob类型的to_lob函数,导致enable_oralob_type设置为off 使用旧lob时,dbms_lob.append函数入参为blob类型时,报错函数不存在的问题。

    【1034191】【严重】修复了Oracle兼容模式下,由于参数session_replication_role配置问题,导致的临时表以及表上触发器做备份恢复,恢复到新库后触发器失效的问题。

    【1039820】【一般】修复了subtype类型为已经存在的record类型,并在存储过程中作为入参,且入参模式为普通模式,匿名块调用时报错的问题。

    【1036828】【一般】修复了Oracle兼容模式下,由于返回值offset未更新,导致enable_oralob_type设置为off使用旧lob时,LOADBLOBFROMFILE函数处理jpg文件,输出src_offset一直为1的问题。

    【1035522】【一般】修复了在解析 varry_var 变量时未能正确获取 dno,从而导致子程序中类型变量位置错误,并最终引起匿名块执行时报错array is not plpgsql collect type的问题。

    【1034937】【一般】修复了Oracle兼容模式下,由于修改amount超出范围时对amount的处理,loadfromfile(clob)也做了同样的处理,导致LOADBLOBFROMFILE函数对bin文件处理时报错的问题。

    【1036526】【一般】修复了Oracle兼容模式下,由于未指定类型的NULL值,默认类型和oracle不一致,导致标量类型显示与oracle不相符的问题。

    【1042244】【一般】修复了Oracle兼容模式下,设置了nls_date_format后,没有判断其collate是否合法,导致使用内置函数systimestamp时报错的问题。

    【1042995】【一般】修复了Oracle兼容模式下,不加as使用别名报错语法错误的问题。

    【1042526】【一般】修复了Oracle兼容模式下,由于 merge into 语句处理时未正确包含所有相关表的 RTE,导致分析列引用时无法找到与视图别名 vp 相对应的 RTE,因此当视图与 merge 视图为同一个视图时,执行 merge into 语句时报错的问题。

    【1042215】【一般】修复了Oracle兼容模式下,由于函数的参数和函数的依赖关系被错误地创建到了 vb_dependencies 表中,导致了在删除并重建依赖表之后,再次创建函数时出现错误的问题。

    PostgreSQL兼容性

    【1042179】【致命】修复了由于内存越界,导致在PostgreSQL兼容性模式列存执行计划下,对常量表达式计算,提示 heap-buffer-overflow in __interceptor_strlen,数据库宕机的问题。

    【1045926】【严重】修复了由于调用了oradate的转换,导致在PostgreSQL兼容模式下为date类型插入数据时报错的问题。

    【1045266】【严重】修复了多次执行create schema if not exists AUTHORIZATION 报错的问题。

    【1044840】【严重】修复了由于分区表走了全局索引,导致创建含有only的索引后,插入重复数据时报错信息有误的问题。

    【1042520】【严重】修复了PostgreSQL兼容模式下,没有添加group_concat的语法支持,导致函数group_concat执行报错的问题。

    【1042152】【严重】修复了PostgreSQL 兼容模式下,由于创建临时序列的逻辑上限制太严格,导致当基表上含自增列,使用create table like创建临时表时报错的问题。

    【1045795】【一般】修复了通过alter table指定表中多个identity字段不报错的问题。

    【1045263】【一般】修复了由于to_date函数表现与PostgreSQL不一致的问题。

    【1045132】【一般】修复了由于date属于vb_exclude_reserved_words参数中不会生效的关键字,导致支持date函数出错的问题。

    【1044741】【一般】修复了无法命中分区的情况下直接将表的元组数置为最小值1,导致在查询计划中没有提前筛选无法命中的分区。

    【1044738】【一般】修复了由于partition的信息不存在pg_partition中,导致\d+查询分区数的结果有误的问题。

    【1037259】【一般】修复了PostgreSQL兼容模式下由于将VARBINARY作为关键字处理,导致varbinary作为入参变量时被识别成了类型的问题。

    SQL server兼容性

    【1045538】【致命】修复了在存储过程中,嵌套的catch内外均调用@@ERROR时内存溢出的问题。

    【1045535】【致命】修复了由于catch没有正确切换内存上下文,导致在存储过程中使用catch,连续两次调用后数据库断开连接的问题。

    【1045531】【致命】修复了由于catch中没有正确切换内存上下文,导致执行error_line出现数据库宕机的问题。

    【1043033】【致命】修复了SQL Server兼容模式下,执行convert函数数据库宕机的问题。

    【1039862】【严重】修复了基于唯一索引创建约束报错的问题。

    【1034196】【严重】修复了由于变量设置位置错误,导致存储函数支持@var形式的出入参,但是过程打印@var变量为空的问题。

    【1045882】【一般】 修复了由于table类型中有blob时缺少对应的hash操作符,导致创建索引失败的问题。

    【1045846】【一般】修复了在存储过程中执行动态SQL时包含多个ddl/dml/select语句时,无查询返回结果的问题。

    【1045828】【一般】修复了由于在类型转换时未给collate赋值,导致找不到collate,报错could not determine which collation to use for string comparison的问题。

    【1045810】【一般】修复了在year函数中输入二进制raw类型报错的问题。

    【1044477】【一般】修复了存储过程中使用call调用使用@var=@var报错column does not exist的问题。

    【1042525】【一般】修复了SQL Server兼容模式下,由于在 PBE(Prepare By Expression)过程中 prepare 阶段处理参数表达式时其 typmode 为 0,导致了通过 PBE 方式插入 datetime2 类型数据时精度丢失的问题。

    【1042138】【一般】修复了SQL Server兼容模式下,由于空字符串(”)被识别为长度为 1,导致了向 bit 类型插入 NULL 值时出现错误,报错信息为 “ERROR: bit string length 0 does not match type bit(1)” 的问题。

    【1042168】【一般】修复了SQL Server兼容模式下,由于在解析 += 操作符时,没有将左边的操作数与右边的操作数相加,而是直接使用了右边的操作数的结果,导致操作符与其他函数一起使用时,结果不正确的问题。

    【1042117】【一般】修复了SQL Server兼容模式下,由于语法文件中没有兼容对应的语法,导致使用“临时表名.column”格式,执行报错的问题。

    【1041510】【一般】修复了SQL Server兼容模式下,表中存在大小写敏感的同名列,查询语句指定列名报错ambiguous的问题。