说我运行一个函数:select somefunction()
我想知道它目前正在执行什么声明
select * from t
没有帮助,因为它显示了'select somefunction()'行而不是确切的声明。
有没有办法看看是什么?
谢谢, ħ
答案 0 :(得分:1)
您可能希望使用PL/PgSQL debugger - 这应该在大多数PostgreSQL安装中预先安装,并在postgresql.conf
中激活后通过PgAdmin-III使用。
或者,请考虑在您希望了解的重要位置在代码中添加RAISE NOTICE
语句。
我知道没有任何工具可以获得包含(可能是嵌套的)函数调用的活动SQL语句的“堆栈跟踪”。这很好,但是AFAIK没有人实现这样的功能。
答案 1 :(得分:0)
这可以帮到你。
CREATE FUNCTION somefunction()将表(查询文本)作为$$ select返回 current_query ::来自pg_stat_activity的文本,其中current_query不喜欢 '%somefunction();' $$ language sql;