gpt4 book ai didi

postgresql - 以编程方式获取对象源

转载 作者:行者123 更新时间:2023-11-29 13:32:22 25 4
gpt4 key购买 nike

我需要访问对象的完整源代码,以便自动执行某些任务。例如: View 的完整源码就是 View 本身,它的规则、触发器、权限……

通过使用 PgAdmin、pg_dump、psql 等不同的 PostgreSQL 工具,可以轻松获取它,但我需要能够通过 (sql/plpgsql) 函数调用访问它。

实现如下所示的 API 并不难:getFunctionSource、getTableSource、getFUnctionSource。但是,看起来这段代码需要根据不同版本的数据库进行大量维护。

是否有官方维护或经过良好测试的扩展、API、pg_dump 包装器或任何我可以使用的东西?

最佳答案

如果您运行 psql -E,您将看到由 Postgres 运行以输出数据定义的隐藏查询。

例如,可以通过运行 \df foo、读取查询并随后尝试找到函数的原始源:

select prosrc from pg_proc where proname = 'foo'

\sf foo 不会使用该方法产生相关函数,但粗略地看一下 docs on system information functions (其中有很多)应该表明它只是一个包装器:

select pg_get_functiondef('foo'::regproc);

如果您选择在 github 上发布您的内容,那么一些帮助您入门的 View :

https://gist.github.com/ddebernardy/7893922

(在运行文件之前,您需要在 psql 中使用\i 创建一个“系统”模式。)

关于postgresql - 以编程方式获取对象源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20496632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com