V5.4.x系列实例版本说明

本文汇总了PolarDB-X 1.0实例V5.4.x系列的版本说明。

发布日期:2024-10-10

大版本:V5.4.12

小版本:17285407

类别

说明

缺陷修复

修复UPDATE语句修改广播表,且其WHERE子句中的子查询包含单表(未做拆分的表)时,会导致广播表数据不一致的问题。

发布日期:2024-09-18

大版本:V5.4.12

小版本:17266518

类别

说明

缺陷修复

修复执行INNER JOINOUTER JOIN语句时,优化器发生重排序,导致结果不符合预期的问题。

发布日期:2024-08-18

大版本:V5.4.12

小版本:17239431

类别

说明

缺陷修复

修复TopDown优化器搜索空间不完整的问题。

发布日期:2024-07-30

大版本:V5.4.12

小版本:17223079

类别

说明

缺陷修复

修复对广播表中拥有ON UPDATE CURRENT_TIMESTAMP特性的列,执行可下推的DML语句,不同分片中该列赋值可能不同的问题。

修复对拥有ON UPDATE CURRENT_TIMESTAMP特性的列执行更新操作,精度丢失的问题。

修复对广播表执行的DML包含RAND()函数,数据不一致的问题。

发布日期:2024-04-28

大版本:V5.4.12

小版本:17142690

类别

说明

缺陷修复

修复多语句场景下,traceid/txid出现重复的问题。

修复统计信息自动收集超出运维时间后,可能无法自动终止的问题。

发布日期:2024-02-18

大版本:V5.4.12

小版本:17082300

类别

说明

优化

优化metadata query的创建逻辑,减少依赖。

缺陷修复

修复bka join高并发下偶现的报错问题。

修复子查询大于等于三项关联项时,关联匹配错乱的问题。

修复连接被KILL时小概率导致事务泄露的问题。

发布日期:2023-12-06

大版本:V5.4.12

小版本:17018434

类别

说明

缺陷修复

修复特定情况下UPSERT没有更新CURRENT_TIMESTAMP的问题。

修复窗口函数中order by和partition by字段为空时,在某些执行模式下可能报错的问题。

物化Semi join中移除item limit。

修复多列IN查询包含HEX表达式时参数化错误的问题。

修复TableScanExec在某些MergeSort场景下偶发异常早停的问题。

修复单表UPDATE中子查询表名没有被正确替换的问题。

修复跨库访问view时找不到表的问题。

修复json_extract函数提取不存在的属性时,错误地返回了字符串"NULL"的问题。

修复window函数order by时报Sql could not be implemented的问题。

Date_format()函数对fractional part的毫秒或微秒部分格式化错误的问题。

修复date_add函数计算不正确的问题。

修复AES_DECRYPT的返回类型和结果与MySQL返回的结果不一致的问题。

发布日期:2023-11-09

大版本:V5.4.12

小版本:16995379

类别

说明

缺陷修复

修复DML语句中包含View时,语义校验异常导致优化器报错的问题。

修复部分场景下子查询转Semi-join的优化可能导致查询报错的问题。

发布日期:2023-08-11

大版本:V5.4.12

小版本:16917477

类别

说明

缺陷修复

修复case when表达式在向量化执行时数据不正确的问题。

发布日期:2023-06-19

大版本:V5.4.12

小版本:16871653

类别

说明

新增&优化

升级fastjson的版本到1.2.82。

新增开关,避免大量in查询导致CPU过高。

缺陷修复

修复并行连接时出现Schema,偶发ConcurrentModifyError报错。

修复创建嵌套视图时的权限判断不正确的问题。

发布日期:2023-05-15

大版本:V5.4.12

小版本:16841435

类别

说明

缺陷修复

修复执行BKA join时优化器选错索引导致执行计划不优的问题。

修复show stc指令返回的dbname为空的问题。

发布日期:2023-04-28

大版本:V5.4.12

小版本:16826508

类别

说明

缺陷修复

修复多表JOIN没有区分分库键和分表键导致执行计划生成错误的问题。

修复部分场景下优化器转化聚合函数时报错的问题。

发布日期:2023-01-13

大版本:V5.4.12

小版本:16734968

类别

说明

优化

show ddl展示范围调整为库级别。

缺陷修复

修复unix_timestamp函数计算错误问题。

修复hex与to_base64函数解析binary变量不正确的问题。

修复spm params高并发下的清理问题。

发布日期:2022-10-26

大版本:V5.4.12

小版本:16667451

类别

说明

缺陷修复

修复ShowRule对于分库函数信息显示不正确的问题。

发布日期:2022-10-19

大版本:V5.4.12

小版本:16661390

类别

说明

新功能&优化

优化全下推Apply子查询的物理SQL。

支持独立的sync线程池。

缺陷修复

修复UPSERT中Update list顺序与表定义不同时,类型匹配报错的问题。

修复CBO阶段部分场景下agg节点无法下推的问题。

修复HashGroupJoin数组越界导致查询失败的问题。

修复统计信息表表结构变更的兼容性问题。

