TiDB 是 PingCAP 自主研发的开源分布式关系型数据库,具备商业级数据库的数据可靠性,可用性,安全性等特性,支持在线弹性水平扩展,兼容 MySQL 协议及生态,创新性实现 OLTP 及 OLAP 融合。3.0.3 已经发布,如下:
SQL Optimizer
- 添加 opt_rule_blacklist 表以禁用逻辑优化规则,例如 aggregation_eliminate 和 column_prune
- 修复了当联接键使用前缀索引或等于负值的无符号索引列时,Index Join 可能返回不正确结果的问题
- 修复了 create...binding... 中的 select 语句的 “ 或 ,可能会导致解析错误
SQL Execution Engine
- 修复了在 Quote 函数处理空值时可能发生返回值类型错误的问题
- 修复了使用 MAX/Min 进行类型推断时可能会返回不正确的 ifnull 结果的问题,并保留了 NotNullFlag
- 修复在比较字符串格式的位类型数据时发生的潜在错误
- 减少需要顺序读取的数据的并发性,以降低 OOM 的可能性
- 修复了当某些内置函数的多个参数未签名时可能导致错误类型推断的问题(例如 if,coalesce)
- 修复 div 函数处理无符号十进制类型时与 mysql 的不兼容
- 修复了在执行 SQL 语句时可能出现的问题,这些语句修改了 Pump/DrAIner 的状态
- 修复当 Autocommit=1 且没有 begin 语句时,select ... for update 可能会出现的问题
- 修复在执行 set default role 语句时可能发生的权限检查错误
- 修复在执行 create user 或 drop user 时可能发生的权限检查错误
- 修复 select ... for update 语句可能会自动重试的问题(当它被构造到 PointGetExecutor 函数中时)
- 修复当窗口函数处理分区时可能发生的边界错误
- 修复了 time 函数在处理格式不正确的参数时碰到 EOF 错误的问题
- 修复了窗口函数不检查传入参数的问题
- 修复了窗口函数引用的重复内存可能导致崩溃或不正确结果的问题
- 更新慢速日志中 Succ 字段中的错误信息
Server
- 将 tidb_back_off_wexight 重命名为 tidb_backoff_weight
- 将与当前 TiDB 兼容的最小 TiKV 版本更新为 v3.0.0
- 支持 make testSuite 确保测试中的套件正确使用
DDL
- 跳过不受支持的与分区相关的 DDL 语句的执行,包括在删除多个分区的同时修改分区类型的语句
- 不允许将生成的列置于其依赖列之前
- 修改 tidb_ddl_reorg_worker_cnt 和 tidb_ddl_reorg_batch_size 的默认值
Monitor
- 添加新的退避监视类型,以记录每种退避类型的持续时间;添加更多的退避指标,以涵盖以前未计算的类型,如提交退避
详情请见更改日志: