特定版本执行SQL报错

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

【TiDB 版本】5.7.25-TiDB-v4.0.11

【问题描述】
升级v5.7.25-TiDB-v4.0.11版本后出现此问题,原v4.0.0版本没问题。

执行语句报错

interface conversion: interface {} is nil, not *types.MyDecimal

测试脚本

CREATE TABLE test.tb_test (
c_id int NULL
);

insert into tb_test(c_id)value(1);

set @row_number:= 0;
select
@row_number:= @row_number+1.00000 as count_of_group
from tb_test


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 个赞

好的,我们这边先分析下,不过用户自定义变量这个功能目前还不成熟,不建议在生产环境使用。

set @row_number:= 0;

改成

set @row_number:= 0.00000;

这样就不报错了。很奇怪,在之前的版本里没这个问题。

稍等,目前已经在分析了,有结论了会反馈的哈~

这个问题初步判断是这个 issue 导致的:https://github.com/pingcap/tidb/pull/18973
修复还需要一定的时间,可以暂时使用你上面的那种方式绕过下这个问题。

好的,感谢

这个问题会在这个 PR 中进行修复:https://github.com/pingcap/tidb/pull/24050 请知晓。

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。