TiDB 5.1.2 Release Notes

    TiDB 版本:5.1.2

    • TiDB

      • 以下 Bug 修复涉及执行结果变化,可能引起兼容性变化:
        • 修复了 返回空字符串的问题
        • 修复了 having 子句可能执行错误的问题 #26496
        • 修复了当 between 表达式两边的 collation 不一致会导致查询结果错误的问题
        • 修复了当 group_concat 函数包含非 bin 的 collation 时查询结果错误的问题 #27429
        • 修复了当开启 New Collation 时,在多列上执行 count(distinct) 表达式结果错误的问题
        • 修复了 extract 函数的参数是负数时查询结果错误的问题 #27236
        • 修复了当 SQL_MODE 为 ‘STRICT_TRANS_TABLES’ 时,插入非法时间不报错的问题
        • 修复了当 SQL_MODE 为 ‘NO_ZERO_IN_DATE’ 时,使用非法的默认时间不报错的问题 #26766
    • Tools

      • TiCDC

        • 将兼容版本从 5.1.0-alpha 改为 5.2.0-alpha
    • TiDB

      • 根据直方图行数来触 auto-analyze,提升 auto-analyze 触发的准确度
      • 支持动态更改 TiCDC 配置项 #10645
      • 减少 Resolved TS 消息的大小以节省网络带宽
      • 支持限制每个 Store 发送的心跳包信息中 peer stats 的数量 #10621
    • PD

      • 存在 scatter range 调度器情况下,允许空 Region 被调度,并可以在该调度器中使用单独的 tolerance 配置项
      • 提升 PD 之间同步 Region 信息的性能 #3933
      • 支持根据 Operator 的生成情况动态调整 Store 的重试次数
    • TiFlash

      • 支持 DATE() 函数
      • 为 Grafana 面板增加每个实例的写入吞吐
      • 优化 leader-read 流程的性能
      • 加速 MPP 任务取消的流程
    • Tools

      • TiCDC

        • 当统一分类器使用内存进行分类时,优化内存管理 #2553
        • 当并发性高时,优化 workerpool 以减少 goroutines 的数量
        • 添加一个全局 gRPC 连接池并在 KV 客户端之间共享 gRPC 连接 #2534
        • 禁止跨主要和次要版本操作 TiCDC 集群
      • Dumpling

        • 支持备份一些无法执行 START TRANSACTION ... WITH CONSISTENT SNAPSHOTSHOW CREATE TABLE 语句的 MySQL 兼容数据库 #309
      • 修复 hash 列为 类型时 index hash join 的结果可能出错的问题 #27893
      • 修复极少数情况下 batch client 复用空闲连接可能阻塞请求发送的问题
      • 修复了 FLOAT64 类型的溢出检查与 MySQL 不一致的问题 #23897
      • 修复 TiDB 把 pd is timeout 错误返回成 unkonwn 的问题
      • 修复了 case when 表达式的字符集和排序规则错误的问题 #26662
      • 修复 MPP 查询可能返回 can not found column in Schema column 错误的问题
      • 修复 TiFlash 宕机可能导致 TiDB Panic 的问题 #28096
      • 修复使用谓词 enum like 'x%' 可能导致错误结果的问题
      • 修复当使用 IndexLookupJoin 时公共表达式 (CTE) 死锁的问题 #27410
      • 修复死锁重试被错误记录到 INFORMATION_SCHEMA.DEADLOCKS 表的问题
      • 修复分区表上的 TABLESAMPLE 查询结果排序不生效的问题 #27349
      • 移除未使用的 /debug/sub-optimal-plan HTTP 接口相关逻辑
      • 修复 hash 分区表处理无符号数据时查询返回错误结果的问题 #26569
      • 修复当 NO_UNSIGNED_SUBTRACTION 被设置时创建分区出错的问题
      • 修复 Apply 转换为 Join 时缺失 distinct 的问题 #26958
      • 为处于恢复状态的 TiFlash 节点设置一段屏蔽时间,避免在此时间内阻塞查询
      • 修复 CTE 被引用多次时可能出现的 bug 的问题 #26212
      • 修复使用 MergeJoin 时可能造成 CTE 出现 bug 的问题
      • 修复当 Join 分区表和普通表时 select for update 不能正确上锁的问题 #26251
      • 修复当 Join 分区表和普通表时 select for update 语句结果报错的问题
      • 修复 PointGet 不能使用轻量清锁的问题 #26562
    • TiKV

      • 修复当 TiKV 从 v3.x 升级至较高版本后出现 Panic 的问题
      • 修复损坏的快照文件可能会造成磁盘空间无法回收的问题 #10813
      • 当 slogger 线程过载且队列已满时,删除日志而不是阻塞线程
      • 使 TiKV Coprocessor 慢日志只考虑处理请求所花费的时间 #10841
      • 修复当处理 Coprocessor 请求时因超时而导致 Panic 的问题
      • 修复 TiKV 在启用 Titan 并从 v5.0 以前的版本升级时出现 Panic 的问题 #10842
      • 修复高版本的 TiKV 无法回滚到 v5.0.x 的问题
      • 修复 TiKV 可能会在 RocksDB 读取文件之前删除文件的错误 #10438
    • PD

      • 修复 PD 未能及时修复 Down Peer 副本的问题
      • 修复 更新后默认的 Placement Rules 副本数量不变的问题 #3886
      • 修复 PD 在扩容 TiKV 时可能会 Panic 的问题
      • 修复当集群中存在 evict leader 调度器时,PD 热点调度无法工作的问题 #3697
    • TiFlash

      • 修复无法建立 MPP 连接时出现异常结果的问题
      • 修复多盘部署时数据不一致的潜在问题
      • 修复高负载时出现 MPP 查询结果错误的问题
      • 修复 MPP 查询卡死的潜在问题
      • 修复并发执行节点初始化与 DDL 操作时出现异常的问题
      • 修复当查询过滤条件包含诸如 CONSTANT<<=>>=COLUMN 时出现错误结果的问题
      • 修复并发执行多个 DDL 操作和 Apply Snapshot 操作时出现异常的潜在问题
      • 修复写入压力大时 metrics 中 store size 不准确的问题
      • 修复 TiFlash 长时间运行后无法回收 Delta 历史数据的潜在问题
      • 修复开启 New Collation 时查询结果错误的问题
      • 修复解锁出现异常的潜在问题
      • 修复 metrics 显示错误值的问题
    • Tools

      • Backup & Restore (BR)

        • 修复了备份数据和恢复数据时显示的平均速度数值不准确的问题
        • 修复特定 MySQL 版本(8.0.3,8.0.23)下,show table status 返回结果不正确导致 dump 阶段卡死的问题 #333
        • 修复 CLI 在默认 sort-engine 选项上与 4.0.x 集群的兼容性问题
      • TiCDC

        • 修复未充分考虑字符串类型的值可能是 string[]byte 时,转换为 JSON 格式可能导致 TiCDC 进程崩溃的问题 #2758
        • 降低 gRPC 的 window size 以避免出现 OOM 的情况
        • 修复内存压力较高时 gRPC 的 keepalive 错误 #2202
        • 修复 unsigned tinyint 导致 TiCDC 崩溃的问题
        • 修复 TiCDC Open Protocol 下输出空值的问题。修复后,在开放协议下,未包含变更的事务 TiCDC 处理时不再输出空值 #2612
        • 修复手动重启 TiCDC 时 DDL 处理存在的问题
        • 修复操作元数据时,EtcdWorker 的快照隔离可能被破坏的问题 #2559
        • 修复 TiCDC 在重新调度 table 时多个 processors 可能向同一个 table 写数据的问题
        • 修复 TiCDC 遇到 ErrSchemaStorageTableMiss 错误时可能导致 changefeed 被意外重置的问题 #2422
        • 修复 TiCDC 遇到 ErrGCTTLExceeded 错误时 changefeed 不能被移除的问题