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