代码拉取完成,页面将自动刷新
3367
修复打开plsql_show_all_error后未记录gs_error表的问题
已合并
【标题】(请简要描述下实现的内容)
修复打开plsql_show_all_error后未记录gs_error表的问题
【实现内容】:
修复打开plsql_show_all_error后未记录gs_error表的问题
【根因分析】:
正常报错的逻辑是,编译过程中遇到的error,降级为notice,并将u_sess->plsql_cxt.have_error置为true,在解析完成后抛出,并由上层plpgsql_compile通过try catch记录到gs_error中,代码如下:
而当前通过yyerror抛出错误并未将u_sess->plsql_cxt.have_error置为true,因此后续没有抛error,记录到gs_error,甚至该函数还创建成功了。
【实现方案】:
yyerror中设置u_sess->plsql_cxt.have_error为true。
【关联需求或issue】:
#I6RUMQ:打开参数plsql_show_all_error后,DBE_PLDEVELOPER.gs_errors和DBE_PLDEVELOPER.gs_source不会记录相关的错误信息
【开发自验报告】:
- 请附上自验结果(内容或者截图)
- 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
已添加 - 是否涉及资料修改,如是,在docs仓库补充资料
https://gitee.com/opengauss/docs/pulls/5092 - 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
否 - 是否考虑在线扩容等扩展场景
否 - 是否考虑异常场景/并发场景/前向兼容/性能场景
否 - 是否对其他模块产生影响
否
【其他说明】: