我正在研究 PostgreSQL 8.2.15(Greenplum 数据库 4.2.0 build 1)(HAWQ 1.2.1.0 build 10335)。
我写了一个函数
create or replace function my_function (
...
select exists(select 1 from my_table1 where condition) into result;
我测试了它
select my_function(params);
它完全可以工作!
这是问题所在,如果我调用函数
select my_function(params) from my_table2;
Postgres告诉我你错了!
错误:关系“my_table1”不存在(segXX sliceX xx.xx.xx:40003 pid=570406)
- 这些表和函数在相同的模式中。
- 我可以访问它们。
- 两个名字都是小写的。
所以,请帮助我。
我试过的
- 将这些表从 my_schema 移到 public
- 将功能移至公共
- 添加架构前缀,例如 my_schema.my_table1。
由 2015/04/19 编辑
Postgre -> Postgres
我试过了
select my_function(params) from pg_stat_activity;
没关系。
如果像这样编辑该功能
create or replace function my_function (
...
select true into result;
它可以在任何情况下工作。