问题现象
反拼 SQL 报错语法错误;join 算子和右支节点的 join 算子的识别 pattern 不完善导致该错误,例如如下计划的 sort 算子的出现导致反拼模块没有识别出嵌套 join。
join
/ \
tsc sort
\
join
问题原因
当 SQL 产生的计划里 link scan 下面的逻辑计划带有下图中的 pattern 就会导致反拼出错误的 SQL(该 pattern 是:join 和 join 之间有其他算子间隔,比如下图是 sort 算子,这导致嵌套 join 计划反拼出不符合语法的 SQL)。

问题的风险及影响
遇到类似计划,反拼会出错,导致 SQL 执行报语法错误。
影响租户
影响 OceanBase 数据库中的 Oracle 租户和 MySQL 租户,对于 SYS 租户无影响。
影响的版本
OceanBase 数据库企业版 V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本、V3.2.4 GA(oceanbase-3.2.4.0-100000072022102819)及之后版本。
解决方法及规避方式
解决方法:
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V3.2.3 BP7 Hotfix1(oceanbase-3.2.3.3-107010022023021010)及之后版本、V3.2.3 BP7 Hotfix2(oceanbase-3.2.3.3-107020062023022810)及之后版本、V3.2.3 BP7 Hotfix3(oceanbase-3.2.3.3-107030052023031712)及之后版本、V3.2.3 BP7 Hotfix4(oceanbase-3.2.3.3-107040032023032910)及之后版本、V3.2.3 BP7 Hotfix5(oceanbase-3.2.3.3-107050022023040817)及之后版本、V3.2.3 BP7 Hotfix6(oceanbase-3.2.3.3-107060012023041113)及之后版本、V3.2.3 BP8(oceanbase-3.2.3.3-108000062023041511)及之后版本、V3.2.4 BP2(oceanbase-3.2.4.2-102000042023022717)及之后版本。
规避方式:
无法规避。