0

假设我运行一个函数:select somefunction()我想知道它目前正在执行什么语句

select * from t没有帮助,因为它显示了“select somefunction()”行而不是确切的语句。

有什么办法可以查看是怎么回事吗?

谢谢,h

4

2 回答 2

1

您可能想要使用PL/PgSQL 调试器- 它应该预装在大多数 PostgreSQL 安装中,并在postgresql.conf.

或者,考虑RAISE NOTICE在您希望了解的重要点在您的代码中添加语句。

据我所知,没有工具可以获取活动 SQL 语句的“堆栈跟踪”,包括(可能是嵌套的)函数调用。这会很好,但是AFAIK没有人实现过这样的功能。

于 2012-09-10T07:15:09.400 回答
0

这可以帮助你。

CREATE FUNCTION somefunction() 返回 table(query text) as $$ select current_query::text from pg_stat_activity where current_query not like '% somefunction();' $$语言sql;

于 2012-09-11T06:11:07.840 回答