tidb新排序规则下插入数据和查询数据发现了一个bug,希望能修复下,谢谢

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】tidb v4.0.9

【问题描述】

我们tidb集群安装部署为了不区分大小写,使用了新的字符集排序规则,new_collations_enabled_on_first_bootstrap: true

但在插入或查询其他国家的特殊字符时有错误,希望能帮忙解决下

以下是建表语句和插入语句,最后两条SQL语句提示有重复数据,查询也是有问题的,会出现张冠李戴的问题

测试sql语句.sql (1.3 KB)

  1. 不知道是不是您贴到文档中会转义字符,我测试插入的时候报错。
  2. 根据描述会导致insert报重复,麻烦查一下 3639094 再您库里展示出来是什么结果?
  3. 查询出错只什么?

查询出错指的不是我想要的数据,

image

查出来的是另外一条数据
https://www.tiktok.com/@𝔸𝕖𝕤𝕥𝕙𝕖𝕥𝕚𝕔𝕤𝟞𝟜

这个缺陷表现,tidb集群需要使用新的字符集排序规则,new_collations_enabled_on_first_bootstrap: true

  1. 我新建的集群new_collations设置为true了。
  2. 这个问题有在不设置new_collations为true测试过吗? 是否正常?
  3. mysql 是否正常?
  4. 我的意思是从您的系统中插入数据库可能没问题,但是您贴到文本中之后,再复制可能就有问题了,文本可能也会自动转换

3639094查询的结果,如下图所示
image

  1. 这个问题有在不设置new_collations为true测试过吗? 是否正常?
    不设置new_collations之前正常的,之前碰到一个问题,模糊查询的时候我们不希望区分大小写,所以开启了这个参数

2,mysql正常的,我们最早数据库就是用的mysql的

上传的是sql语句,我刚又把帖子里面的附近下载到我们服务器测试了下,前面两条sql是不报错的,后面两条sql插入报重复错误

我们本地试了下,结果与 MySQL 相同,由于这些字符是在对称多平面中,general_ci 会认为他们都一样。麻烦再确认之前 mysql 的设置。
以下是 MySQL 8.0.22 的结果:

抱歉,我刚在mysql8.0.14版本中测试了下,插入数据的确报错,这是general_ci排序规则的缺陷吗?

mysql数据库,排序规则改用utf8mb4_0900_ai_ci,就不存在这个问题,而且可以不区分大小写来查询,我们的tidb是否也能支持下这种排序规则呢?

抱歉,TiDB 目前还不支持,以后会提供更完善的排序规则。

好吧,非常感谢

:+1: