执行较复杂SQL报错

【 TiDB 使用环境】生产环境
【 TiDB 版本】V8.1.0
【复现路径】执行较复杂SQL
【遇到的问题:问题现象及影响】执行报错:[HY000][1105] runtime error: index out of range [1] with length 1
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
报错截图:

执行SQL1报错,执行SQL2不报错,SQL1与SQL2的区别是指定了的查询字段
SQL1

select TT.zgxwmc FROM (
SELECT t.project_id                                                           xmid,
             t.member_type                                                          cylxdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de1fc0a014de205c5d2000c'
                AND t.member_type = t2.code)                                        cylxmc,
             t.person_code                                                          xgh,
             t.person_name                                                          xm,
             t.unit_name                                                            gzdw,
             ''                                                                     zyjszwdm,
             (SELECT name FROM kyxt_dm_title_define d WHERE d.srms_id = t.title_id) zyjszwmc,
             NULL                                                                   zgxwdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c9081c74c9c5944014c9c5fcac00007'
                AND t.edu_degree_id = t2.code)                                      zgxwmc,
             t.order_id                                                             smsx,
             t.bear_type_id                                                         cdlxdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de5556e014de55d23dc0012'
                AND t.bear_type_id = t2.code)                                       cdlxmc,
             t.join_state_id                                                        cyztdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de5556e014de55e04720016'
                AND t.join_state_id = t2.code)                                      cyztmc,
             t.work_ratio                                                           gxl,
             NULL                                                                   xmfldm,
             '纵向'                                                                   xmflmc
      FROM kyxt_biz_zx_project_member t
               LEFT JOIN szzydwd_dwd_jzg_jzgjbsj t2 ON t.person_code = t2.gh) TT
where TT.zgxwmc is not null

SQL2

select TT.* FROM (
SELECT t.project_id                                                           xmid,
             t.member_type                                                          cylxdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de1fc0a014de205c5d2000c'
                AND t.member_type = t2.code)                                        cylxmc,
             t.person_code                                                          xgh,
             t.person_name                                                          xm,
             t.unit_name                                                            gzdw,
             ''                                                                     zyjszwdm,
             (SELECT name FROM kyxt_dm_title_define d WHERE d.srms_id = t.title_id) zyjszwmc,
             NULL                                                                   zgxwdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c9081c74c9c5944014c9c5fcac00007'
                AND t.edu_degree_id = t2.code)                                      zgxwmc,
             t.order_id                                                             smsx,
             t.bear_type_id                                                         cdlxdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de5556e014de55d23dc0012'
                AND t.bear_type_id = t2.code)                                       cdlxmc,
             t.join_state_id                                                        cyztdm,
             (SELECT name
              FROM kyxt_cfg_category_entry t2
              WHERE t2.categoryid = '2c90810a4de5556e014de55e04720016'
                AND t.join_state_id = t2.code)                                      cyztmc,
             t.work_ratio                                                           gxl,
             NULL                                                                   xmfldm,
             '纵向'                                                                   xmflmc
      FROM kyxt_biz_zx_project_member t
               LEFT JOIN szzydwd_dwd_jzg_jzgjbsj t2 ON t.person_code = t2.gh) TT
where TT.zgxwmc is not null

重建索引试试吧

应该是个bug

sql2查询的结果贴出来看一下,是不是写成指定字段从TT表找不到对应关系?

试了,错误依旧

你这表是从低版本,逻辑导出,然后物理导入的吗

不是很懂你的意思

SQL中涉及到的表数据是通过DATAX批量同步过来的

换其他的字段都会报错吗?

应该是 bug,我改为 bug 反馈了。

抓个 plan replayer 上传下。

表结构发一下,方便复现

sql挺简单的,出错肯定是bug

大佬们说bug就是bug

SQL plan replayer 上传下呢?

索引问题吧,有最大长度限制的。

恭喜,又发现这个bug了 :see_no_evil:

如果能提供表结构(脱敏的那种),和一些测试数据,能复现这个场景,这个bug会被很快的修复

表的信息可以看看

表结构.sql (6.8 KB)

已经在下面上传表结构。另外我执行PLAN REPLAYER DUMP EXPLAIN SQL脚本,报同样的错误,导不了。

另外,那个 panic 在日志里的堆栈信息,给一下呢?