VastbaseG100

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

Menu

Vastbase G100 V2.2 Build 10(Patch No.17)

发布日期

2024年7月2日

升级方式

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

commit 标识:【21029】

新特性

系统表

  • 支持统计字段值超过1024 bytes的列信息并记录在PG_STATISTIC系统表中。

  • 支持统计语句执行计划的绑定信息并记录在PG_SQLBIND系统表中。

  • 支持统计语句执行计划的相关信息并记录在PG_SQLPLAN系统表中。

函数

备份恢复

vb_probackup支持流式备份能力:支持通过标准输入输出进行备份或恢复。

插件

新增支持pg_prewarm插件,允许管理员手动预加载指定的表或索引数据到数据库的共享缓冲区(shared buffers),这个过程也被称为“预热”。预热后,查询可直接从内存中访问数据,有效提高数据库重启后首次查询时的性能。目前Vastbase仅实现对pg_prewarm的语法兼容,无法保证预热后对查询性能存在提升效果。

执行计划

支持将SQL语句的query_id与执行计划的plan_id绑定,通过绑定的执行计划执行语句。

GUC参数

  • 新增GUC参数enable_je_enhanced,用于控制是否启用JOIN ELIMINATION子表消除功能。

  • 新增GUC参数enable_ora_group参数控制group by后接的常量和NULL是否被忽略。

  • 新增GUC参数new_sort,用于控制是否开启自适应排序

  • 新增GUC参数new_sort_msdradix_size_threshold,用于在开启自适应排序的情况下,当排序的位宽超过该参数设置的值时,使用 MsdRadixSort 排序算法;反之使用 LsdRadixSort 排序算法。

  • 新增GUC参数new_sort_store_strxfrm_var,用于在开启自适应排序的情况下,对于 TEXT、BPCHAR、VARCHAR 类型,在 collate 不为 “C” 时是否保存 strxfrm() 后的字符串,以提高字符串比较的性能。开启后可以提升字符串比较与排序性能,但会占用更大的工作内存。

  • 新增GUC参数new_sort_string_prefix_length,用于设置在开启自适应排序的情况下,TEXT、BPCHAR、VARCHAR 类型放入排序空间的数据长度。

  • 新增GUC参数b_compatibility_user_host_ignore进行控制创建用户的写法。

  • 新增GUC参数enable_generated_column_prune控制分区键是虚拟列时,是否允许查询时进行分区剪枝。

MySQL兼容性

  • 支持在CREATE TABLE时增加对列的注释,可在\d+查看表结构时查看列注释。

  • 支持在CREATE TABLE的主键时指定USING BTREE。

    建表时指定USING BTREE仅为语法兼容,不实现其功能,当USING后跟BTREE以外的选项时将报错。

  • 支持在CREATE TABLE时指定ENGINE。

    建表时指定ENGINE仅为语法兼容,不实现其功能。

  • 支持在ALTER TABLE时使用MODIFY子句修改表的已有字段时定义列的注释,修改后可通过\d+查看。

  • 支持使用ALTER TABLE时修改字段的COLLATE时,若指定的排序规则不存在,则设置为DEFAULT。

  • 支持使用RETURNS CHARSET和RETURN()语法创建函数,详见CREATE FUNCTION

  • 支持创建user@host'user'@'host'之类的用户。通过GUC参数b_compatibility_user_host_ignore进行控制。

PostgreSQL兼容性

  • 支持通过CREATE TABLE为表中字段指定IDENTITY属性,或通过ALTER TABLE的ALTER COLUMN子句为字段指定IDENTITY属性。

  • 支持临时表/全局临时表的ON COMMIT DROP语法。

Oracle兼容性

  • 内置包

    • 内置包子程序DBMS_LOB.READ的读取类型支持BLOB/CLOB。

    • 内置包子程序DBMS_SQL.DEFINE_COLUMN的列值入参类型支持CLOB,BLOB。

    • 内置包子程序DBMS_SQL.COLUMN_VALUE的列值入参类型支持CHAR,RAW,CLOB,BLOB数据类型,其中CHAR,RAW类型的值需要调用特定的DBMS_SQL.COLUMN_VALUE_CHAR和DBMS_SQL.COLUMN_VALUE_RAW函数变体。

  • SQL语法

  • 函数

    支持使用PG_GET_VIEWDEF函数保存和查看创建视图时的注释信息。

  • 系统视图

    动态性能视图V$SESSION新增saddr、audsid、osuser和machine字段。

  • PL/SQL

    支持在PL/pgSQL的异常处理中使用invalid_number、dup_val_on_index错误码

