Can';t在postgreSQL 9.3中使用外部数据包装器从pg_索引访问数据

Can';t在postgreSQL 9.3中使用外部数据包装器从pg_索引访问数据,postgresql,postgres-fdw,Postgresql,Postgres Fdw,我在另一个postgreSQL数据库中实现了postgreSQL 9.3中的外部数据包装器,如下所示: CREATE SERVER app_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname 'postgres', host 'localhost'); CREATE USER MAPPING for postgres

我在另一个postgreSQL数据库中实现了postgreSQL 9.3中的外部数据包装器,如下所示:

CREATE SERVER app_db 
                   FOREIGN DATA WRAPPER postgres_fdw 
                   OPTIONS (dbname 'postgres', host 'localhost');

 CREATE USER MAPPING for postgres 
                      SERVER app_db 
                      OPTIONS (user 'postgres', password 'XXXX');



CREATE FOREIGN TABLE location_local
              (
                     id integer,
                    name character varying
               )
             SERVER app_db OPTIONS (table_name 'location') 

SELECT * FROM location_local;
这一切都很好,因为位置表位于公共模式中。但我也想访问pg_目录中的数据。当我按照相同的程序访问数据时,它会给我错误

ERROR:  relation "public.pg_catalog.pg_index" does not exist
是否有任何方法可以使用FDW或任何其他方式访问目录中的数据?

您可以在外部表定义中尝试:

CREATE FOREIGN TABLE foreign_index (
    -- ...
)
SERVER app_db
OPTIONS (
    schema_name 'pg_catalog',
    table_name 'pg_index'
);

但这可能行不通,因为
pg_catalog
实际上不是一个模式,而是一个系统目录。如果是这种情况,您仍然可以使用在外部数据库中运行查询。

请显示与您所遇到的错误相关的
创建外部表
命令。