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

Reply via email to