【标题】(请简要描述下实现的内容)
修复打开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不会记录相关的错误信息
【开发自验报告】:

  1. 请附上自验结果(内容或者截图)
    输入图片说明
  2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
    已添加
  3. 是否涉及资料修改,如是,在docs仓库补充资料
    https://gitee.com/opengauss/docs/pulls/5092
  4. 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
  5. 是否考虑在线扩容等扩展场景
  6. 是否考虑异常场景/并发场景/前向兼容/性能场景
  7. 是否对其他模块产生影响

【其他说明】: