小编oᴉɹ*_*ǝɥɔ的帖子

如何选择属于 PostgreSQL 中给定扩展的函数?

我正在尝试编写一个SELECT从中pg_catalog提取函数名称、其架构名称和创建该函数的扩展名的函数。

拉取我使用的函数列表(简化版本)

SELECT pg_proc.proname, pg_namespace.nspname AS proschema
FROM pg_proc
    INNER JOIN pg_namespace ON (pg_namespace.oid = pg_proc.pronamespace)
Run Code Online (Sandbox Code Playgroud)

要选择我可以运行的扩展

SELECT pg_extension.extname, pg_namespace.nspname as extschema
FROM pg_catalog.pg_extension
    INNER JOIN pg_catalog.pg_namespace ON (pg_namespace.oid = pg_extension.extnamespace)
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找它们在“”时创建的扩展和函数之间的链接CREATE EXTENSION。理想情况下,SELECT 应该生成 extension_name、extension_schema、foo_name、foo_schema 的列表

postgresql functions postgresql-extensions

6
推荐指数
1
解决办法
3002
查看次数

选择任何/第一个/最后一个/随机值的聚合函数

我运行一个如下所示的查询

WITH src AS (
    ...
)
SELECT MAX(field1), array_agg(field2)
FROM src
Run Code Online (Sandbox Code Playgroud)

我知道field1从 src 返回的所有行中都是相同的,所以我真的不在乎与它一起使用的聚合函数是MAX还是MIN. 在我的情况下field1是一个数组,所以我很好奇是否有更有效的方法来获取任何field1不包括将其与之前保存的 MIN/MAX 进行比较的开销的方法。如果有一个函数来获取第一个/保留最后一个值field1将是理想的。

postgresql aggregate

5
推荐指数
2
解决办法
4479
查看次数