如何知道所有UDF都在使用表(table_1)?
以下查询为我提供了表格的详细信息:
SELECT * FROM information_schema.tables;
以下查询提供了UDF详细信息:
select * FROM pg_proc;
但是我怎么知道table1用于所有UDF?
答案 0 :(得分:1)
如果要查找函数和表之间的依赖关系,则在prosrc
的{{1}}列中进行字符串搜索是唯一的方法。
当然,这不是很令人满意,因为很难说pg_proc
的出现是否是对表或变量名的引用。另外,您在目录中找不到C函数的来源。
要获得可靠的答案,您需要深入了解编写函数的语言,这是问题的核心:PostgreSQL对语言没有任何了解! PostgreSQL寓言的可扩展性允许您为函数定义新的语言,只有语言处理程序知道如何解释作为函数体的字符串。这也适用于PostgreSQL附带的PL / pgSQL。
这也是为什么函数中使用的对象没有table_1
条目的原因。