问题描述:
查询一个 Doris 内部表(Internal Catalog)上的视图时,报错:
select * from ads_v5_gwjg.T_EHR_DWEB_1ZHI8YUE limit 100
1105 - errCode = 2, detailMessage = Index 92 out of bounds for length 92
关键特征:
- 该视图在 Doris 3.0 版本时查询完全正常,升级到 4.0.6 后出现此报错
- 视图底层的基表查询正常(SELECT * FROM base_table LIMIT 1 无异常)
- 基表近期 无未完成的 Schema Change(SHOW ALTER TABLE COLUMN 为空)
已尝试的排查手段(均无效):
- DROP VIEW + CREATE VIEW 重建(包括显式指定列名列表、不指定列名列表两种方式)
- 更换视图名称后重新创建
- REFRESH TABLE(提示 Only support refresh ExternalCatalog Tables,因基表为内部表故不支持)
- ADMIN CLEAN TRASH 后重建
关联信息:
查询到 https://github.com/apache/doris/issues/64006 描述了类似现象(LogicalView.computeOutput() 在基表 schema 变更后 fullSchema 和 childOutput 长度不一致导致数组越界),但本场景基表无未完成 ALTER,且重建视图也无法恢复。