修复PolarDB-X 1.0对于Navicat主键元信息的兼容性问题。

发布日期:2022-09-01

大版本:V5.4.12

小版本:16619921

类别

说明

新功能&优化

RANGEHASH新增支持普通insert场景下的拆分键值检查。

缺陷修复

修复UPDATE多表NPE问题。

修复对于yyyyweek跨年周闭区间范围查询分片缺失问题。

修复show create tableshow global index中GSI表拆分规则显示错误的问题。

修复某些情况下window函数计算错误的问题。

修复JSON操作符->在表达式中的解析问题。

发布日期:2022-07-04

大版本:V5.4.12

小版本:16569042

类别

说明

缺陷修复

修复sum(bigint unsigned)返回类型不正确的问题。

发布日期:2022-06-20

大版本:V5.4.12

小版本:16556932

类别

说明

优化

优化Scan算子在流式归并排序过程中的内存使用。

缺陷修复

修复SQL限流匹配表名时带反引号,无法匹配表名的问题。

修复drds节点启动时SQL限流拿到错误配置的问题。

修复SQL限流重新调度执行时(wait_queue_size大于0,语句从等待队列出来执行),出错时未返回错误给客户端,导致客户端阻塞的问题。

修复执行计划中拆分参数被污染导致请求路由至错误分片的问题。

发布日期:2021-11-03

大版本:V5.4.12

小版本:16359407

类别

说明

缺陷修复

修复数据库名包含特殊字符时,通过DTS导数据产生的报错问题。

发布日期:2021-10-28

大版本:V5.4.12 hotfix

小版本:16349923

类别

说明

新增

明确set指令的支持边界,set指令暂不支持包含表达式的计算。

优化

优化死锁检测逻辑,确保陷入到死锁的事务可以被快速中止。

缺陷修复

修复sql_mode设置语句携带表达式时,导致物理建连失败的问题。

修复跨分片场景中包含limit的物理SQL由于受SQL cache的影响,存在查询结果不符合预期的问题。

发布日期:2021-09-14

大版本:V5.4.12

小版本:16315258

类别

说明

新增

优化器支持Cascades Style物理属性传递。

支持AES加解密函数。

新增自动KILL阻塞DDL的长事务的机制。

支持UPDATE拆分键为表的首列且字段类型为时间的场景。

优化

优化go-sql-driver在prepare协议下,兼容0000-00-00 00:00:00时间的问题。

优化创建聚簇索引时索引名大小写敏感的问题。

优化部分场景下INSERT SELECT的事务可见性问题。

优化DDL分表下的全并行执行策略。

优化Create/Drop Table过程中,逻辑表的可见性。

优化复杂DML过程中,由于数据过多易出现执行堆栈溢出问题。

缺陷修复

修复date_sub函数计算异常问题。

修复高精度Decimal在特殊情况下解码出错的问题。

修复点查命中带subpart的索引时,可能触发返回过多数据的问题。

修复广播表上包含子查询的可下推单表DELETE,子查询中指定库名导致报错的问题。

发布日期:2021-07-05

大版本:V5.4.11

小版本:16251897

类别

说明

新增

支持select into outfile语句,可以按指定分隔符和格式导出数据。

支持show table info from <tablename>语句,可以查看各分片的数据量。

支持基于采样的Histogram with TopN处理数据倾斜的情况。

支持SPM根据不同的参数空间选择不同plan的能力。

单表和广播表支持随机物理表名。

优化器支持Cascades搜索空间剪枝。

支持AliSQL秒杀热点的语法。

支持information_schema buffer相关的系统表:INNODB_BUFFER_POOL_STATS、INNODB_BUFFER_PAGE_LRU 和 INNODB_BUFFER_PAGE。

新增GENERAL_DYNAMIC_SPEED_LIMITATION参数用于动态调整GSI回填校验和scaleout的限速。

优化

优化统计信息的处理过程,增加TopN用于处理数据倾斜的情况。

缺陷修复

修复的问题如下:

  • 兼容已下线的事务超时系统变量drds_transaction_timeout。

  • load data导数据过程中对齐MySQL对空字符的处理语义。

发布日期:2021-05-26

大版本:V5.4.10

小版本:16219368

类别

说明

修复问题

修复的问题如下:

  • 部分场景下未能正确填充Sequence。

  • 特定字符串Collation条件下,GSI表数据不一致。

  • NOW函数在涉及事务的部分场景下的更新不及时。

V5.4.10-16202941 日期2021-05-07

类别

说明

修复问题

修复部分场景下物理SQL丢失traceId的问题。

V5.4.10-16193390 日期2021-04-26

类别

说明

新增特性

新增支持通过show global variables like '%ssl%'查看SSL连接状态。

修复问题

  • 修复当同时使用Join Hint和Limit SQL语句时,可能出现的栈溢出问题。

  • 修复当通过ALTER TABLE添加全局二级索引(GSI)或执行ScaleOut命令时,由于数据回填中使用了默认的sql_mode导致报错的问题。

  • 修复特定场景下,执行RENAME TABLE命令时会修改物理分片表名的问题。

  • 修复部分场景下使用INSERT命令同时插入多行数据后,last_insert_id取值不符合预期的问题。

