Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 TiDB 版本】 6.1.7
【 Bug 的影响】
唯一键报重复值问题,导致数据写入失败
【可能的问题复现步骤】
1、6.1.7版本新集群初始化的时候指定了【new_collations_enabled_on_first_bootstrap: true】
2、创建测试表指定【COLLATE=utf8mb4_general_ci】
mysql> show create table t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`name` char(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1 row in set (0.00 sec)
3、写入测试数据报唯一键冲突,但是实际上两个值是非冲突数据
mysql> insert into t1 values(1,'a'),(2,'a ');
ERROR 1062 (23000): Duplicate entry 'a' for key 'uk_name'
mysql>
【看到的非预期行为】
看现象是字符串末尾的单个或多个空格会被删除,'a ‘最终写进去都是’a’
【期望看到的行为】
对于唯一索引约束的字段,‘a’ 'a '两个值能正常写入
【相关组件及具体版本】
【其他背景信息或者截图】
如集群拓扑,系统和内核版本,应用 app 信息等;如果问题跟 SQL 有关,请提供 SQL 语句和相关表的 Schema 信息;如果节点日志存在关键报错,请提供相关节点的日志内容或文件;如果一些业务敏感信息不便提供,请留下联系方式,我们与您私下沟通。