有什么方法可以列出所有用户定义的 PostgreSQL 函数吗?

2024-03-31

PostgreSQL 提供命令 \dv 来列出所有视图。是否有类似的方法来列出所有用户定义的函数或仅列出特定用户定义的函数? \sf 要求您知道函数的名称,它将提供函数的定义。 \df 列出了所有函数(而且有很多)。我想要一种方法来显示我定义的函数列表。


查找此类查询的最佳方法是使用psql--echo-hidden选项。然后运行psql元命令,您将看到所使用的查询。

For \df这是:

SELECT n.nspname as "Schema",
  p.proname as "Name",
  pg_catalog.pg_get_function_result(p.oid) as "Result data type",
  pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types",
 CASE
  WHEN p.proisagg THEN 'agg'
  WHEN p.proiswindow THEN 'window'
  WHEN p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype THEN 'trigger'
  ELSE 'normal'
 END as "Type"
FROM pg_catalog.pg_proc p
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE pg_catalog.pg_function_is_visible(p.oid)
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
ORDER BY 1, 2, 4;

您可以通过例如调整将 where 子句更改为:

AND n.nspname = 'public'

这相当于\df public.*


如果你检查的文档pg_proc https://www.postgresql.org/docs/current/static/catalog-pg-proc.html你会注意到有一个proowner列,这样你也可以运行:

SELECT n.nspname as "Schema",
       p.proname as "Name",
       pg_catalog.pg_get_function_result(p.oid) as "Result data type",
       pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types"
FROM pg_catalog.pg_proc p
  JOIN pg_catalog.pg_roles u ON u.oid = p.proowner
  LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE pg_catalog.pg_function_is_visible(p.oid)
  AND n.nspname = 'public' 
  AND u.rolname = current_user --<< this limits the functions to those that the current user owns.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有什么方法可以列出所有用户定义的 PostgreSQL 函数吗? 的相关文章

随机推荐

  • 如何在rails 2.3.3中有条件地分配ActionController::Base.session

    我有一个 Rails 应用程序 在 config initializers session store rb 文件中包含以下内容 ActionController Base session key gt app session secret
  • WPF:将标签绑定到类属性

    我试图将标签的内容绑定到类实例的字符串属性 但没有取得太大成功 XAML
  • AVFrame 到 QImage 的高效转换

    我需要在基于 Qt 的应用程序中从视频中提取帧 使用 ffmpeg 库 我可以将帧作为 AVFrame 获取 我需要将其转换为 QImage 以在应用程序的其他部分中使用 这种转换必须是高效的 到目前为止看来sws scale 是正确使用的
  • 如何通过HTTPPost发送图片?

    我正在创建一个活动 需要使用他们的 API 将图像上传到网络服务 我发现如果我使用 UrlEncodedFormEntity 并通过它发送图像数据 网络服务没有收到该信息 至少它无法读取该内容 事实上 如果我添加一些变量与图像数据一起发送
  • 无法使用重复的“graphql”模块

    我发现graphql js https github com graphql graphql js库不允许依赖项也使用 graphql 你会得到以下错误 Duplicate graphql modules cannot be used at
  • 多行点线或虚线文本下划线

    因为 CSS 文本下划线只允许使用实线 并且它的位置位于字符串的底部 所以我使用 border bottom 加上一点填充来实现点或虚线文本下划线 h2 border bottom 1px dotted 999 padding bottom
  • 在 Ada 中立即开始循环的下一次迭代

    我想要一个无限循环 其中循环几乎贯穿整个程序 并且在任何时候 基于条件语句 我希望它退出循环的特定迭代并返回到顶部并执行 有办法做到这一点吗 它不必是无限循环 它可以是一个for循环 我只想让它进入该循环的下一次迭代 您可以使用 goto
  • 如何简单地验证 Rails 中的复选框

    如何简单地验证 Rails 中的复选框是否已选中 该复选框用于最终用户协议 它位于模式窗口中 可以说我有复选框 我应该在哪里以及如何验证这一点 我在这里看到了大多数关于 Rails 中复选框验证的帖子 但没有一个适合我的需要 Adding
  • 使用 ADO.Net 将 utf-8 写入 SQL Server 文本字段并维护 UTF-8 字节

    我有一些编码为 UTF 8 的 xml 我想将其写入 SQL Server 中的文本字段 UTF 8 与 Text 字节兼容 因此它应该能够执行此操作 然后读出仍编码为 utf 8 的 xml 然而 UTF 8 中的多字节特殊字符 例如 会
  • 如何从 AS3 代码调用 Tamarin ESC 编译器?

    我正在尝试从 AS3 代码调用 Tamarin 的 ESC 编译器 我已经在 Flash Player 中加载了 ESC 编译器字节代码 但是当我调用它时 ESC 编译器总是返回相同的不执行任何操作的字节代码 无论我提供什么源代码 人类可读
  • TclError: # 参数错误错误

    我不知道出了什么问题 但我一直收到这个信息 Tkinter 回调中出现异常 回溯 最近一次调用最后一次 文件 Library Frameworks Python framework Versions 7 3 lib python2 7 li
  • Jersey 1.6 和 Spring 3.0.5 使用 Maven

    我很难让 Jersey 与 Spring 3 0 5 一起工作 我发现很多人说他们能够让它发挥作用 但我运气不好 我总是得到 java lang NoSuchMethodError org springframework web conte
  • 如何使用CloudKit的CKShare创建共享?

    我正在研究新的CKShare苹果今年发布的 我对此有一些疑问 我试图关注 WWDC 的 CloudKit 中的新增功能 视频 但部分代码在 Xcode 中不再工作 我想做的是 用户输入他的姓名和电话 然后单击UIButton 将与特定的人分
  • 与Linux中的内存映射设备通信

    我有一个内存映射设备 我需要与它通信 我的老板告诉我可以通过 dev mem 我在网上查了一下 没有找到任何相关的内容 是否可以做到 或者我的老板错了 假设您拥有超级用户权限 任何帮助表示赞赏 你在地址处有一个内存映射设备MMIO ADDR
  • 如何检查文本视图中输入的拼写?

    我有一个 UITextview 用户在其中输入文本 之后 我将该文本作为字符串并将其显示在另一个文本视图中 并想要语法不正确的单词 怎么做 使用自 ios 3 2 起可用的 UITextChecker 类 苹果文档 http develop
  • 如何放大特定点(没有画布)?

    目标很简单 使用鼠标滚轮放大特定点 鼠标所在的位置 这意味着缩放后 鼠标将位于图片的大致相同位置 Purely illustrative I don t care if you use dolphins ducks or madonna f
  • 使用 $not 进行 MongoDB 地理空间查询

    我有一个在 MongoDB 中运行良好的基本地理空间查询 似乎应用 not 来获得补集应该很容易 但它对我不起作用 这是简单的用户错误吗 或者 MongoDB 在概念上不能处理这个查询吗 我在中找不到任何此类限制文档 http www mo
  • Spark中的cache()会改变RDD的状态还是创建一个新的RDD?

    这个问题是我之前问题的后续问题如果我在 Spark 中缓存同一个 RDD 两次会发生什么 https stackoverflow com questions 36195105 what happens if i cache the same
  • sed 匹配换行符中的模式

    这是我的输入
  • 有什么方法可以列出所有用户定义的 PostgreSQL 函数吗?

    PostgreSQL 提供命令 dv 来列出所有视图 是否有类似的方法来列出所有用户定义的函数或仅列出特定用户定义的函数 sf 要求您知道函数的名称 它将提供函数的定义 df 列出了所有函数 而且有很多 我想要一种方法来显示我定义的函数列表