5.0.1查询报这个错误 4.x运行ok [HY000][1105] runtime error: index out of range [-1]

Bug 反馈
5.0.1查询报这个错误 4.x运行ok [HY000][1105] runtime error: index out of range [-1]
【 Bug 的影响】
大量报错

【可能的问题复现步骤】
附带的表结构附件
测试库表结构.txt (8.0 KB)

【看到的非预期行为】

【期望看到的行为】
4.x是正常的执行语句

执行结果.txt (1.8 KB)

【相关组件及具体版本】
TIDB5.0.1

【其他背景信息或者截图】
如集群拓扑,系统和内核版本,应用 app 信息等;如果问题跟 SQL 有关,请提供 SQL 语句和相关表的 Schema 信息;如果节点日志存在关键报错,请提供相关节点的日志内容或文件;如果一些业务敏感信息不便提供,请留下联系方式,我们与您私下沟通。

麻烦提供下报错时 tidb.log 的日志信息。

C表的两个列没有放到group by中

可以先尝试将 sql_mode 中的 ONLY_FULL_GROUP_BY 去掉

tidb_192_168_100_94_4000.log (5.8 KB)

这个语句我测试了,原来是 4.0.10 ,是运行OK的
然后我测试了一下, 4.0.13 也会报错, 5.0.1 也是报错

很简单啊.新建一个测试数据库,把建表语句放进去,
不需要插入数据的,直接会报错
4.0.10 不会报错 因为集群一直都是 4.0.10 运行比较长时间没出过问题
昨天给他升级到 5.0.1 结果一大堆的报错,

group by 后面加上c表的那两列,也报错?

是的,这类语句是在4.0可用,从4.0.12开始就不可用了

从现象中看应该是和这个 bug 类似:https://github.com/pingcap/tidb/issues/23839 ,修复的 PR : https://github.com/pingcap/tidb/pull/23844,可以在新版本发布后升级下,临时解决方法可以尝试将 sql_mode 中的 ONLY_FULL_GROUP_BY 去掉

谢谢各位的支持,解决方案确实如两位所述
1.修改sql,增加groupby缺失的列, 开发这边所有的出问题的sql都做了补全
2.sql_mode 中的 ONLY_FULL_GROUP_BY 去掉(治标)