有没有办法跟踪 Postgresql 中的函数依赖关系?

Rit*_*itu 5 postgresql dependencies

我的 PostgreSQL 数据库中有很多相互依赖的函数和存储过程。我想运行一个脚本来编译这些独立的函数,不引用任何其他函数。然后我想编译下一级函数,依此类推,直到达到顶级函数。SQL Server 有 sys.sql_expression_dependency 表来跟踪引用对象和被引用对象吗?Postgres 中有类似的东西吗?如果不是如何实现它。

Pav*_*ule 1

什么是理性?PostgreSQL PL/pgSQL 函数没有编译(更好的验证)时间依赖性。仅存在运行时依赖性。据我所知,目前还没有用于此目的的工具。但可以从 PL 分析器https://bitbucket.org/openscg/plprofiler获取一些依赖项。

  • @PeterKrauss - 我检查了 PLProfiler 的源代码 - 它收集运行时依赖项,您可以通过一些递归查询从“pl_profiler_saved_callgraph”表中处理它们的数据。我写了 plpgsql_check https://github.com/okbob/plpgsql_check 其中`plpgsql_show_dependency_tb function`,可以显示静态依赖关系。 (2认同)