CREATE EXTENSION postgres_fdw; SELECT current_database() AS current_database, current_setting('port') AS current_port \gset CREATE SERVER loopback FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname :'current_database', port :'current_port'); CREATE USER MAPPING FOR CURRENT_USER SERVER loopback; CREATE SCHEMA "S 1"; CREATE TABLE "S 1"."T 3" ( c1 int NOT NULL, c2 int NOT NULL, c3 text, CONSTRAINT t3_pkey PRIMARY KEY (c1) ); INSERT INTO "S 1"."T 3" SELECT id, id + 1, 'AAA' || to_char(id, 'FM000') FROM generate_series(1, 10000) id; ANALYZE "S 1"."T 3"; CREATE FOREIGN TABLE ft4 ( c1 int NOT NULL, c2 int NOT NULL, c3 text ) SERVER loopback OPTIONS (schema_name 'S 1', table_name 'T 3'); explain (analyze, verbose) select min(c1) from "S 1"."T 3"; explain (analyze, verbose) select min(c1) from "S 1"."T 3"; explain (analyze, verbose) select min(c1) from "S 1"."T 3"; explain (analyze, verbose) select min(c2) from "S 1"."T 3"; explain (analyze, verbose) select min(c2) from "S 1"."T 3"; explain (analyze, verbose) select min(c2) from "S 1"."T 3"; ALTER FOREIGN TABLE ft4 OPTIONS (use_remote_estimate 'false'); explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c2) from ft4; explain (analyze, verbose) select min(c2) from ft4; explain (analyze, verbose) select min(c2) from ft4; ALTER FOREIGN TABLE ft4 OPTIONS (SET use_remote_estimate 'true'); explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c1) from ft4; explain (analyze, verbose) select min(c2) from ft4; explain (analyze, verbose) select min(c2) from ft4; explain (analyze, verbose) select min(c2) from ft4;