查找Postgres过程的用法

问题描述 投票:1回答:1

我想改变一个Postgres程序,但在这之前我想确保它不会破坏任何东西。

要做到这一点,我需要找到它的用法。

postgresql
1个回答
1
投票

如果你将track_functions设置为plall,你可以使用视图pg_stat_user_functions来查看调用函数的频率。

但那可能不是你想要的;我假设您想知道调用函数的其他函数。这要困难得多,因为PostgreSQL不跟踪函数与其代码中使用的对象之间的依赖关系。您可以做的最好是执行字符串搜索:

SELECT oid::regprocedure
FROM pg_catalog.pg_proc
WHERE prosrc ILIKE '%your_function_name%';

这当然会产生误报,特别是如果您搜索的函数名是代码中常用的字符串。

也可能存在漏报,请考虑这段PL / pgSQL代码:

EXECUTE 'SELECT your_func' || 'tion_name()';

但是,如果您知道自己的代码库,则可能会排除此类情况。

一个完全不同的问题是在您的应用程序代码中使用该函数的问题。但由于你只是将问题标记为,我认为这超出了范围。

© www.soinside.com 2019 - 2024. All rights reserved.