V5.4.10-16179583 日期2021-04-09

类别

说明

新增特性

  • 新增支持GROUPING SETS、ROLLUP和CUBE语法,用于按照多组维度对查询结果进行分组,详情请参见Grouping Sets、Rollup和Cube扩展

  • 新增支持0~6位时间精度设置,更多详情,请参见Fractional Seconds in Time Values

  • 新增支持包含全局二级索引的索引推荐。

  • 新增支持在READ COMMITTED隔离级别下使用TSO事务。

  • 新增限制只读实例下的Sequence访问。

修复问题

  • 修复当通过同一连接重建库时,导致元数据异常的问题。

  • 修复sql_mode值不合法导致SQL语句执行时会报错的问题。

  • 修复在MySQL高可用切换过程中,低版本的Java驱动会断连的问题。

  • 修复当对多表执行带有AGG子查询的DML命令时会报错的问题。

  • 修复当多表UPDATE或DELETE时,相同表重复出现导致的affected rows不正确的问题。

  • 修复ALLOW_READ事务策略下,在广播表写入失败后事务依然能够提交的问题。

  • 修复相关联子查询条件推导结果中缺少OR条件,导致分区裁剪结果不正确的问题。

  • 修复当多语句(即用英文分号(;)分割的SQL语句)中包含SET AUTOCOMMIT命令时,执行结果不正确的问题。

  • 修复PREPARE协议下异常传递丢失的问题及元数据获取报错的问题。

  • 修复某些情况下,当执行包含Interval函数的语句时,物理SQL会报错的问题。

  • 修复DML执行过程中报错,导致事务未释放的问题。

  • 修复子查询全表扫描误判,导致全表扫描不合理的问题。

  • 修复函数名加反引号的用法会导致报错的问题。

  • 修复建表时由于索引定义引用了不存在字段,导致空指针异常(NullPointerException,简称NPE)的问题。

  • 修复为单表创建独立的关联Sequence后,当执行INSERT命令时,Sequence会不生效的问题。

  • 修复无法在某些客户端上执行SHOW VARIABLES语句的问题。

  • 修复部分情况下,SHOW PROCESSLIST无法查询数据的问题。

  • 修复时间类型与函数的兼容性问题,提升对时间类型数据的处理效率。

  • 修复监控中的连接数显示不正确的问题。

  • 修复ALTER TABLE语句中CONVERT TO CHARACTER SET不能同时修改GSI索引表的问题。

  • 修复部分PARSER报错信息不明确的问题。

优化性能

  • 优化占用大内存SQL的执行,提升SQL执行速度。

  • 优化HashJoin、NLJoin和SemiHashJon的执行方式,使其能按流式方式执行,提升执行速度。

  • 优化查询优化器的算法,用于消除JOIN、FILTER、基于BKA(Batched Key Access)算法的IN条件中的重复条件。

  • 优化部分子查询的执行速度。

V5.4.9-16142062 日期2021-02-25

类别

说明

新增特性

默认禁止执行未包含条件的UPDATE或DELETE语句。

修复问题

修复特殊情况下,无法正确提示非法SQL的语法错误的问题。

V5.4.9-16124261 日期2021-02-05

类别

说明

新增特性

  • 新增支持ALTER TALBE ADD PRIMARY KEY语法。

  • 新增支持单表下推场景下的变量赋值语法。

修复问题

  • 修复MIN_ALLOCATE_SIZE参数设置时会出错的问题。

  • 修复当列名定义与引用的大小写不同时,会导致GSI创建失败的问题。

V5.4.9-16116300 日期2021-01-26

类别

说明

新增特性

  • 兼容MySQL Collation特性,新增支持若干Collation来确保SQL语句字符串排序的正确性,详情请参见Collation类型

  • 新增支持全部MySQL窗口函数,详情请参见窗口函数

  • 新增支持局部索引智能推荐功能,详情请参见智能索引推荐

  • 新增支持DELETE语句为单表指定别名。

  • 新增支持AlTER VIEW语法。

  • 新增支持SQL中使用_binary 'data...'表示二进制数据。

  • 新增支持JOIN和DML语句中的自动全局二级索引选择。

  • 新增支持事务中的复杂查询。

  • PREPARE协议新增支持UNSIGNED数据类型。

修复问题

  • 修复某些条件下复杂JOIN结果不正确的问题。

  • 修复当窗口函数中OVER部分的参数为空时的报错问题。

  • 修复执行BIT_OR函数会报错的问题。

  • 修复在无主键的表上修改拆分键,报错信息会不准确的问题。

  • 修复当查询结果中单行数据量超过16 MB时,查询结果的数据包未做切分导致报错的问题。

  • 修复主键数据类型为UNSIGNED BIGINT的全局二级索引表,全局二级索引的数据回填进度不正确的问题。

  • 修复部分情况下当物理SQL包含别名时,SQL执行会报错的问题。

  • 修复ROUND函数的计算结果不正确的问题。

  • 修复LOCATE、INSTR等字符串搜索函数的计算结果不正确的问题。

  • 修复部分情况下IF函数无法下推的问题。

