title: TiDB 2.1.5 Release Notescategory: Releases

TiDB 2.1.5 Release Notes

2019 年 2 月 28 日,TiDB 发布 2.1.5 版,TiDB-Ansible 相应发布 2.1.5 版本。相比 2.1.4 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。

TiDB

  • 优化器/执行器
    • 当列的字符集信息和表的字符集信息相同时,SHOW CREATE TABLE 不再打印列的字符集信息,使其结果更加兼容 MySQL #9306
    • Sort 算子中的表达计算抽取出来用一个 Project 算子完成,简化 Sort 算子的计算逻辑,修复某些情况下 Sort 算子结果不正确或者 panic 的问题 #9319
    • 移除 Sort 算子中的数值为常量的排序字段 #9335#9440
    • 修复向无符号整数列插入数据时数据溢出的问题 #9339
    • 目标 binary 的长度超过 max_allowed_packet 时,将 cast_as_binary 设置为 NULL #9349
    • 优化 IFIFNULL 的常量折叠过程 #9351
    • 使用 skyline pruning 优化 TiDB 的索引选择,增加简单查询的稳定性 #9356
    • 支持对析取范式计算选择率 #9405
    • 修复 !=ANY()=ALL() 在某些情况下 SQL 查询结果不正确的问题 #9403
    • 修复执行 Merge Join 操作的两个表的 Join Key 类型不同时结果可能不正确或者 panic 的问题 #9438
    • 修复某些情况下 RAND() 函数结果和 MySQL 不兼容的问题 #9446
    • 重构 Semi Join 对 NULL 值和空结果集的处理逻辑,使其返回正确的结果,更加兼容 MySQL #9449
  • Server
    • 增加系统变量 tidb_constraint_check_in_place,在 INSERT 语句执行时即检查数据的唯一性约束 #9401
    • 修复系统变量 tidb_force_priority 的值和配置文件中的设置的值不一致的问题 #9347
    • 在 general log 中增加 “current_db” 字段打印当前使用的数据库 #9346
    • 增加通过表 ID 来获取表信息的 HTTP API #9408
    • 修复 LOAD DATA 在某些情况下导入数据不正确的问题 #9414
    • 修复某些情况下,客户端建立连接慢的问题 #9451
  • DDL
    • 修复撤销 DROP COLUMN 操作中的一些问题 #9352
    • 修复撤销 DROP/ADD 分区表操作中的一些问题 #9376
    • 修复某些情况下 ADMIN CHECK TABLE 误报数据索引不一致的问题 #9399
    • 修复 TIMESTAMP 类型的默认值在时区上的一些问题 #9108

PD

  • GetAllStores 接口提供了 exclude_tombstone_stores 选项,将 Tombstone store 从返回结果中去除 #1444

TiKV

  • 修复了某些情况下 Importer 导入失败的问题 #4223
  • 修复了某些情况下 “key not in region” 错误 #4125
  • 修复了某些情况下 Region merge 导致 panic 的问题 #4235
  • 添加了详细的 StoreNotMatch 错误信息 #3885

Tools

  • Lightning
    • 集群中有 Tombstone store 时 Lightning 不会再报错退出 #4223
  • TiDB-Binlog
    • 修正 DDL Binlog 同步方案,确保 DDL 同步的正确性 #9304