特性优化

SQL语法

  • 在查询语句中,支持对左外连接进行优化,消除不需要的右表,提升查询效率。详见JOIN ELIMINATION

  • 支持在特定场景下消除不影响最终查询结果的ORDER BY子句,从而增强优化器的能力,提高执行效率。详见ORDER BY ELIMINATION

  • 支持在查询语句中使用FOR UPDATE OF语法,仅做语法兼容,支持后跟列名,形如table_name.column_name的写法,但不支持schema.table_name、schema.table_name.column_name。

  • 支持通过以下策略改善启用wdr后产生的快照占用空间大的问题:

    • 用于控制后台线程Snapshot自动对数据库监控数据执行快照操作时间间隔的参数wdr_snapshot_interval,其最大值从60min提升为720min。适当提高此参数值可以降低采样频率。

    • 设置参数wdr_snapshot_auto_vacuum_full为on后,wdr相关统计表中的死亡元组会在原有每次的清理操作之后被清除。

SQL引擎

  • ROWNUM查询性能优化,原始ROWNUM查询在执行时会整表扫描,然后再判断ROWNUM的条件,执行效率较低,对于特定场景优化为LIMIT节点可以提前结束执行,以提高执行效率。

  • 支持自适应排序,能够将不同数据类型的数据进行解析,并根据实际情况选择合适的排序算法。

升级须知

  • 使用PL/Python实现自定义过程语言时,禁止使用plpy模块。
  • 通过VPatch补丁升级前必须设置参数plsql_show_all_error为off。

行为变更说明