优化性能

  • 优化广播表的读请求执行策略,避免读请求被路由到单个节点而出现热点访问。

  • 优化PREPARE STATEMENT模型,提升PREPARE阶段的性能。

  • 优化字符存储方式,提升系统处理字符类型时处理效率。

  • 优化只读事务和单分片写事务的性能。

V5.4.8-16069335 日期2020-12-03

类别

说明

新增特性

  • 支持窗口函数,详情请参见窗口函数

  • 支持分布式死锁的检测。

  • 支持ROW_COUNT()FOUND_ROWS()函数。

  • 支持MATCH AGAINST函数(暂不支持WITH QUERY EXPANSION语法)。

  • 支持向量化开关参数ENABLE_EXPRESSION_VECTORIZATION,您可通过自定义HINT命令开关该功能。

  • 支持GLOBAL_INDEXES和METADATA_LOCK两张系统表,方便管理与维护全局二级索引。

  • 支持SET TRANSACTION ISOLATION LEVEL语法,用于设置单条语句或单个事务的隔离级别。

  • 支持START TRANSACTION READ ONLY语法,用于设置单个事务的读写属性。

  • 支持LookUpJoin值裁剪,提升JOIN性能。

修复问题

  • 修复事务内可能会多次获取相同分表上的连接,导致报错的问题。

  • 修复因删除某数据库后又创建了同名的新数据库,所产生的脏数据导致SQL执行时的空指针异常(NullPointerException,简称NPE)问题。

  • 修复部分情况下异步日志消费线程无法退出问题。

  • 修复部分异常情况下引发的连接泄露问题。

  • 修复部分SQL执行失败后,可能导致连接断开的问题。

  • 修复与PolarProxy读写分离不兼容的问题。

  • 修复可能产生重复CONNECTION ID的问题。

  • 修复全局唯一索引报错信息中的索引名称与实际使用索引名称不对应的问题。

  • 修复带GSI的DDL限制不严格的问题。

  • 修复部分情况下可能存在的Stack Overflow问题。

  • 修复ORDER BY列序号结果可能不正确的问题。

  • 修复建表时,若表名长度超出MySQL限制,报错信息与MySQL报错信息不一致的问题。

  • 修复CREATE TABLE LIKE语句执行时的NPE问题。

  • 修复在只读实例上使用包含auto_increment_increment变量的命令会出现的NPE问题。

  • 修复GSI DDL任务恢复后可能会导致不同随机后缀物理表遗留的问题。

  • 修复DDL命令执行过程中偶发性的死锁问题。

  • 修复当使用CHECK TABLE检查单表时,系统只检查部分分库的问题。

  • 修复当存在大量RDS实例或分库时,DDL执行过程中偶发性的执行卡住问题。

  • 修复部分ORDER BY场景下,物理SQL转换错误的问题。

  • 修复跨库单表情况下,执行计划转换错误的问题。

  • 修复部分跨库单表情况下,数据库名称在物理SQL命令中没有被去除的问题。

  • 修复若时间类拆分函数中输入了NULL值,计算路由时会报错的问题。

  • 修复Memory Pool泄露的问题。

  • 修复INSERT ON DUPLICATE KEY UPDATE中多个VALUES与同一行冲突时,affected rows不正确的问题。

  • 修复若表中包含多个UNIQUE KEY,INSERT ON DUPLICATE KEY UPDATE中多个VALUES与相互重叠的多行冲突时,导致变更行选择不正确的问题。

  • 修复当多表UPDATE或DELETE时,相同表重复出现导致的affected rows不正确的问题。

  • 修复TRACE结果中未打印UPDATE或DELETE语句参数的问题。

  • 修复执行INSERT SELECT之后,可能出现的相同事务后续SELECT看不到新插入数据的问题。

  • 修复部分场景下在子查询中引用了包含别名的表,导致UPDATE语句报错的问题。

  • 修复DATETIME直方图序列化导致范围查询代估算不准确的问题。

  • 修复在超长SQL执行时,因全链路压测判断导致PARSE缓慢的问题。

优化性能

  • 优化IN VALUES类型语句执行计划的裁剪算法。

  • 优化LookUpJoin的执行方式,统一按照流式方式执行。

  • 优化全局事务日志表,通过MySQL分区表实现,消除因事务日志表清理造成的性能抖动。

  • 优化执行器逻辑,避免出现SQL执行时会长时间卡住的问题。

  • 优化代价估算模型,新增流式算子代价估算模型。

  • 优化RENAME TABLE执行前的检查,提高实例整体性能。

  • 提高DDL执行时的稳定性,减少DDL执行失败的概率。

  • 优化INSERT冲突检测使用的物理SQL,若VALUES中存在重复情况可以提前去重。

  • 在使用自增主键且UNIQUE KEY包含全部拆分键场景下,优化INSERT冲突检测使用的分区裁剪策略,避免全表扫描。

V5.4.7-16027425 日期2020-10-15

类别

说明

