\set scale 1000000 \set th0 0 \set th1 :scale \set th2 :scale * 2 \set th3 :scale * 3 \set th4 :scale * 4 CREATE EXTENSION IF NOT EXISTS postgres_fdw; \c postgresql:///postgres?port=5433 DROP TABLE IF EXISTS pl CASCADE; CREATE TABLE pl (a int, b int); CREATE TABLE cl1 (LIKE pl) INHERITS (pl); CREATE TABLE cl2 (LIKE pl) INHERITS (pl); CREATE TABLE cl3 (LIKE pl) INHERITS (pl); CREATE TABLE cl4 (LIKE pl) INHERITS (pl); INSERT INTO cl1 (SELECT a, a FROM generate_series(:th0, :th1 - 1) a); INSERT INTO cl2 (SELECT a, a FROM generate_series(:th1, :th2 - 1) a); INSERT INTO cl3 (SELECT a, a FROM generate_series(:th2, :th3 - 1) a); INSERT INTO cl4 (SELECT a, a FROM generate_series(:th3, :th4 - 1) a); ANALYZE; \c postgresql:///postgres?port=5432 DROP TABLE IF EXISTS t0 CASCADE; DROP TABLE IF EXISTS pl CASCADE; DROP TABLE IF EXISTS pf0 CASCADE; DROP TABLE IF EXISTS pf1 CASCADE; CREATE TABLE pl (a int, b int); CREATE TABLE cl1 (LIKE pl) INHERITS (pl); CREATE TABLE cl2 (LIKE pl) INHERITS (pl); CREATE TABLE cl3 (LIKE pl) INHERITS (pl); CREATE TABLE cl4 (LIKE pl) INHERITS (pl); INSERT INTO cl1 (SELECT a, a FROM generate_series(:th0*10, :th1*10 - 1) a); INSERT INTO cl2 (SELECT a, a FROM generate_series(:th1*10, :th2*10 - 1) a); INSERT INTO cl3 (SELECT a, a FROM generate_series(:th2*10, :th3*10 - 1) a); INSERT INTO cl4 (SELECT a, a FROM generate_series(:th3*10, :th4*10 - 1) a); CREATE TABLE t0 (LIKE pl); INSERT INTO t0 (SELECT a, a FROM generate_series(0000000, 99999999) a); DROP SERVER IF EXISTS sv0 CASCADE; DROP SERVER IF EXISTS sv1 CASCADE; DROP SERVER IF EXISTS sv2 CASCADE; DROP SERVER IF EXISTS sv3 CASCADE; DROP SERVER IF EXISTS sv4 CASCADE; CREATE SERVER sv0 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '/tmp', port '5433', dbname 'postgres'); CREATE SERVER sv1 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '/tmp', port '5433', dbname 'postgres'); CREATE SERVER sv2 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '/tmp', port '5433', dbname 'postgres'); CREATE SERVER sv3 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '/tmp', port '5433', dbname 'postgres'); CREATE SERVER sv4 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '/tmp', port '5433', dbname 'postgres'); CREATE USER MAPPING FOR public SERVER sv0; CREATE USER MAPPING FOR public SERVER sv1; CREATE USER MAPPING FOR public SERVER sv2; CREATE USER MAPPING FOR public SERVER sv3; CREATE USER MAPPING FOR public SERVER sv4; CREATE FOREIGN TABLE ft10 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl1'); CREATE FOREIGN TABLE ft20 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl2'); CREATE FOREIGN TABLE ft30 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl3'); CREATE FOREIGN TABLE ft40 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl4'); CREATE FOREIGN TABLE ft11 (a int, b int) SERVER sv1 OPTIONS (table_name 'cl1'); CREATE FOREIGN TABLE ft22 (a int, b int) SERVER sv2 OPTIONS (table_name 'cl2'); CREATE FOREIGN TABLE ft33 (a int, b int) SERVER sv3 OPTIONS (table_name 'cl3'); CREATE FOREIGN TABLE ft44 (a int, b int) SERVER sv4 OPTIONS (table_name 'cl4'); CREATE TABLE pf0 (LIKE pl); ALTER FOREIGN TABLE ft10 INHERIT pf0; ALTER FOREIGN TABLE ft20 INHERIT pf0; ALTER FOREIGN TABLE ft30 INHERIT pf0; ALTER FOREIGN TABLE ft40 INHERIT pf0; CREATE table pf1 (LIKE pl); ALTER FOREIGN TABLE ft11 INHERIT pf1; ALTER FOREIGN TABLE ft22 INHERIT pf1; ALTER FOREIGN TABLE ft33 INHERIT pf1; ALTER FOREIGN TABLE ft44 INHERIT pf1; ANALYZE;