TiDB 2.1.16 Release Notes

    • SQL 优化器
      • 修复时间列上的等值条件 Row Count 估算不准确的问题
      • 修复 Hint 不生效或者对非指定的表生效的问题 #11361
      • 将查询中的 NOT EXISTS 由 OUTER JOIN 实现方式改为 ANTI JOIN ,便于找到更优执行计划
      • 支持在 SHOW 语句中使用子查询,现在可以支持诸如 SHOW COLUMNS FROM tbl WHERE FIELDS IN (SELECT 'a') 的写法 #11461
      • 修复常量折叠优化导致 SELECT … CASE WHEN … ELSE NULL ... 查询结果不正确的问题
    • SQL 执行引擎
      • 修复函数 DATE_ADD 在 INTERVAL 为负的情况下结果错误的问题 #11616
      • 修复 DATE_ADD 函数接受 FLOATDOUBLE 和 类型的参数时,没有正确地进行类型转换而导致结果可能不正确的问题
      • 修复 CAST(JSON AS SIGNED) 出现 OVERFLOW 时错误信息不准确的问题 #11562
      • 支持 SPLIT TABLE 语句返回切分成功的 REGION 数量,并且当部分 REGION SCATTER 在超时未完成调度时,不再返回错误,而是返回完成调度的比例
      • 修复 REGEXP BINARY 函数对大小写敏感,与 MySQL 不兼容的问题 #11505
      • 修复 DATE_ADD / DATE_SUB 结果中 YEAR 小于 0 或 大于 65535 时溢出导致结果没有正确返回 NULL 值的问题
      • 慢查询表中添加用于表示是否执行成功的 Succ 字段 #11412
      • 修复一条 SQL 语句在涉及当前时间计算时(例如 CURRENT_TIMESTAMP 或者 NOW),多次取当前时间值,结果与 MySQL不兼容的问题:现在同一条SQL语句中取当前时间时,均使用相同值
      • 修复 AUTO INCREMENT 列未处理 FLOAT / DOUBLE 的问题 #11389
      • 修复 CONVERT_TZ 函数在参数不合法时,没有正确返回 NULL 的问题
      • 修复 PARTITION BY LIST 报错的问题(仅添加语法支持,TiDB 执行时候会作为普通表创建并提供提示信息) #11236
      • 修复 Mod(%)、 和 Minus(-) 返回结果为 0 时,在小数位数较多(例如 select 0.000 % 0.11234500000000000000)的情况下与 MySQL 位数不一致的问题
    • Server
      • 修复插件在 OnInit 回调中获取 Domain 为 NULL 的问题 #11426
      • 修复当 Schema 删除后,依然可以通过 HTTP 接口获取该 Schema 中表信息的问题
    • DDL
      • 禁止 DROP 自增列索引,修复因为 DROP 自增列上的索引导致自增列结果可能出错的问题 #11402
      • 修复并行执行 “alter table … set default…” 和其他修改此列信息的 DDL,可能导致此列的结构出错的问题
      • 修复当 Generated column A 依赖 Generated column B 时,使用 A 创建索引,数据回填失败的问题 #11538
      • 提升 ADMIN CHECK TABLE 的速度
    • 访问正在关闭的 TiKV Region 时返回 Close 错误 #4820
    • 支持逆向 raw_scan 和逆向 raw_batch_scan 接口
    • TiDB Binlog
      • Drainer 增加 ignore-txn-commit-ts 配置项,用于跳过执行某些事务语句 #697
      • 增加启动时配置项检查功能,遇到不合法配置项会退出运行并给出错误信息
      • Drainer 增加 node-id 配置,用于指定固定逻辑 Drainer #706
    • TiDB Lightning
      • 修复 2 个 checksum 同时运行的情况下, 没有正常修改回原本值的问题
    • Spark 新增 log4j 日志配置 #842
    • 更新 tispark jar 包为 v2.1.2 版本
    • 修复了 TiDB Binlog 使用 Kafka 或者 ZooKeeper 时导致生成的 Prometheus 配置文件格式错误的问题 #845
    • 优化滚动升级 PD 节点的逻辑,先升级 Follower 再升级 Leader,提高稳定性