修复问题

  • 修复升级实例版本后,无法通过MySQL上通过连接串登录PolarDB-X 1.0数据库的问题。

  • 升级DRUID版本,并修复任务计数器泄露导致PolarDB-X 1.0无法与后端MySQL建立连接的问题。

  • 修复EXPLAIN并发处理的相关问题。

  • 修复当加载新建数据库配置出现偶发性报错并无法恢复相关配置时,导致新建数据库不可用的问题。

  • 修复在单表上执行INSERT语句时,LAST_INSERT_ID结果异常的问题。

  • 修复在非AUTO_INCREMENT的列上显式指定SEQUENCE时报错的问题。

  • 修复REPLACE SELECT语句中包含AGG命令时,导致报错的问题。

  • 修复使用KILL CONNECTION命令时,小概率出现的MDL锁泄露问题。

  • 修复在区分大小写的MySQL存储引擎中从5.4.3或之前版本升级到5.4.4或以上版本时,导致的GSI元数据异常问题。

  • 修复在混用utf8和utf8mb4连接编码场景下,当物理连接中使用SET NAMES失败时,小概率出现的编码异常问题。

  • 修复ANALYZE表中JSON字段异常的问题。

V5.4.7-16000638 日期2020-09-14

类别

说明

新增特性

  • 支持在DELETE语句中使用子查询,子查询的子句范围与SELECT相同。

  • 支持跨分片DELETE和UPDATE中使用ORDER BY、LIMIT或ORDER BY LIMIT命令。

  • 支持跨分片DELETE和UPDATE多表中的数据。

  • 支持在多表删除中删除广播表中的数据(目标表列表中可以包含广播表)。

  • 支持在UPDATE语句中使用子查询,子查询的子句范围与SELECT相同,且不支持在SET子句中使用子查询。

  • 支持UPDATE更新逻辑表的拆分键字段。

  • 支持在多表更新中修改广播表(广播表中的列可以出现在SET中赋值语句的左侧)。

  • 支持在VALUES从句中不指定拆分键或唯一键的值,或指定值为DEFAULT。

  • 支持通过INSERT ON DUPLICATE KEY UPDATE修改主键、唯一键或拆分键的值。

  • 支持在VALUES从句中设置唯一键中任意一列的值为NULL。

  • 支持在BATCH INSERT语句中两行的主键或唯一键重复。

  • 支持索引表中包含ON UPDATE CURRENT_TIMESTAMP或DEFAULT CURRENT_TIMESTAMP的列。

  • 支持索引表中包含类型为TIMESTAMP且未指定DEFAULT VALUE或指定了CURRENT_TIMESTAMP为DEFAULT VALUE的列。

  • 支持如下向量化的表达式:

    • 基本类型(如SHORT、INT、LONG、FLOAT、DOUBLE)的ADD(+)、MINUS(-)、MULTIPLY(*)、MOD(%)运算。

    • 基本类型的逻辑运算(如AND、OR、NOT)。

    • 基本类型的IS运算。

    • 控制流表达式(如CASE WHEN、IF、IF NULL)。

    • COALESCE表达式。

  • 支持GROUP JOIN算子。

  • 支持ENUM数据类型。

  • 支持下推算子代价估算。

  • 支持自动判断SQL负载类型。

  • 支持通过EXPLAIN LOGICVIEW展示下推算子。

  • 支持通过INFOMATION_SCHEMA.WORKLOAD展示实时负载。

  • 支持在INFOMATION_SCHEMA中显示PROCESSLIST、CONSTRATINS和VARIABLES信息。

  • 支持将SQL负载类型及代价信息打印到SQL日志中。

  • 支持在创建全局二级索引时强制要求索引必须包含索引名及分库拆分规则,并对未包含上述规则的二级索引创建语句给出准确报错。

  • 支持GROUP SEQUENCE自动抬高功能。

  • 支持通过LOAD DATA语法导入数据。

修复问题

  • 修复聚合函数下唯一键判断错误可能导致的索引使用错误等问题。

  • 修复非Java语言PREPARE模式下使用SELECT子查询可能报错的问题。

  • 修复若干MPP模式下的潜在问题 (如部分对象无法序列化)。

  • 修复对ZEROTIME、ZEROTIMESTAMP、ZERODATE等的支持问题。

  • 修复建表存在重复列时不会报错的问题。

  • 修复TINYINT返回长度概率性出错的问题。

  • 修复全局二级索引锁丢失问题。

  • 修复垂直拆分模式下通过ALTER TABLE加减列不生效的问题。

  • 修复自定义auto_increment_increment参数后,getGeneratedKeys不准确的问题。

  • 修复使用SEQUENCE语句时有可能访问到只读实例的问题。

  • 修复STR_TO_DATE指定格式返回结果不正确的问题。

  • 修复多种表达式的类型错误和执行错误问题。

优化性能

  • 优化部分HASHJOIN执行计划,使之匹配BKAJOIN算法,提升查询性能。

  • 优化MergeSort实现,解决归并排序过程中保持过多连接的问题。

  • 优化复杂查询逻辑,使用基于CBO代价估算实现复杂查询的识别。

  • 优化MemoryNotEnoughException错误提示,并在提示中显示USAGE和LIMIT信息。

  • 优化TIME-BASED SEQUENCE批量插入的性能。

  • 禁止同一拆分列在分库分表上使用不同的拆分函数。

