TiDB 2.1.5 Release Notes

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

    • 优化器/执行器
      • 当列的字符集信息和表的字符集信息相同时, 不再打印列的字符集信息,使其结果更加兼容 MySQL
      • Sort 算子中的表达计算抽取出来用一个 Project 算子完成,简化 Sort 算子的计算逻辑,修复某些情况下 Sort 算子结果不正确或者 panic 的问题 #9319
      • 移除 Sort 算子中的数值为常量的排序字段 ,#9440
      • 修复向无符号整数列插入数据时数据溢出的问题
      • 目标 binary 的长度超过 max_allowed_packet 时,将 cast_as_binary 设置为 NULL #9349
      • 优化 和 IFNULL 的常量折叠过程
      • 使用 skyline pruning 优化 TiDB 的索引选择,增加简单查询的稳定性 #9356
      • 修复 !=ANY()=ALL() 在某些情况下 SQL 查询结果不正确的问题
      • 修复执行 Merge Join 操作的两个表的 Join Key 类型不同时结果可能不正确或者 panic 的问题 #9438
      • 修复某些情况下 RAND() 函数结果和 MySQL 不兼容的问题
      • 重构 Semi Join 对 NULL 值和空结果集的处理逻辑,使其返回正确的结果,更加兼容 MySQL #9449
    • Server
      • 增加系统变量 tidb_constraint_check_in_place,在 INSERT 语句执行时即检查数据的唯一性约束
      • 修复系统变量 tidb_force_priority 的值和配置文件中的设置的值不一致的问题 #9347
      • 在 general log 中增加 “current_db” 字段打印当前使用的数据库
      • 增加通过表 ID 来获取表信息的 HTTP API #9408
      • 修复 在某些情况下导入数据不正确的问题
      • 修复某些情况下,客户端建立连接慢的问题 #9451
    • DDL
      • 修复撤销 DROP/ADD 分区表操作中的一些问题
      • 修复某些情况下 ADMIN CHECK TABLE 误报数据索引不一致的问题 #9399
      • 修复 TIMESTAMP 类型的默认值在时区上的一些问题
    • GetAllStores 接口提供了 exclude_tombstone_stores 选项,将 Tombstone store 从返回结果中去除 #1444
    • 修复了某些情况下 Importer 导入失败的问题
    • 修复了某些情况下 “key not in region” 错误 #4125
    • 修复了某些情况下 Region merge 导致 panic 的问题
    • 添加了详细的 StoreNotMatch 错误信息 #3885
    • Lightning
      • 集群中有 Tombstone store 时 Lightning 不会再报错退出
    • TiDB Binlog
      • 修正 DDL Binlog 同步方案,确保 DDL 同步的正确性 #9304