gpt4 book ai didi

sql - 如何检查哪个函数使用类型?

转载 作者:行者123 更新时间:2023-11-29 11:56:45 24 4
gpt4 key购买 nike

我有一个我想更改的类型,但我不知道还有谁在使用它。

如何检查返回此类型的所有函数?

最佳答案

您可以在系统目录中找到所有依赖项pg_depend .

这将返回所有函数,具体取决于类型。 IE。不仅是 RETURNS 子句中的类型,还有作为函数参数的类型:

SELECT objid::regproc                            AS function_name
, pg_get_functiondef(objid) AS function_definition
, pg_get_function_identity_arguments(objid) AS function_args
, pg_get_function_result(objid) AS function_returns
FROM pg_depend
WHERE refclassid = 'pg_type'::regclass
AND refobjid = 'my_type'::regtype -- insert your type name here
AND classid = 'pg_proc'::regclass; -- only find functions

这也适用于表函数:

...
RETURNS TABLE (foo my_type, bar int)

使用 system catalog information functions .

可能还有其他依赖项(不是函数)。从我的查询中删除最后一个 WHERE 条件以进行测试(很明显,并调整 SELECT 列表)。

并且在函数体或动态 SQL 中的查询中仍然有可能明确使用该类型(例如在强制转换中)。您只能通过解析函数体的文本来识别此类用例。系统中没有注册显式依赖项。

相关:

关于sql - 如何检查哪个函数使用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546586/

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