Is this a bug in Postgres 10b4? Looks like neither partition ranges
nor check constraints are honored in 10b4 when inserting into
partitions that are foreign tables.
Here is a nearly shovel-ready example. Just replace with your
servers/passwords.
-- --------------------------
-- Server 1
-- --------------------------
CREATE DATABASE cluster;
\c cluster
CREATE EXTENSION postgres_fdw;
CREATE SERVER server2 FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(host 'server2', dbname 'cluster');
CREATE USER MAPPING FOR postgres SERVER server2
OPTIONS(user 'postgres', password 'pgpassword');
CREATE TABLE foo (
id INT NOT NULL,
name TEXT
) PARTITION BY RANGE (id);
CREATE FOREIGN TABLE foo_10000
PARTITION OF foo
FOR VALUES FROM (0) TO (10000)
SERVER server2 OPTIONS (table_name 'foo_10000');
-- --------------------------
-- Server 2
-- --------------------------
CREATE DATABASE cluster;
\c cluster
CREATE TABLE foo_10000 (
id INT NOT NULL,
name TEXT
);
-- --------------------------
-- Server 1
-- --------------------------
INSERT INTO foo_10000 VALUES(0,'funky bug'),
(100, 'wiggle frank'),
(15000, 'boegger snot');
SELECT * FROM foo;
DROP FOREIGN TABLE foo_10000;
CREATE FOREIGN TABLE foo_10000
PARTITION OF foo
(id CONSTRAINT f1 CHECK ((id >= 0) AND (id < 10000)))
FOR VALUES FROM (0) TO (10000)
SERVER server2 OPTIONS (table_name 'foo_10000');
INSERT INTO foo_10000 VALUES(0,'funky bug'),
(100, 'wiggle frank'),
(15000, 'boegger snot');
SELECT * FROM foo;
.
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general