我想更改Postgres过程,但是在执行此操作之前,我想确保它不会破坏任何东西。
为此,我需要找到它的用法。
答案 0 :(得分:1)
如果将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()';
但是,如果您知道自己的代码库,则可以排除这种情况。
一个完全不同的问题是在您的 application 代码中使用该函数的问题。但是由于您仅将问题标记为postgresql,所以我认为这不在本文范围之内。