TiDB 3.0.3 Release Notes

发版日期:2019 年 8 月 29 日

TiDB 版本:3.0.3

TiDB Ansible 版本:3.0.3

TiDB

  • SQL 优化器

    • 添加 opt_rule_blacklist 表,用于禁用一些逻辑优化规则,比如 aggregation_eliminatecolumn_prune#11658
    • 修复 Index join 的 join key 中使用前缀索引或者使用 unsigned 的索引列等于负数时结果不正确的问题 #11759
    • 修复 create … binding ... 的 Select 语句中带有 或者 \ 时解析报错的问题 #11726
  • SQL 执行引擎

    • 修复 Quote 函数处理 null 值的返回值类型出错的问题 #11619
    • 修复 Max 和 Min 在推导类型时没有去除 NotNullFlag 导致 ifnull 结果错误的问题 #11641
    • 修复对字符形式的 Bit 类型数据比较出错的问题 #11660
    • 减少需要顺序读取数据的并发度,以降低 OOM 出现概率 #11679
    • 修复对应含有多个参数的内置函数(如 ifcoalesce 等),在多个参数都为 unsigned 时类型推导不正确的问题 #11621
    • 修复 Div 函数处理 unsigned 的 decimal 类型时与 MySQL 行为不兼容的问题 #11813
    • 修复执行修改 Pump/Drainer 状态的 SQL 时会报 panic 的问题 #11827
    • 修复在 Autocommit = 1 且没有 begin 的时,select ... for update 出现 panic 的问题 #11736
    • 修复执行 set default role 语句时权限检查出错的问题 #11777
    • 修复执行 create userdrop user 语句出现权限检查错误的问题 #11814
    • 修复 select ... for update 在构建为 PointGetExecutor 时会重试的问题 #11718
    • 修复 Window function 处理 Partition 时边界出错的问题 #11825
    • 修复 time 函数在处理错误格式参数时直接断链接的问题 #11893
    • 修复 Window function 没有检查传入参数的问题 #11705
    • 修复 Explain 查看的 Plan 结果跟真实执行的 Plan 结果不一致的问题 #11186
    • 修复 Window function 内存重复引用导致崩溃或结果不正确的问题 #11823
    • 修复 Slow log 里面 Succ 字段信息错误的问题 #11887
  • Server

    • 重命名 tidb_back_off_weight 变量为 tidb_backoff_weight #11665
    • 更新与当前 TiDB 兼容的最低版本的 TiKV 为 v3.0.0 的信息 #11618
    • 支持 make testSuite 来确保测试中的 Suite 都被正确使用 #11685
  • DDL

    • 禁止不支持的 Partition 相关的 DDL 的执行,其中包括修改 Partition 类型,同时删除多个 Partition 等 #11373
    • 禁止 Generated Column 的位置在它依赖的列前 #11686
    • 修改添加索引操作中使用的 tidb_ddl_reorg_worker_cnttidb_ddl_reorg_batch_size 变量的默认值 #11874
  • Monitor

    • Backoff 监控添加类型,且补充之前没有统计到的 Backoff,比如 commit 时遇到的 Backoff #11728

TiKV

  • 修复 ReadIndex 请求可能由于重复 Context 而无法响应请求的问题 #5256
  • 修复 PutStore 过早而引起一些调度造成抖动的问题 #5277
  • 修复 Region Heartbeat 上报的时间戳不准的问题 #5296
  • 剔除 share block cache 信息减少 coredump 文件大小 #5322
  • 修复 Region merge 中会引起 TiKV panic 的问题 #5291
  • 加快死锁检测器器的 leader 变更检查 #5317
  • 使用 grpc env 创建 deadlock 的客户端 #5346
  • 添加 config-check 检查配置是否正确 #5349
  • 修复 ReadIndex 请求在没有 leader 情况下不返回的问题 #5351

PD

  • pdctl 返回成功信息 #1685

Tools

  • TiDB Binlog
    • 将 Drainer defaultBinlogItemCount 默认值从 65536 改为 512,减少 Drainer 启动时 OOM 的情况 #721
    • 优化 Pump server 下线处理逻辑,避免出现 Pump 下线阻塞的问题 #701
  • TiDB Lightning
    • 导入时默认过滤系统库 mysqlinformation_schemaperformance_schemasys #225

TiDB Ansible

  • 优化滚动升级 PD 的操作,提高稳定性 #894
  • 移除当前 Grafana 版本不支持的 Grafana Collector 组件 #892
  • 更新 TiKV 告警规则 #898
  • 修复生成的 TiKV 配置遗漏 pessimistic-txn 参数的问题 #911
  • 更新 Spark 版本为 2.4.3,同时更新 TiSpark 为兼容该 Spark 的 2.1.4 版本 #913 #918