ANALYZE "S 1"."T 2";
ANALYZE "S 1"."T 3";
ANALYZE "S 1"."T 4";
--- record relpages for T 1
-create temp table save_t_1_relpages as
- select relpages as old_relpages from pg_class where relname = 'T 1';
-select relpages - (select old_relpages from save_t_1_relpages) as pg_delta,
- reltuples from pg_class where relname = 'T 1';
- pg_delta | reltuples
-----------+-----------
- 0 | 1000
-(1 row)
-
-select (histogram_bounds::text::int[])[array_length(histogram_bounds,1)]
- from pg_stats where tablename = 'T 1' and attname = 'C 1';
- histogram_bounds
-------------------
- 1000
-(1 row)
-
-- ===================================================================
-- create foreign tables
-- ===================================================================
2010 | 0 | bar | | | | ft2 |
(10 rows)
-select relpages - (select old_relpages from save_t_1_relpages) as pg_delta,
- reltuples from pg_class where relname = 'T 1';
- pg_delta | reltuples
-----------+-----------
- 0 | 1000
-(1 row)
-
-select (histogram_bounds::text::int[])[array_length(histogram_bounds,1)]
- from pg_stats where tablename = 'T 1' and attname = 'C 1';
- histogram_bounds
-------------------
- 1000
-(1 row)
-
EXPLAIN (verbose, costs off)
UPDATE ft2 SET c3 = 'baz'
FROM ft4 INNER JOIN ft5 ON (ft4.c1 = ft5.c1)
ANALYZE "S 1"."T 3";
ANALYZE "S 1"."T 4";
--- record relpages for T 1
-create temp table save_t_1_relpages as
- select relpages as old_relpages from pg_class where relname = 'T 1';
-
-select relpages - (select old_relpages from save_t_1_relpages) as pg_delta,
- reltuples from pg_class where relname = 'T 1';
-select (histogram_bounds::text::int[])[array_length(histogram_bounds,1)]
- from pg_stats where tablename = 'T 1' and attname = 'C 1';
-
-- ===================================================================
-- create foreign tables
-- ===================================================================
EXPLAIN (verbose, costs off)
UPDATE ft2 SET c3 = 'bar' WHERE postgres_fdw_abs(c1) > 2000 RETURNING *; -- can't be pushed down
UPDATE ft2 SET c3 = 'bar' WHERE postgres_fdw_abs(c1) > 2000 RETURNING *;
-select relpages - (select old_relpages from save_t_1_relpages) as pg_delta,
- reltuples from pg_class where relname = 'T 1';
-select (histogram_bounds::text::int[])[array_length(histogram_bounds,1)]
- from pg_stats where tablename = 'T 1' and attname = 'C 1';
EXPLAIN (verbose, costs off)
UPDATE ft2 SET c3 = 'baz'
FROM ft4 INNER JOIN ft5 ON (ft4.c1 = ft5.c1)