一条 SQL 查询报错:ERROR 1105 (HY000): runtime error: index out of range [2] with length 2

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
linux

【概述】 场景 + 问题概述
一条sql查询在4.0.0是正常的,在4.0.14出现报错
查询客户端报错:ERROR 1105 (HY000): runtime error: index out of range [2] with length 2
日志显示:panic in the recoverable goroutine
同样的sql在4.0.0没有出现报错,4.0.14报错,二者的explain不一致,explain analyze在4.0.14会报错
详细报错信息如下


【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】
4.0.14
【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

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

错误日志:

最好提供一下具体的 SQL TEXT,另外,能使用 hint 的方式,换一下关联方式吗(最好执行计划也发一下)

好的,我干完活给你回复

抱歉这么晚回复,因为需要对字段及表脱敏,不知道您这还能否看出问题来,如果看不出来的话我再想办法看看能否复现吧,主要想知道排查思路


如果不方便给完整的sql和表结构,可以尝试一个最小复现的步骤,多谢。

会不会是date函数的原因?
group by怎么是5个?不应该是3个么?有2个常量

- 如果你的问题已解决:
  - 如果你自己排查解决了,请附上你的解决方案,对自己的方案标记【对我有用】。
  - 如果别人帮助你解决了问题,那么请选择【最有价值】的回复,标记为【对我有用】,对帮助你的人,也是一种嘉奖和赞赏。
- 被标记了【对我有用】的问题,才能被搜索到,这样子也能帮助他人更高效地找到答案。标记了【对我有用】还能获得 5 积分,5 经验值。
- 如果你的问题还没有解决,请继续追问及反馈你遇到的问题。