SELECT :scale * 0 as th0, :scale * 1 as th1, :scale * 2 as th2, :scale * 3 as th3, :scale * 4 as th4, :scale * 10 as th10, :scale * 20 as th20, :scale * 30 as th30, :scale * 40 as th40, :scale * 100 as th100, :scale * 1000 as th1000 \gset DROP TABLE IF EXISTS t0 CASCADE; DROP TABLE IF EXISTS pl CASCADE; DROP TABLE IF EXISTS pll CASCADE; DROP TABLE IF EXISTS pf0 CASCADE; DROP TABLE IF EXISTS pf1 CASCADE; DROP TABLE IF EXISTS ptf0; DROP TABLE IF EXISTS ptf1; 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); CREATE TABLE pll (a int, b int); CREATE TABLE cll1 (LIKE pl) INHERITS (pll); CREATE TABLE cll2 (LIKE pl) INHERITS (pll); CREATE TABLE cll3 (LIKE pl) INHERITS (pll); CREATE TABLE cll4 (LIKE pl) INHERITS (pll); INSERT INTO cll1 (SELECT a, a FROM generate_series(:th0, :th10 - 1) a); INSERT INTO cll2 (SELECT a, a FROM generate_series(:th10, :th20 - 1) a); INSERT INTO cll3 (SELECT a, a FROM generate_series(:th20, :th30 - 1) a); INSERT INTO cll4 (SELECT a, a FROM generate_series(:th30, :th40 - 1) a); CREATE TABLE t0 (LIKE pl); INSERT INTO t0 (SELECT a, a FROM generate_series(0, :th100 - 1) a); DROP SERVER IF EXISTS svl CASCADE; 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 svl FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE SERVER sv0 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE SERVER sv1 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE SERVER sv2 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE SERVER sv3 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE SERVER sv4 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host :'svhost', port :'svport', dbname :'svdbname', fetch_size :'fetchsize'); CREATE USER MAPPING FOR public SERVER svl; 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 ft0 (a int, b int) SERVER svl OPTIONS (table_name 't0'); 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; CREATE FOREIGN TABLE ftp10 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl1'); CREATE FOREIGN TABLE ftp20 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl2'); CREATE FOREIGN TABLE ftp30 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl3'); CREATE FOREIGN TABLE ftp40 (a int, b int) SERVER sv0 OPTIONS (table_name 'cl4'); CREATE FOREIGN TABLE ftp11 (a int, b int) SERVER sv1 OPTIONS (table_name 'cl1'); CREATE FOREIGN TABLE ftp22 (a int, b int) SERVER sv2 OPTIONS (table_name 'cl2'); CREATE FOREIGN TABLE ftp33 (a int, b int) SERVER sv3 OPTIONS (table_name 'cl3'); CREATE FOREIGN TABLE ftp44 (a int, b int) SERVER sv4 OPTIONS (table_name 'cl4'); CREATE TABLE ptf0 (a int, b int) PARTITION BY RANGE (a); ALTER TABLE ptf0 ATTACH PARTITION ftp10 FOR VALUES FROM (:th0) TO (:th1); ALTER TABLE ptf0 ATTACH PARTITION ftp20 FOR VALUES FROM (:th1) TO (:th2); ALTER TABLE ptf0 ATTACH PARTITION ftp30 FOR VALUES FROM (:th2) TO (:th3); ALTER TABLE ptf0 ATTACH PARTITION ftp40 FOR VALUES FROM (:th3) TO (:th4); CREATE TABLE ptf1 (a int, b int) PARTITION BY RANGE (a); ALTER TABLE ptf1 ATTACH PARTITION ftp11 FOR VALUES FROM (:th0) TO (:th1); ALTER TABLE ptf1 ATTACH PARTITION ftp22 FOR VALUES FROM (:th1) TO (:th2); ALTER TABLE ptf1 ATTACH PARTITION ftp33 FOR VALUES FROM (:th2) TO (:th3); ALTER TABLE ptf1 ATTACH PARTITION ftp44 FOR VALUES FROM (:th3) TO (:th4); ANALYZE;