关于创建outline的问题咨询

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版 4.3.5
【问题描述】创建语句的时候 使用了 or replace ,但对于已存在的outline仍旧会执行报错


麻烦老师看一下

根据下面的步骤 提供一下日志
a.登录系统租户,打开enable_rich_error_msg 参数

alter system set enable_rich_error_msg=true;

b.登录业务租户,执行报错 SQL 语句,会直接返回执行节点 IP 和 trace_id 信息。

obclient [test]> select count(*) from t2;

ERROR 1146 (42S02): Table ‘test.t2’ doesn’t exist

[xx.xx.xx.1:2882] [2024-04-13 20:10:20.292087] [YB420BA1CC68-000615A0A8EA5E38-0-0]

c.去 xx.xx.xx.1 节点过滤日志,如果最新日志无法过滤到,可以正则匹配多个日志进行过滤

[root@x.x.x.1 ~]$ grep “YB420BA1CC68-000615A0A8EA5E38-0-0” rootservice.log

[root@x.x.x.1 ~]$ grep “YB420BA1CC68-000615A0A8EA5E38-0-0” observer.log

d.获取完日志信息后,关闭enable_rich_error_msg参数

alter system set enable_rich_error_msg=false;


使用435bp1这边未复现成功

不过这边发现你的sql存在不一致问题,一存在的outlin中的sql语句 *号前面少空格。

看着你写的语句的文本 不一样 一个多了空格 一个没有空格


or replace的前提是outline name和sql text是相同的 应该是符合预期的

果然是这样的 老师 少打了一个空格
那按理来说 不应该是通过outline_name 来进行校验吗 不管SQL的内容是什么

不是 or replace的前提是outline name和sql text都相同的

好的谢谢