SQL查询报错index out of range [0] with length 0

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.0
【遇到的问题:问题现象及影响】
在执行查询语句的时候报错index out of range [0] with length 0
sql:
select * from table limit 10;
请问一下为什么会有这个报错

有具体sql吗
类似报错以前也有,一些bug
执行select,提示runtime error: index out of range [0] with length 0 - :ringer_planet: TiDB 技术问题 - TiDB 的问答社区 (asktug.com)

有可能是已知bug,, :rofl:

“index out of range [0] with length 0” 错误通常表示在进行索引或切片操作时,尝试访问一个空的数组或切片的元素,而实际上它没有任何元素。这通常是由于编程错误引起的,可能与查询语句的执行结果或代码中的数据处理有关。

在的情况下,执行了一个简单的 select * from table limit 10; 查询,但遇到了这个错误。这可能是以下几种原因之一:

数据表为空: 如果 “table” 表是空的,那么这个查询将返回一个空的结果集,因为没有任何数据可供返回。在对一个空表执行 limit 查询时,可能会触发此错误。

表或数据库不存在: 如果 “table” 表或相关的数据库不存在,那么执行查询时也会引发此错误。

查询执行问题: 如果数据库系统本身存在问题,可能导致查询无法正常执行,从而返回空结果集。

为了解决此问题,可以采取以下步骤:

确保 “table” 表存在,并且其中包含数据。可以使用数据库客户端执行 SELECT COUNT(*) FROM table; 来检查表中是否有数据。

确保的查询语句没有拼写错误,并且正确指定了表名和数据库名。

检查的 TiDB 集群是否正常运行,并且没有出现任何异常或错误。可以查看 TiDB 的日志以获取更多信息。

如果 “table” 表为空,可以尝试查询其他表,以确保查询是否正常工作。如果其他表可以正常工作,那么问题可能是与 “table” 表本身相关的。

换个表名字去查询还会报错吗?

或者在这个SQL的表名字加上反引号 ` 试试看

报错的表有数据吗

是分区表吗?应该是bug
query partition table with limit report runtime error: index out of range [0] with length 0 · Issue #45804 · pingcap/tidb (github.com)

1 个赞

SQL的话就是这样的limit 10,,应该是bug

嗯 看到相关issues了

有数据的

应该是BUG了

看issues应该涉及v6.5 与 v7.1
https://github.com/pingcap/tidb/issues/45804

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