在创建 pgcrypto 扩展后,RDS 摘要函数未定义

chr*_*ris 5 pgcrypto aws amazon-rds

在 AWS RDS 实例上,我们运行了

CREATE EXTENSION pgcrypto;
Run Code Online (Sandbox Code Playgroud)

扩展已创建。两个查询:

SELECT digest('a', 'sha256') FROM table_name;
SELECT public.digest('a', 'sha256') FROM table_name;
Run Code Online (Sandbox Code Playgroud)

给出错误函数 public.digest(unknown,unknown) 不存在

chr*_*ris 5

我的同事发现了这个问题,如果有人遇到类似的问题,问题是 pgcrypto 已安装到非公开的架构中。因此,对报告的已安装扩展的查询表示它已安装,如果不存在则安装不会更改其架构或将其安装到所有架构。最终的解决方案是将其从所有模式中删除并直接安装在公共模式中。