模块 变更项 变更前 变更后 注意事项
存储引擎 enable_wdr_snapshot开启时的功能。 enable_wdr_snapshot开启时,没有记录数据使用的统计情况。 enable_wdr_snapshot开启时,记录数据库使用的统计情况。此项目含义为,开启此参数时,会产生额外的记录。 新增系统表vb_usage_statistic,用于采集记录数据库使用情况,包括采集时间戳和采集时事务号,增加系统函数用来查询vb_usage_statitic的统计情况。
函数 upperlower的参数为char类型,显示结果变更。 char类型末尾的空格会被丢掉。由于lower \ upper (char) 函数的返回值在历史版本处理为text类型,所以会丢弃掉字符的末尾空白。 char类型末尾的空格会保留。 需调整upper和lower函数入参为char时的结果预期。
SQL语法 ALTER SYSTEM KILL SESSION结束会话语法格式。 ALTER SYSTEM KILL SESSION 'session_sid, serial' [ IMMEDIATE ]; ALTER SYSTEM KILL SESSION 'thread_id, session_id' [ IMMEDIATE ];
删除了原始根据session 顺序进行kill 的语法,因为会有顺序不对应的情况出现,增加了使用thread_id 的kill方式。
需修改结束会话相关语法。
EXPLAIN输出 不支持绑定计划输出。 支持在使用绑定计划时,输出该计划使用了绑定计划的内容,如:[SQLBIND] This SQL is using bind plan, bindname:xxx 由于新增了计划绑定功能,现在可能会看到[SQLBIND] This SQL is using bind plan, bindname这种格式的计划,这是合理的表现,因为需要通知计划层和调用explain 的用户,使用的是绑定的计划。
WHERE CURRENT OF 连续更新同一条记录时,第二次会找不到对应记录 可以连续更新同一记录 原始连续更新同一条游标记录时,会产生报错,是一个不合理的表现。新版本上进行了兼容处理。
分区表查询过滤条件带分区键且所有分区都被过滤掉的情况下的执行计划。 有索引会走索引扫描,否则走顺序扫描。 一定会走顺序扫描。 当分区键可以过滤所有的分区时,根据现有计划层的代价计算方式,使用索引扫描无法命中的分区的启动代价会高于顺序扫描,优化器选择了代价更高的路径,这是一个不合理的表现。所以对于符合此场景没有任何实际扫描工作的计划,固定使用顺序扫描。
安全 透明加密 透明加密不支持软件加密。 透明加密支持软件加密,建表语句支持with(enable_tde=on,encrypt_algo=xxx)来开启软件透明加密。 之前版本透明加密未生效。
GUC参数 b_format_behavior_compat_options 不支持选项b_format_escape。 新增选项b_format_escape,用来控制逃逸字符在MySQL兼容模式中的表现:
  • 开启该选项时,逃逸字符为反斜线时需要双写,与MySQL表现保持一致。
  • 关闭该选项时,表示使用standard conforming_strings控制逃逸字符,与历史版本一致,参数设置为on时,逃逸字符为反斜线不用双写,参数设置为off时,在文串常量中写的任何反斜线都需要被双写。
  • 使用中间件连接,例如mybatis 等中间件,根据我们的连接串特点认为vastbase属于pg数据库。因此对转义符的处理按照pg方式处理,这导致了B模式下对MySQL的逃逸字符支持功能和中间件处理产生冲入,因此引入了兼容的处理方式。
    参数sql_beta_feature的取值。 参数sql_beta_feature不支持选项subquery_rownumber_eq_sel。 参数sql_beta_feature 新增选项subquery_rownumber_eq_sel,表示子查询以row_number列作为过滤条件时,按数据分布估算结果集行数。 -
    Oracle兼容性 字符常量间比较。 字符常量末尾空格参与比较。 字符常量末尾空格不参与比较。 常量字符如 vsql中使用'aA'= 'aa'时,因为现有的类型系统中,我们会将此种为明确类型的字符常量做为text进行比较,这种比较方式跟oracle的处理逻辑不同,会带有末尾的空格进行比较。因此为了兼容oracle 的行为,目前版本中的vastbase认为,常量字符类型的比较,末尾空格是可忽略的。
    DBMS_SQL内置包 DEFINE_COLUMN函数,在未找到对应游标时的处理 未报错直接返回 报错提示 cursor not found,未找到游标时认为不需要做任何处理转为报错。 需调整错误结果预期。
    UTL_RAW内置包函数 可以不带包名,直接使用包内函数 cast_to_raw等归属于utl_raw包的包函数,必须使用utl_raw.cast_to_raw 带包名的方式调用。 需检查使用UTL_RAW内置包函数的语句是否带有包名。
    text/longtext到jsonb类型的转换 text/longtext到jsonb做隐式转换 text/longtext到jsonb进行赋值 历史版本中,将text -> jsonb做成了隐式转化,这个不合理的原因在于,不是所有text类型的字符串,都能满足jsonb的解析规则,就导致了某些场景下,把text类型的数据按照向jsonb的类型进行转化后处理。
    实际上,这个转化应该被定义为赋值转化,也就是说当明确的讲一个text类型的内容赋值到明确的jsonb类型的字段等结构中时,再执行转化操作,这才明确符合转化的场景。
    MySQL兼容性 MySQL兼容模式下查询视图时的权限检查。 MySQL兼容模式下,查询视图时不检查用户对模式的权限。 MySQL兼容模式下,查询视图时检查用户对模式的权限。目前权限系统仍然沿用原始鉴权逻辑,虽然MySQL不会有这种鉴权,但是基于功能一致性,应该保留这种鉴权机制。 需检查用户查询视图场景下,用户是否具有对模式的权限。
    参数vastbase_sql_mode的取值。 没有error_for_division_by_zero选项 新增error_for_division_by_zero选项,用于控制MySQL兼容模式下除以0时是否提示Warning信息 -
    MySQL兼容模式下,convertcast函数支持的数据类型扩充。 不支持cast、convert函数将源类型转换为SIGNED/UNSIGNED INTEGER。 支持cast、convert函数将源类型转换为SIGNED/UNSIGNED INTEGER,例如convert (123 as signed integer/signed int/unsigned integer/unsigned int)。 -
    curdate函数返回结果 curdate函数转换为date日期采用的是UTC时间获取日期。 curdate函数采用当前数据库设置的时区信息获取日期 -
    涉及用户名的语法中支持SESSION_USER()语法。 不支持SESSION_USER()语法,SESSION_USER返回的是CURRENT_USER当前用户。 支持SESSION_USER()语法,SESSION_USER/SESSION_USER()返回会话用户。 -
    PostgreSQL兼容性 PostgreSQL兼容模式下rownum关键字。 rownum是关键字,不能作为列的别名。 rownum不会被作为一个伪列来处理,可以作为列的别名。 -
    PG分区表支持的索引类型。 支持PG分区表的GLOBAL索引,但实际上无法使用。 不支持PG分区表的GLOBAL索引,默认创建LOCAL索引。 PG默认不支持GLOBAL索引,历史版本支持属于沿用了Vastbase历史的分区表索引机制。但是GLOBAL索引本质上并不适合用于pg分区表中。且还会带来隐藏的问题,因此在新版本中默认创建的索引变为LOCAL索引,且历史若使用了GLOBAL索引,建议重建为LOCAL索引避免问题。
    使用PG分区表语法创建的分区用\d查询分区数显示情况。 Number of partitions显示恒为1。 用户创建的对应的分区表的一级分区个数 -

    缺陷修复

    安装升级

    【1044511】【严重】 修复了开启enable_show_any_tuples的前提下,使用VPatch工具进行数据库补丁版本升级失败的问题。

    【1044483】【严重】 修复了开启参数enable_separation_of_duty的前提下,使用VPatch工具进行数据库补丁版本升级失败的问题。

    【1040150】【一般】 修复了通过VPatch进行补丁升级至PSU15后,显示的版本信息有误的问题。

    【1032567】【一般】 修复了在飞腾S2500 UOS V20 1050e系统中,使用VPatch工具升级数据库补丁版本时,由于升级脚本编写问题导致的升级失败。

    对象

    【1043136】【致命】 修复了使用ALTER TABLE MERGE PARTITIONS INTO … 语法合并system分区导致数据库宕机的问题。

    【1043740】【严重】 修复了behavior_compat_options设为proc_outparam_override时,调用pg_catalog.get_usage_statistic_by_day时报错函数不存在的问题。

    【1042111】【严重】 修复了开启standard_conforming_strings时,逃逸字符反斜线不双写无法正常返回结果的问题。

    【1024161】【一般】 修复了在除Oracle兼容模式以外的其它兼容模式下使用DBMS_SQL时报错信息不合理的问题。

    【1044469】【一般】 修复了在除MySQL以外的其它兼容模式下设置enable_multi_charset的值为“collation_connection”时,报错信息不合理的问题。

    存储引擎

    【1043871】【一般】 修复了开启enable_wdr_snapshot参数后数据库不生成快照的问题。

    【1023359】【一般】 修复了WDR Snapshot会话无法清除的问题。

    【1044802】【严重】 修复了TRUNCATE表后,表文件被置为deleted状态,未释放磁盘空间的问题。

    SQL引擎

    【1044058】【致命】 修复了查询numeric/number/float4/float8/real /char /varchar/charn/nchar/clob/text/name/date/time/timestamp/smalldatetime/interval/interval day to second/reltime数据类型时使用adaptive sort,数据库宕机的问题。

    【1041850】【致命】 修复了在列存表中执行含有PIVOT和UNPIVOT的用例时引发数据库宕机的问题。

    【1043739】【严重】 修复了同时执行修改索引字段数据类型和重建索引时,一段时间后报错“could not find pg_classs tuple for index xxxx”的问题。

    【1042455】【严重】 修复了开启SMP时执行CTE查询,对大表进行复杂查询的性能过低的问题。

    【1042281】【严重】 修复了SQL在存储过程中执行用时比vsql中单独执行的用时长很多的问题。

    【1035007】【严重】 修复了视图内标量子查询引用存储过程性能低下的问题。

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

    【1042707】【一般】 修复了同一存储过程重复执行,耗时逐渐增加的问题。

    【1039460】【一般】 修复了子查询成本评估不准导致SQL执行效率低下的问题。

    【1043125】【提示】 修复了子程序内调用窗口函数进行排序时引发数据库宕机的问题。

    【1038527】【提示】 修复了表中含有大字段时,表膨胀查询结果不正确的问题。

    函数

    【1044719】【严重】 修复了UPPER函数中使用CHAR类型数据,使用LENGTH函数获取的字符长度有误的问题。

    【1044550】【一般】 修复了使用substring函数进行字符串截取时报错“negative substring length not allowed”的问题。

    【1043457】【一般】 修复了PostgreSQL、SQL Server兼容模式下调用pg_get_viewdef函数报错的问题。

    SQL语法

    【1044284】【严重】 修复了获取快照后释放内存,truncate snapshot.snapshot执行耗时过长的问题。

    【1044214】【严重】 修复了自治事务触发器不支持truncate触发的前提下,进行truncate操作卡住,而非合理报错的问题。

    【1041699】【严重】 修复了处理二进制格式数据时运行日志中报错提示“ERROR: incorrect binary data format”的问题。

    【1040142】【严重】 修复了视图定义中包含order siblings by语法时,查询和删除视图时均报错“ERROR: parseNodeString(): badly formatted node string “SORTBY”的问题。

    【1044715】【一般】 修复了对分区表进行查询时,优化器生成的查询计划没有提前进行分区剪枝,导致采用了代价更高的查询计划的问题。

    【1044416】【一般】 修复了在除MSSQL以外的其它兼容模式下使用sysdatetime函数时,报错信息中存在拼写错误的问题。

    安全

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

    【1044424】【一般】 修复了利用自定义数据类型作为表的字段类型后,强制删除定义的数据类型,对表查询的结果与预期不符的问题。

    【1043909】【一般】 修复了使用密态数据库时(偶现)产生core文件的问题。

    【1042965】【一般】 修复了创建事件触发器后,删除敏感标记报错的问题。

    【1040292】【一般】 修复了使用普通用户执行analyze verify时报错信息不合理的问题。

    PL/pgSQL

    【1042988】【一般】 修复了开启vbplsql_check进行语义检查后,创建含伪类型inout参数的存储过程失败的问题。

    【1042212】【一般】 修复了执行PL/pgSQL表达式时,由于代码在判断表达式对应的计划时存在问题造成空指针异常,引发数据库宕机的问题。

    【1027490】【一般】 修复了执行PL/pgSQL表达式时,由于判断表达式对应的计划是否有效的过程引发了空指针异常,导致数据库宕机的问题。

    备份恢复

    【1044435】【严重】 修复了使用vb_probackup进行的备份操作发生Segmentation fault失败的问题。

    【1044251】【严重】 修复了使用vb_dump导出带有prior关键字的表报错的问题。

    【1043026】【严重】 修复了使用vb_dump进行加密备份时导出效率过低的问题。

    【1043020】【严重】 修复了vb_dump导出包体时,原REVOKE ALL ON PACKAGE语句变为REVOKE ALL ON PACKAGE BODY导致导出失败的问题。

    【1041494】【严重】 修复了通过vb_dump导入CREATE DOMAIN自定义类型字段的数据时将空字符串当成NULL的问题。

    【1040373】【严重】 修复了使用vb_dumpall导出时指定--with-salt参数时,导出报错的问题。

    插件

    【1042334】【严重】 修复了GBK字符集数据库中创建postgis插件时报错的问题。

    基础软件

    【1039517】【严重】 修复了使用V2.2 Build 15单机实例长稳运行过程中,备库回放不推进的问题。

    集群

    【1044860】【严重】 修复了多个索引作用在同一张表的前提下,修改用户密码的操作导致数据库实例频繁core dump,导致主备频繁切换的问题。

    【1043047】【建议】 修复了集群运行状态下,basebackup父进程退出后,接受xlog的子进程未退出,数据库安装目录变成文件导致数据库无法启动的问题。

    驱动

    【1043861】【严重】 修复了JDBC连接MySQL兼容模式数据库时,执行带反引号的SQL报错的问题。

    数据库工具

    【1041955】【严重】 修复了数据库中存在大量表名前缀相同的表时,输入表名时使用TAB键进行SQL补全,检测到内存泄露的问题。

    【1042011】【一般】 修复了MySQL兼容模式下通过vb_guc工具设置参数vastbase_sql_mode的值失败的问题。

    Oracle兼容性

    【1041156】【致命】 修复了Oracle兼容模式下,递归查询语法中使用右外连接,关键字在START WITH处,数据库卡住的问题。

    【1043141】【致命】 修复了Oracle兼容模式下,在匿名块中使用argname=>argvalue的传参方式调用函数或过程时,调用匿名块后数据库宕机的问题。

    【1043800】【致命】 修复了Oracle兼容模式下调用PACKAGE中的嵌套程序时引发数据库宕机的问题。

    【1044575】【严重】 修复了查看DBA_TAB_COLUMNS视图,data_length字段获取nvarchar2和bpchar类型的字段长度时结果错误的问题。

    【1043045】【严重】 修复了Oracle兼容模式下,嵌套函数出现在START WITH…CONNECT BY…递归查询语句中时,执行报错的问题。

    【1042939】【严重】 修复了Oracle兼容模式下,设置参数behavior_compat_options为allow_procedure_compile_check时,使用语法for item in cursor循环游标失败的问题。

    【1043912】【严重】 修复了Oracle兼容模式下使用DBMS_SQL.COLUMN_VALUE(numeric,interger,blob)时类型解析失误报错的问题。

    【1043325】【严重】 修复了Oracle兼容模式下,PACKAGE中子类型解析错误,导致出现“schema xxx does not exist”报错的问题。

    【1042925】【严重】 修复了Oracle兼容模式下,包体重建后视图依赖包中函数导致视图失效的问题。

    【1042827】【严重】 修复了Oracle兼容模式下,递归查询START WITH…CONNECT BY…子句中包含PRIOR colname=rownum表达式时语义解析错误,报错“START WITH CONNECT BY clauses must have at least one prior key”的问题。

    【1041929】【严重】 修复了Oracle兼容模式下,在START WITH…CONNECT BY…递归查询语句中使用connect_by_root选项进行列拼接时结果异常的问题。

    【1041524】【严重】 修复了Oracle兼容模式下调用DBMS_LOB对LOB类型数据进行处理时报错“dbms.lob_og.cpp : 120 : The destination buffer or format is a NUlL pointer or the invalid parameter handle is invoked.”的问题。

    【1041287】【严重】 修复了Oracle兼容模式下触发器中调用包变量,返回结果与预期不符的问题。

    【1041263】【严重】 修复了Oracle兼容模式下,递归查询语法START WITH…CONNECT BY…与ROWNUM<2结合使用时,返回结果与Oracle不一致的问题。

    【1041235】【严重】 修复了Oracle兼容模式下,递归查询语法START WITH…CONNECT BY…中使用多表相互外连接嵌套,查询结果与Oracle不一致的问题。

    【1041025】【严重】 修复了Oracle兼容模式下进行复合类型的INSERT扩展时,未考虑大小写敏感的情况,导致调用过程时报错的问题。

    【1040859】【严重】 修复了Oracle兼容模式下CONNECT BY递归查询使用START WITH时,等价SQL查询出现结果不一致的问题。

    【1040282】【严重】 修复了Oracle兼容模式下调用SUBSTR函数时报错“ERROR: invalid hexadecimal digit的问题。

    【1044716】【一般】 修复了Oracle兼容模式下,使用“=”进行字符常量的等值比较时返回的结果与Oracle不一致的问题。

    【1043993】【一般】 修复了Oracle兼容模式下调用DBMS_SQL.define_column,参数游标ID输入不合理时未报错的问题。

    【1043153】【一般】 修复了Oracle兼容模式下,游标结合UPDATE WHERE CURRENT OF使用,更新结果同Oracle不一致的问题。

    【1042826】【一般】 修复了Oracle兼容模式下,递归查询START WITH…CONNECT BY…不支持OR的子表达式中含有rownum的问题。

    【1042818】【一般】 修复了Oracel兼容模式下,递归查询START WITH…CONNECT BY…不支持prior rowid功能的问题。

    【1042544】【一般】 修复了Oracle兼容模式下,参数behavior_compat_options取值为“char_coerce_compat”时,递归查询START WITH…CONNECT BY…内包含bpchar时查询结果错误的问题。

    【1042502】【一般】 修复了Oracle兼容模式下,执行“CREATE RESOURCE LABEL name;”成功,即缺少ADD子句时创建资源标签成功的问题。

    【1042354】【一般】 修复了Oracle兼容模式下,未支持SELECT … WHERE colname IN NULL用法的问题。

    【1041890】【一般】 修复了Oracle兼容模式下,使用dbms_output.put_line直接输出数组元素值时报错的问题。

    【1040960】【一般】 修复了Oracle兼容模式下,PREPARE语句中WHERE条件IN后面绑定变量不加括号时报语法错误的问题。

    【1040954】【一般】 修复了Oracle兼容模式下,PREPARE语句中WHERE条件IN后不加括号,IN后接运算表达式,计算结果有误的问题。

    【1040854】【一般】 修复了Oracle兼容模式下CONNECT BY递归查询的表中含有特殊字符时报错“node value is not in path”的问题。

    【1040852】【一般】 修复了Oracle兼容模式下CONNECT BY递归查询,在WHERE条件处使用OR与字符串拼接时发生语义解析错误的问题。

    【1040848】【一般】 修复了Oracle兼容模式下CONNECT BY递归查询后接INSTR进行类型转换时报错的问题。

    【1040844】【一般】 修复了Oracle兼容模式下,创建含有CONNECT BY递归查询的视图后,查看视图定义失败的问题。

    【1040838】【一般】 修复了Oracle兼容模式下,递归查询中在connect_by_root后进行列拼接,查询结果中包含NULL的问题。

    【1040837】【一般】 修复了Oracle兼容模式下,CONNECT BY递归查询语法在START WITH后跟level,查询结果异常的问题。

    【1040827】【一般】 修复了Oracle兼容模式下,CONNECT BY递归查询语法,在WHERE过滤条件中出现START WITH rownum…时,查询结果不合理的问题。

    【1040621】【一般】 修复了Oracle兼容模式下自定义嵌套表类型时,匿名块中使用类型方法DELETE,返回结果与Oracle不一致的问题。

    【1039405】【一般】 修复了进行“to_char - to_char”的运算时,由于缺少类型完全符合的运算符,导致数值相减的计算过程报错的问题。

    【1035049】【一般】 修复了Oracle兼容模式下,设置参数behavior_compat_options值为'proc_outparam_override'时,本地跨库查询时报错“ERROR: insufficient data left in message”的问题。

    【1033511】【一般】 修复了Oracle兼容模式下,系统视图user_tab_columns只记录表信息而不记录视图信息的问题。

    【1032515】【一般】 修复了Oracle兼容模式下,CREATE FUNCTION创建的函数中包含“oradate+rownum”时,报错operator does not exist的问题。

    MySQL兼容性

    【1044562】【严重】 修复了MySQL兼容模式下使用IFNULL函数,第一、二个入参分别分别使用INT、CHAR类型,函数返回结果错误的问题。

    【1044529】【严重】 修复了MySQL兼容模式下存储过程中传入@变量调用DATE_ADD函数,返回结果错误的问题。

    【1043526】【严重】 修复了MySQL兼容模式下执行带@变量的查询时,同一会话中首次查询结果正确,再次执行相同查询时结果有误的问题。

    【1043501】【严重】 修复了MySQL兼容模式下创建视图时指定SQL SECURITY INVOKER属性,查询视图时没有检查调用者是否有权限访问视图的基表,导致无权限的用户查询成功的问题。

    【1042928】【严重】 修复了MySQL兼容模式下,使用形如“nsert into … values(1,1), (2,2),…”的语句批量插入多条数据时,报错提示“different character set data is not allowed when parameter in current version G100”的问题。

    【1041771】【严重】 修复了MySQL兼容模式下,使用ALTER TABLE DISABLE禁用主键约束后,重新ENABLE主键约束时报错的问题。

    【1041737】【严重】 修复了MySQL兼容模式下调用DATE函数返回结果有误的问题。

    【1041632】【严重】 修复了MySQL兼容模式下执行带@变量的查询语句时报错的问题。

    【1041141】【严重】 修复了MySQL兼容模式下,upper、lower函数没有适配B风格的charset语法的问题。

    【1040948】【严重】 修复了结合存储过程多次执行PREPARE FROM,每次调用入参不同,无法更新返回结果的问题。

    【1040880】【严重】 修复了MySQL兼容模式下使用PREPARE为语句命名后,对表结构进行DDL后无法再次使用该PREPARE的问题。

    【1039199】【严重】 修复了MySQL兼容模式下执行SELECT … FOR UPDATE语句时报错“invalid memory alloc request size”的问题。

    【1044657】【严重】 修复了MySQL兼容模式下curdate函数与now函数返回结果不一致的问题。

    【1044515】【一般】 修复了MySQL兼容模式下,使用超级用户创建视图,使用普通用户调用成功的问题。

    【1044434】【一般】 修复了MySQL兼容模式下使用week函数时无法将形如'10:10:10'的格式解析为date,导致查询结果与预期不符的问题。

    【1044431】【一般】 修复了MySQL兼容模式下使用day、dayofmonth函数时无法将形如'10:10:10'的格式解析为date,导致查询结果与预期不符的问题。

    【1043142】【一般】 修复了MySQL兼容模式下执行“select current_user();”查询失败并报错的问题。

    【1042740】【一般】 修复了MySQL兼容模式下,计算表达式分母为0时报错的问题。

    【1041873】【一般】 修复了MySQL兼容模式下设置参数lower_case_table_names值为1时,为表或视图的字段添加COMMENT时没有大小写敏感的问题。

    【1041872】【一般】 修复了无法通过vb_guc工具设置参数lower_case_column_names值的问题。

    【1041871】【一般】 修复了MySQL兼容模式下,参数lower_case_table_names值为0,数据库中存在大小写对象,使用\dt,\dv,\dn、\det、\du查看大写各对象时,只能查到小写对象的问题。

    【1041767】【一般】 修复了MySQL兼容模式下,使用CAST和CONVERT函数将源类型转换为SIGNED/UNSIGNED INTEGER时报错的问题。

    【1041625】【一般】 修复了MySQL兼容模式下向具有UNSIGNED属性的字段中插入数据后,查询时ORDER BY返回的结果顺序有误的问题。

    【1041442】【一般】 修复了MySQL兼容模式下使用反引号作为标识符时报错的问题。

    【1041356】【一般】 修复了MySQL兼容模式下,pg_get_tabledef函数查询大写表名失败的问题。

    【1041221】【一般】 修复了MySQL兼容模式下@变量出现在interval后报错的问题。

    【1040932】【一般】 修复了MySQL兼容模式下,day、dayofmonth函数入参为time类型,返回结果不符合预期的问题。

    【1040590】【一般】 修复了使用vb_dump导出MySQL兼容模式数据库时,CREATE FUNCTION中存在definer=username的前提下,导入报错的问题。

    【1039077】【一般】 修复了V2.2 Build 15中在MySQL兼容模式下使用week、day和dayofmonth函数时,入参为time类型时返回结果有误的问题。

    【1033787】【一般】 修复了MySQL兼容模式下使用SET GLOBAL设置全局变量时报错信息不合理的问题。

    【1027324】【一般】 修复了MySQL兼容模式下,hll_hash_boolean函数的第二个入参使用非INT类型时,函数调用成功,与预期不符的问题。

    【1027300】【一般】 修复了MySQL兼容模式下,binary类型转换运算符匹配字符为空”时,报错“ERROR: selfuncs.cpp : 5706 : The parameter destMax is equal to zero or larger than the macro : SECUREC_STRING_MAX_LEN”的问题。

    【1027267】【一般】 修复了MySQL兼容模式下,对具有UNSIGNED属性的字段进行(+)连接查询时报错“could not find commutator for operator 17203”的问题。

    【1024443】【一般】 修复了MySQL兼容模式下,regexp_substr函数的执行结果与MySQL不一致的问题。

    【1024430】【一般】 修复了MySQL兼容模式下,regexp_replace函数的执行结果与MySQL不一致的问题。

    PostgreSQL兼容性

    【1042198】【严重】 修复了PostgreSQL兼容模式下,“rownum”关键字无法作为列别名的问题。

    【1042154】【严重】 修复了PostgreSQL兼容模式下,基表上含有serial自增列,通过create table like创建临时表时报错的问题。

    【1044839】【严重】 修复了PostgreSQL兼容模式下,在兼容PG风格的分区表上创建含olny的索引,插入重复数据,报错信息有误,且执行索引扫描时报错的问题。

    【1043523】【严重】 修复了向兼容PG风格的分区表中插入数据时报错的问题。

    【1044717】【一般】 修复了PostgreaSQL兼容模式下,使用兼容PG风格的分区声明语法创建的分区表,\d元命令查看到的子分区数量有误的问题。

    【1043111】【一般】 修复了PostgreSQL兼容模式下创建含有identity属性字段的表后,备份恢复失败的问题。

    【1043109】【一般】 修复了PostgreSQL兼容模式下对含identity字段的表进行DDL操作时,报错“more than one owned sequence found”的问题。

    【1043108】【一般】 修复了PostgreSQL兼容模式下,创建表时能够同时为字段指定identity属性和default约束,与预期不符的问题。

    【1043104】【一般】 修复了PostgreSQL兼容模式下允许为非法数据类型字段设置identity属性的问题。

    【1043101】【一般】 修复了PostgreSQL兼容模式下使用\h元命令查看CREATE TABLE、ALTER TABLE的语法帮助信息中缺少关于identity字段用法的问题。

    SQL Server兼容性

    【1036997】【一般】 修复了SQL Server兼容模式下,向bit类型插入NULL时报错“ERROR: bit string length0 does not match type bit(1)”的问题。