我想改变一个Postgres程序,但在这之前我想确保它不会破坏任何东西。
要做到这一点,我需要找到它的用法。
如果你将track_functions
设置为pl
或all
,你可以使用视图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()';
但是,如果您知道自己的代码库,则可能会排除此类情况。
一个完全不同的问题是在您的应用程序代码中使用该函数的问题。但由于你只是将问题标记为postgresql,我认为这超出了范围。