V5.4.6-15946373 日期2020-07-13

类别

说明

新增特性

  • 新增支持CUBE、ROLLUP、GROUPING和GROUPING SETS语法。

  • 新增支持一个查询同时包含多个带DISTINCT关键字的聚合函数。

  • 新增支持需要回表场景下全局二级索引的自动选择。

  • 新增支持SHOW TRACE、SHOW SLOW使用WHERE和ORDER BY语法。

  • 新增支持对视图的SHOW COLUMN和SHOW INDEX操作。

  • 新增支持Functional Dependency。

修复问题

  • 修复First Value导致聚合函数无法下推问题。

  • 修复PREPARE协议下内存对象未被释放的问题。

  • 修复PREPARE协议下执行SET语句抛异常的问题。

  • 修复PREPARE协议下非Java户端可能会产生的错误问题。

  • 修复部分场景下包含全局二级索引表上执行INSERT,由于主键校验异常导致报错的问题。

  • 修复全局二级索引特殊情况下回滚失败的问题。

  • 修复全局二级索引校验在错误超限时的报错信息。

  • 修复包含全局二级索引的表在SHOW CREATE TABLE时缺失Sequence类型的问题。

  • 修复DROP正在创建中的全局二级索引的报错信息。

  • 修复SET开始的多语句,后续语句转义问题。

  • 修复部分解析器语法问题。

  • 修复标识符、别名等包含英文反引号(`)的问题。

  • 修复TableMeta主键误报问题。

  • 修复部分场景下元数据刷新导致UPDATE执行报错的问题。

  • 修复RR隔离级别的一处连接管理问题。

  • 修复SHOW STATS中ACTIVE_CONNECTIONS不准确的问题。

  • 修复子查询部分场景下报错的问题。

  • 修复OPTIMIZE TABLE有概率被路由到备库的问题。

  • 修复部分模式下SELECT ... FOR UPDATE语句会走备库问题。

  • 修复特殊情况下EXPLAIN OPTIMIZER报错的问题。

  • 修复Datetime类型的拆分键的路由结果不正确的问题。

优化性能

  • 优化MPP优化阶段,统一SMP及MPP的CBO算法。

  • 优化XA分布式事务提交的性能。

  • 优化窗口函数不支持的报错。

  • 优化GROUP BY和ORDER BY中子查询不支持的报错。

  • 禁用CREATE TABLE SELECT STATEMENT语法。

V5.4.5-15917814 日期2020.06.11

类别

说明

修复问题

  • 修复部分场景下物理SQL中包含指定GSI的USE INDEX导致报错的问题。

  • 修复包含GSI的表,在ON DUPLICATE KEY UPDATE中引用时间函数表达式导致报错的问题。

  • 修复information_schema.statistics索引值为NULL问题。

  • 修复information_schema.statistics大小写问题。

  • 修复DML语句表名大小写处理异常,导致GSI创建失败的问题。

  • 修复非Java语言使用PREPARE模式访问PolarDB-X 1.0可能出现的NPE问题。

V5.4.5-15897682 日期2020.05.18

类别

说明

新增特性

  • 新增支持视图的创建、修改和删除。

  • 新增支持单表并行查询。

  • 新增支持在主键为任意类型的表上创建全局二级索引。

  • 新增支持INFOMATION SCHEMA的复杂查询。

  • 新增支持设置SESSION事务隔离级别。

  • 新增支持EXPLAIN支持前置COMMENT(如/* COMMENT*/EXPLAIN …)。

  • 新增支持热点补丁语法。

  • 新增支持MySQL协议中COM_RESET_CONNECTION命令。

  • 新增支持SHOW TRANS命令显示PROCESS_ID

修复问题

  • 修复MySQL 8.0 PREPARE模式下若干问题。

  • 修复SHOW STATS中类型转换错误。

  • 修复数字结尾的逻辑表名导致执行计划展示异常的问题。

  • 修复EXPLAIN OPTIMIZER在部分场景下报错的问题。

  • 修复特殊表结构导致UPDATE返回值数据类型异常的问题。

  • 修复添加多列全局二级索引时,局部索引名过长导致报错的问题。

  • 修复部分类型返回问题。

  • 修复LIMIT、OFFSET过大值导致的溢出问题。

  • 修复部分列子查询APPLY执行器问题。

  • 修复高并发大批量多语句DML执行有概率被内存池分配限制并产生报错的问题。

  • 修复SELECT FROM DUAL WHERE NOT EXISTS…报错问题。

优化性能

优化全局二级索引多索引表点写性能。

V5.4.4-15862314 日期 2020.04.07

类别

说明

修复问题

  • 修复包含列子查询的INSERT SELECT在部分场景下报错的问题。

  • 修复部分场景下物理SQL丢失别名的问题。

  • 修复单逻辑表场景下应用执行计划失效的问题。

  • 修复部分场景下执行计划缓存导致的权限问题。

  • 修复拆分键大小写导致BKAJoin报错的问题。

  • 修复BKAJoin不支持MergeUnion的问题。

  • 修复部分带HINT的DELETE报错的问题。

  • 修复AsyncDDL初始化过慢导致SPM初始化异常的问题。

V5.4.4-15846983 日期 2020.03.20

类别

说明

新增特性

  • 支持非递归公共表表达式(CTE)语法。

  • SHOW PHYSICAL_PROCESSLIST指令支持WHERE、ORDER BY、LIMIT和ORDER BY LIMIT。

  • 支持BASELINE HELP指令。

  • 支持EXPLAIN JSON_PLAN [SQL]指令,输出JSON格式的物理执行计划。

  • LIKE运算符支持ESCAPE关键字。

  • 支持通过开关控制DDL生成的物理表名是否带随机串。

  • 支持协程开关。

修复问题

  • 修复HAVING中子查询重名情况下列别名匹配错误问题。

  • 修复子查询中GROUP BY匹配别名错误问题。

  • 修复非等号子查询关联项部分场景下的顺序问题。

  • 修复枚举类型的等值过滤问题。

  • 修复使用高版本JDBC驱动读取TINTINT(1)/BIT(1)显示为二进制问题。

  • 修复TIMESTAMP固定显示3位秒级以下精度问题。

  • 修复部分场景下TIMESTAMP和TINYINT互转问题。

  • 修复SHOW STATS中并发处理可能导致的物理库QPS不准确的问题。

  • 修复窗口函数优化部分场景下转化失败报错的问题。

  • 解决跨库时存在同名表时解析优化表名混淆问题。

  • 修复拆分键为复合主键一部分时,不为拆分键自动创建索引的问题。

  • 修复SHOW TABLESINFORMATION_SCHEMA查询结果包含当前用户无权限表的问题。

  • 修复通过ALTER TABLE变更AUTO_INCREMENT字段时报SEQUENCE已存在的问题。

  • 修复INFORMATION_SCHEMA.STATISTICS查询结果不完整的问题。

  • 修复表名中带有英文句点(.)时建表和删表失败的问题。

  • 修复SHOW COLUMNS不支持跨SCHEMA查询的问题。

  • 修复EXPLAIN OPTIMIZER异常处理机制导致查询报错的问题。

  • 修复UPDATE不支持别名使用英文反引号(`)的问题。

  • 修复多表UPDATE部分场景下丢失别名导致的报错问题。

  • 修复添加全局二级索引时,索引表中缺少主表上部分局部索引的问题。

优化性能

  • 优化XA、2PC分布式事务流程,不再支持柔性事务。

  • 优化DECIMAL数据类型实现。

  • 优化事务内扫描多分片SQL的并发执行策略。

  • 优化SEMIJOIN类子查询性能。

V5.4.3-15791082 日期2020.01.16

类别

说明

新增特性

  • 新增DML语句的CPU统计及SQL日志指标的打印。

  • 新增SQL日志增加arows属性(逻辑SQL的所有物理DML的影响行数)。

修复问题

  • 修复产生一个物理分片的SQL查询的ptc与frows统计错误问题的问题。

  • 修复JOIN HINT与回表算子的兼容性问题。

  • 修复LIMIT存在时CBO异常下推Filter的问题。

  • 修复USE、IGNORE INDEX指定无效索引时错误下推到物理SQL中的问题。

  • 修复Filter下推对子查询ApplyCache的支持。

优化性能

  • 优化启动时统计信息加载效率。

  • 优化SET NAMES指令对utf8mb4兼容编码的处理效率。

V5.4.3-15788850 日期2020.01.13

类别

说明

新增特性

  • 新增全局二级索引自动索引选择,详情请参见使用全局二级索引

  • 新增通过USE INDEX和IGNORE INDEX限制候选的全局二级索引。

  • 新增通过UPDATE语句更新全局二级索引表的拆分键。

  • 新增全局二级索引校验,详情请参见CHECK GLOBAL INDEX

  • 新增支持在BKAJOIN中进行动态分区裁剪。

  • SHOW PROFILE命令增加显示计划的并行度及TRACEID。

  • 新增支持 SET tx_isolation = ‘…’ 语法。

修复问题

  • 修复跨库INSERT SELECT的偶发性内存不足(OOM)问题。

  • 修复统计信息列大小写敏感问题。

  • 修复部分下推SQL EXPLAIN EXECUTE返回结果为空的问题。

  • 修复LENGTH、IF、IFNULL函数的结果类型推导。

优化性能

  • 改进DDL任务引擎的稳定性、易用性和性能。

  • 优化单条SQL运行过程中的CPU统计准确性。

V5.4.2-15749091 日期 2019.11.28

类别

说明

修复问题

  • 修复主表带AGG,以及有PROJECT中的子查询时,关联项ID丢失问题。

  • 修复show stc指令丢失dbnameipport信息问题。

V5.4.2-15744202 日期 2019.11.22

类别

说明

