问题现象
OceanBase 数据库 V4.x 集群在执行 CONNECT BY + ORDER SIBLINGS BY 递归查询语句时出现 -4016:internal error code, arguments: -4016, Internal error。
伴随出现如下日志信息。
[2025-03-25 15:58:03.001023] WDIAG [SQL.ENG] generate_pump_exprs (ob_static_engine_cg.cpp:4641) [7493][T1002_L0_G0][T1002][xxxxx-xxxxx-xxxxx-xxxxx] [lt=4][errcode=-4016] unexpected status: left and right output size not same(ret=-4016)
[2025-03-25 15:58:03.001041] WDIAG [SQL.ENG] generate_spec (ob_static_engine_cg.cpp:4857) [7493][T1002_L0_G0][T1002][xxxxx-xxxxx-xxxxx-xxxxx] [lt=17][errcode=-4016] failed to generate pump exprs(ret=-4016)
其中关键日志信息如下。
[2025-03-25 15:58:03.001023] WDIAG [SQL.ENG] generate_pump_exprs (ob_static_engine_cg.cpp:4641) [7493][T1002_L0_G0][T1002][xxxxx-xxxxx-xxxxx-xxxxx] [lt=4][errcode=-4016] unexpected status: left and right output size not same(ret=-4016)
问题原因
该问题是 OceanBase 产品缺陷,该缺陷产生自产品内部对 SQL 语句的表达式生成出现非预期问题导致。
问题的风险及影响
SQL 无法执行。
适用版本
OceanBase 数据库 V4.x 版本。
解决方法
将 ORDER SIBLINGS BY 改成 ORDER BY。
找到异常的表达式,尝试进行 SQL 改写来解决。
规避方式
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V4.3.5 BP2(oceanbase-4.3.5.2-102000162025051417)版本。