tidb插入超长json 被截断了且没有报错

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】
【操作系统】
【部署方式】云上部署(什么云)/机器部署(什么机器配置、什么硬盘)
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】


复现场景
表结构:
CREATE TABLE test11 (
testc json DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

json 数据如文件内容
testaaaa (385.0 KB)

手动通过命令行进行update没有问题,可以正常,但是基于go语言使用gorm写入json列时截断,被转成了base64,但是在mysql中又能正常插入没有问题

如下 同样用go语言使用gorm写入json列
mysql能正常显示

tidb不能

提供一个复现步骤,一起研究一下哈。

1 个赞

:rofl: 公司内部好像有人在看了,说用 go gorm 写是能正常写进去的。。。。没复现出来你这个问题。。。。

是的,业务研发同学已经在自己环境里面再试一下。

业务插入是 开启general 日志 从日志记录来看 是正常json

但是业务查询 还是显示为base64格式的

  1. go版本 1.21
    Gorm v1.2.1
    Gorm v1.22.4
    model定义 string gorm:"type:JSON;"

写入操作:jsondumps → string
tidb general log完整的。理论上应该是和应用无关了,或者是connector引起?

  1. tidb版本 7.1.5

https://github.com/pingcap/tidb/issues/52711 感觉是这个问题

1 个赞