新增特性

  • PolarDB-X 1.0支持RDS MySQL 8.0与PolarDB MySQL 8.0实例。

  • 新增对SQL进行CPU及内存消耗分析功能,可通过SHOW PROFILE [CPU|MEMORY] [FOR QUERY X]命令分析。

  • SHOW PROCESSLIST新增SQL的CPU消耗与内存消耗信息。

修复问题

  • 修复TIME类型及相关函数兼容问题。

  • 修复一些类型相关的推导问题。

优化性能

  • 优化BATCH INSERT性能。

  • 优化全局二级索引数据回填并行化,提升回填速度。

V5.4.1-15731181 日期 2019.11.07

类别

说明

新增特性

  • 新增支持创建全局二级索引(CREATE GLOBAL INDEX)、创建全局唯一索引(CREATE UNIQUE GLOBAL INDEX)、查看全局二级索引语法(SHOW GLOBAL INDEX)。详情请参见使用全局二级索引

  • 新增动态调整PolarDB-X 1.0连接时区功能。

  • 新增支持逻辑RENAME TABLE,提高RENAME TABLE性能。

  • 新增CREATE SHADOW TABLE语法,用于创建和关联全链路压测影子表。

  • 新增UPDATE、DELETE对DERIVED子查询的支持。

  • 新增CBO、JOIN与AGG下推与交换能力。

  • 新增SHOW METADATA LOCK查看DRDS METADATA LOCK信息。

  • 新增支持PLAN MANAGEMENT运维指令。

  • 新增支持CREATE TABLE WITH GLOBAL INDEX和CREATE GLOBAL INDEX的回滚。

  • 新增CREATE TABLE和DROP TABLE关联未完成全局二级索引的检查并提示。

  • 新增支持指定JOB ID执行SHOW DDL。

  • 新增支持非等值的条件推导。

  • 新增PARALLEL QUERY对更多算子并行的支持。

修复问题

  • 修复回收站启用后,表名中包含特殊符号导致RENAME TABLE报错的问题。

  • 修复PlAN MANAGEMENT线程池抛ABORT异常问题。

  • 修复HashAggCursor处理不同类型输入HASHCODE不准确问题。

  • 修复BETWEEN与NOT BETWEEN处理问题。

  • 修复HashAggExec内存统计问题。

  • 修复写入广播表时的函数计算出错问题。

  • 修复使用高版本JDBC驱动连接MANAGE PORT报错的问题。

  • 修复UPDATE、DELETE条件中包含库名导致报错的问题。

  • 修复UPDATE、DELETE SET部分有重名列导致报错的问题。

  • 修复LEFT JOIN + IS NULL导致分区裁剪异常的问题。

  • 修复INSERT SELECT偶发的不支持错误的问题。

  • 修复全局二级索引表名、拆分键、DDL回滚表名中包含特殊字符问题。

  • 修复SQL中HINT和COMMENT多层嵌套时解析异常。

  • 修复建表语句DEFAULT后加COLLATE的解析错误问题。

  • 修复非法日期时间格式解析的问题。

  • 修复CONVERT函数转换HEX到字符乱码的问题。

  • 修复SUBSTRING、SUBSTRINGINDEX、JSONEXTRACT等函数传递NULL参数异常的问题。

  • 修复CONNECTION_ID()与SHOW RPOCESSLIST不一致的问题。

  • 修复子查询表名同外表一致时出现的异常。

  • 修复子查询转化过程中CASE WHEN函数的类型问题。

  • 修复PROJECT中多个子查询下推时的转换问题。

  • 修复包含JOIN的列重名问题。

  • 修复部分列找不到误报未表找不到的问题。

  • 修复查询时ORDER BY不存在的列导致的StackOverflow问题。

  • 修复WHERE条件中存在CASE WHEN且WHEN表达式存在AND条件下的下推错误问题。

  • 修复当JOIN左右表存在不可下推的PROJECT时,进行JOIN_PROJECT_TRANSPOSE导致的问题。

  • 修复当TIMESTAMP类型作为拆分键时会因时区导致分片路由错误的问题。

优化性能

  • 优化规则自动清理任务执行。

  • 优化INFORMATION_SCHEMA查询性能。

  • 优化BKAJOIN COST估算算法。

  • 优化DDL后更新统计信息、BASELINE逻辑。

  • 优化两阶段AGG逻辑,支持GROUP BY列。

  • 优化PolarDB-X 1.0事务日志的清理策略,减少清理时间,降低对后端存储的访问压力。

  • 优化ADDTIME、SUBTIME、DATEADD、DATESUB、INTERVAL等函数中微秒精度计算。

  • 优化SQL审计日志减少网络抖动的影响。

  • 优化器内支持创建DOUBLE类型的LITERAL。

  • 优化下推的GROUP BY查询避免生成子查询。

  • 优化聚合函数内部实现,内存占用更低、性能更优。

  • 优化CBO对常量表达式的选择率估计。

  • 优化DDL相关解析,增强错误检查能力。

  • 优化部分涉及时间类型的表达式计算中对异常时间的处理,兼容MySQL行为。