gpt4 book ai didi

postgresql 提取函数源码

转载 作者:行者123 更新时间:2023-11-29 13:05:49 34 4
gpt4 key购买 nike

需要使用 SQL 提取 PostgreSQL 函数的源代码。

我看到其中一个函数有这种奇怪的行为,所有其他函数(大约 200+)都工作得很好。

当我运行以下语句时,它起作用了:

select prosrc  from pg_proc where proname= 'accounts_count';

但是,当我运行以下命令时,它返回一个空字符串:

select  routine_definition
from information_schema.routines
where specific_name = 'accounts_count_66243'

PostgreSQL 8.3 版。我试过同时使用 pgAdmin III 和 psql。

不是一个表演障碍,但有助于了解为什么会这样。

有什么想法吗?

最佳答案

如果查看 information_schema.routines 的定义,则可以找到以下过滤器:

FROM pg_namespace n, pg_proc p, pg_language l, pg_type t, pg_namespace nt
WHERE n.oid = p.pronamespace AND p.prolang = l.oid AND p.prorettype = t.oid
AND t.typnamespace = nt.oid AND (pg_has_role(p.proowner, 'USAGE'::text)
OR has_function_privilege(p.oid, 'EXECUTE'::text));

所以我的理论:

  • 相关功能的权利和所有权存在一些问题(可能)- 尝试使用不同的帐户来验证该理论(postgres 最好)

关于postgresql 提取函数源码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656205/

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