Postgres 11 FDW 找不到分区 table
Postgres 11 FDW can't find partitioned table
正在尝试使用 postgres 11 外部数据包装器访问分区 table。我可以访问底层的 table,但不能访问 table。
create schema foo;
CREATE TABLE foo.test1 (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) PARTITION BY RANGE (logdate);
CREATE TABLE foo.measurement1_y2006m02 PARTITION OF foo.test1
FOR VALUES FROM ('2006-02-01') TO ('2006-03-01');
CREATE TABLE foo.measurement1_y2006m03 PARTITION OF foo.test1
FOR VALUES FROM ('2006-03-01') TO ('2006-04-01');
insert into foo.measurement1_y2006m02 values (1,'2006-02-15',1,1);
insert into foo.measurement1_y2006m03 values (2,'2006-03-15',2,2);
select * from foo.test1;
这好像没问题。然后我为此创建了一个 link:
DROP SCHEMA IF EXISTS fdw_foo CASCADE;
CREATE SCHEMA fdw_foo;
IMPORT FOREIGN SCHEMA foo
FROM SERVER myserver INTO fdw_foo;
这个有效:
select * from fdw_foo.measurement1_y2006m02;
这不是
select * from fdw_foo.test1;
ERROR: relation "fdw_foo.test1" does not exist
有什么想法吗?
这是一个您应该报告的错误。
作为变通方法,您可以自己创建外部 table:
CREATE FOREIGN TABLE fdw_foo.test1 (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) SERVER myserver
OPTIONS (schema_name 'foo', table_name 'test1');
正在尝试使用 postgres 11 外部数据包装器访问分区 table。我可以访问底层的 table,但不能访问 table。
create schema foo;
CREATE TABLE foo.test1 (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) PARTITION BY RANGE (logdate);
CREATE TABLE foo.measurement1_y2006m02 PARTITION OF foo.test1
FOR VALUES FROM ('2006-02-01') TO ('2006-03-01');
CREATE TABLE foo.measurement1_y2006m03 PARTITION OF foo.test1
FOR VALUES FROM ('2006-03-01') TO ('2006-04-01');
insert into foo.measurement1_y2006m02 values (1,'2006-02-15',1,1);
insert into foo.measurement1_y2006m03 values (2,'2006-03-15',2,2);
select * from foo.test1;
这好像没问题。然后我为此创建了一个 link:
DROP SCHEMA IF EXISTS fdw_foo CASCADE;
CREATE SCHEMA fdw_foo;
IMPORT FOREIGN SCHEMA foo
FROM SERVER myserver INTO fdw_foo;
这个有效:
select * from fdw_foo.measurement1_y2006m02;
这不是
select * from fdw_foo.test1;
ERROR: relation "fdw_foo.test1" does not exist
有什么想法吗?
这是一个您应该报告的错误。
作为变通方法,您可以自己创建外部 table:
CREATE FOREIGN TABLE fdw_foo.test1 (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) SERVER myserver
OPTIONS (schema_name 'foo', table_name 'test1');