TiDB 5.1.2 Release Notes
发版日期:2021 年 9 月 27 日
TiDB 版本:5.1.2
兼容性更改
TiDB
- 以下 Bug 修复涉及执行结果变化,可能引起兼容性变化:
- 修复了
greatest(datetime) union null
返回空字符串的问题 #26532 - 修复了
having
子句可能执行错误的问题 #26496 - 修复了当
between
表达式两边的 collation 不一致会导致查询结果错误的问题 #27146 - 修复了当
group_concat
函数包含非bin
的 collation 时查询结果错误的问题 #27429 - 修复了当开启 New Collation 时,在多列上执行
count(distinct)
表达式结果错误的问题 #27091 - 修复了
extract
函数的参数是负数时查询结果错误的问题 #27236 - 修复了当
SQL_MODE
为 ‘STRICT_TRANS_TABLES’ 时,插入非法时间不报错的问题 #26762 - 修复了当
SQL_MODE
为 ‘NO_ZERO_IN_DATE’ 时,使用非法的默认时间不报错的问题 #26766
- 修复了
- 以下 Bug 修复涉及执行结果变化,可能引起兼容性变化:
Tools
TiCDC
- 将兼容版本从
5.1.0-alpha
改为5.2.0-alpha
#2659
- 将兼容版本从
改进提升
TiDB
- 根据直方图行数来触 auto-analyze,提升 auto-analyze 触发的准确度 #24237
TiKV
PD
TiFlash
- 支持
DATE()
函数 - 为 Grafana 面板增加每个实例的写入吞吐
- 优化
leader-read
流程的性能 - 加速 MPP 任务取消的流程
- 支持
Tools
TiCDC
Dumpling
- 支持备份一些无法执行
START TRANSACTION ... WITH CONSISTENT SNAPSHOT
和SHOW CREATE TABLE
语句的 MySQL 兼容数据库 #309
- 支持备份一些无法执行
Bug 修复
TiDB
- 修复 hash 列为
ENUM
类型时 index hash join 的结果可能出错的问题 #27893 - 修复极少数情况下 batch client 复用空闲连接可能阻塞请求发送的问题 #27678
- 修复了
FLOAT64
类型的溢出检查与 MySQL 不一致的问题 #23897 - 修复 TiDB 把
pd is timeout
错误返回成unknown
的问题 #26147 - 修复了
case when
表达式的字符集和排序规则错误的问题 #26662 - 修复 MPP 查询可能返回
can not found column in Schema column
错误的问题 #28148 - 修复 TiFlash 宕机可能导致 TiDB Panic 的问题 #28096
- 修复使用谓词
enum like 'x%'
可能导致错误结果的问题 #27130 - 修复当使用 IndexLookupJoin 时公共表达式 (CTE) 死锁的问题 #27410
- 修复死锁重试被错误记录到
INFORMATION_SCHEMA.DEADLOCKS
表的问题 #27400 - 修复分区表上的
TABLESAMPLE
查询结果排序不生效的问题 #27349 - 移除未使用的
/debug/sub-optimal-plan
HTTP 接口相关逻辑 #27265 - 修复 hash 分区表处理无符号数据时查询返回错误结果的问题 #26569
- 修复当
NO_UNSIGNED_SUBTRACTION
被设置时创建分区出错的问题 #26765 - 修复
Apply
转换为 Join 时缺失distinct
的问题 #26958 - 为处于恢复状态的 TiFlash 节点设置一段屏蔽时间,避免在此时间内阻塞查询 #26897
- 修复 CTE 被引用多次时可能出现的 bug 的问题 #26212
- 修复使用 MergeJoin 时可能造成 CTE 出现 bug 的问题 #25474
- 修复当 Join 分区表和普通表时
select for update
不能正确上锁的问题 #26251 - 修复当 Join 分区表和普通表时
select for update
语句结果报错的问题 #26250 - 修复
PointGet
不能使用轻量清锁的问题 #26562
- 修复 hash 列为
TiKV
- 修复当 TiKV 从 v3.x 升级至较高版本后出现 Panic 的问题 #10902
- 修复损坏的快照文件可能会造成磁盘空间无法回收的问题 #10813
- 当 slogger 线程过载且队列已满时,删除日志而不是阻塞线程 #10841
- 使 TiKV Coprocessor 慢日志只考虑处理请求所花费的时间 #10841
- 修复当处理 Coprocessor 请求时因超时而导致 Panic 的问题 #10852
- 修复 TiKV 在启用 Titan 并从 v5.0 以前的版本升级时出现 Panic 的问题 #10842
- 修复高版本的 TiKV 无法回滚到 v5.0.x 的问题 #10842
- 修复 TiKV 可能会在 RocksDB 读取文件之前删除文件的错误 #10438
- 修复遗留的悲观锁导致的解析失败的问题 #26404
PD
TiFlash
- 修复无法建立 MPP 连接时出现异常结果的问题
- 修复多盘部署时数据不一致的潜在问题
- 修复高负载时出现 MPP 查询结果错误的问题
- 修复 MPP 查询卡死的潜在问题
- 修复并发执行节点初始化与 DDL 操作时出现异常的问题
- 修复当查询过滤条件包含诸如
CONSTANT
、<
、<=
、>
、>=
或COLUMN
时出现错误结果的问题 - 修复并发执行多个 DDL 操作和 Apply Snapshot 操作时出现异常的潜在问题
- 修复写入压力大时 metrics 中 store size 不准确的问题
- 修复 TiFlash 长时间运行后无法回收 Delta 历史数据的潜在问题
- 修复开启 New Collation 时查询结果错误的问题
- 修复解锁出现异常的潜在问题
- 修复 metrics 显示错误值的问题
Tools
Backup & Restore (BR)
- 修复了备份数据和恢复数据时显示的平均速度数值不准确的问题 #1405
Dumpling
TiCDC
- 修复未充分考虑字符串类型的值可能是
string
或[]byte
时,转换为 JSON 格式可能导致 TiCDC 进程崩溃的问题 #2758 - 降低 gRPC 的 window size 以避免出现 OOM 的情况 #2673
- 修复内存压力较高时 gRPC 的
keepalive
错误 #2202 - 修复
unsigned tinyint
导致 TiCDC 崩溃的问题 #2648 - 修复 TiCDC Open Protocol 下输出空值的问题。修复后,在开放协议下,未包含变更的事务 TiCDC 处理时不再输出空值 #2612
- 修复手动重启 TiCDC 时 DDL 处理存在的问题 #2603
- 修复操作元数据时,
EtcdWorker
的快照隔离可能被破坏的问题 #2559 - 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题 #2230
- 修复 TiCDC 遇到
ErrSchemaStorageTableMiss
错误时可能导致 changefeed 被意外重置的问题 #2422 - 修复 TiCDC 遇到
ErrGCTTLExceeded
错误时 changefeed 不能被移除的问题 #2391 - 修复 TiCDC 同步大表到 cdclog 失败的问题 #1259#2424
- 修复未充分考虑字符串类型的值可能是