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)))
FORVALUES 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 (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general