diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index b63c1804b41..b68e0f00abd 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -1392,48 +1392,42 @@ SELECT ns.nspname AS "schema", rel.relname AS relname, - stats.total_blks_read, - stats.total_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, - - stats.rel_blks_read, - stats.rel_blks_hit, - - stats.pages_scanned, - stats.pages_removed, - stats.pages_frozen, - stats.pages_all_visible, - stats.tuples_deleted, - stats.tuples_frozen, - stats.dead_tuples, - - stats.index_vacuum_count, - stats.rev_all_frozen_pages, - stats.rev_all_visible_pages, - - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, - - stats.blk_read_time, - stats.blk_write_time, - - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, - stats.interrupts -FROM - pg_database db, - pg_class rel, - pg_namespace ns, - pg_stat_vacuum_tables(rel.oid) stats -WHERE - db.datname = current_database() AND - rel.oid = stats.relid AND - ns.oid = rel.relnamespace AND - rel.relkind = 'r'; + COALESCE(stats.total_blks_read, 0) AS total_blks_read, + COALESCE(stats.total_blks_hit, 0) AS total_blks_hit, + COALESCE(stats.total_blks_dirtied, 0) AS total_blks_dirtied, + COALESCE(stats.total_blks_written, 0) AS total_blks_written, + + COALESCE(stats.rel_blks_read, 0) AS rel_blks_read, + COALESCE(stats.rel_blks_hit, 0) AS rel_blks_hit, + + COALESCE(stats.pages_scanned, 0) AS pages_scanned, + COALESCE(stats.pages_removed, 0) AS pages_removed, + COALESCE(stats.pages_frozen, 0) AS pages_frozen, + COALESCE(stats.pages_all_visible, 0) AS pages_all_visible, + COALESCE(stats.tuples_deleted, 0) AS tuples_deleted, + COALESCE(stats.tuples_frozen, 0) AS tuples_frozen, + COALESCE(stats.dead_tuples, 0) AS dead_tuples, + + COALESCE(stats.index_vacuum_count, 0) AS index_vacuum_count, + COALESCE(stats.rev_all_frozen_pages, 0) AS rev_all_frozen_pages, + COALESCE(stats.rev_all_visible_pages, 0) AS rev_all_visible_pages, + + COALESCE(stats.wal_records, 0) AS wal_records, + COALESCE(stats.wal_fpi, 0) AS wal_fpi, + COALESCE(stats.wal_bytes, 0) AS wal_bytes, + + COALESCE(stats.blk_read_time, 0) AS blk_read_time, + COALESCE(stats.blk_write_time, 0) AS blk_write_time, + + COALESCE(stats.delay_time, 0) AS delay_time, + COALESCE(stats.system_time, 0) AS system_time, + COALESCE(stats.user_time, 0) AS user_time, + COALESCE(stats.total_time, 0) AS total_time, + COALESCE(stats.interrupts, 0) AS interrupts +FROM pg_class rel + JOIN pg_namespace ns ON ns.oid = rel.relnamespace + LEFT JOIN pg_stat_vacuum_tables(rel.oid) stats ON true +WHERE rel.relkind = 'r'; CREATE VIEW pg_stat_vacuum_indexes AS SELECT @@ -1441,64 +1435,57 @@ SELECT ns.nspname AS "schema", rel.relname AS relname, - stats.total_blks_read, - stats.total_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, + COALESCE(total_blks_read, 0) AS total_blks_read, + COALESCE(total_blks_hit, 0) AS total_blks_hit, + COALESCE(total_blks_dirtied, 0) AS total_blks_dirtied, + COALESCE(total_blks_written, 0) AS total_blks_written, - stats.rel_blks_read, - stats.rel_blks_hit, + COALESCE(rel_blks_read, 0) AS rel_blks_read, + COALESCE(rel_blks_hit, 0) AS rel_blks_hit, - stats.pages_deleted, - stats.tuples_deleted, + COALESCE(pages_deleted, 0) AS pages_deleted, + COALESCE(tuples_deleted, 0) AS tuples_deleted, - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, + COALESCE(wal_records, 0) AS wal_records, + COALESCE(wal_fpi, 0) AS wal_fpi, + COALESCE(wal_bytes, 0) AS wal_bytes, - stats.blk_read_time, - stats.blk_write_time, + COALESCE(blk_read_time, 0) AS blk_read_time, + COALESCE(blk_write_time, 0) AS blk_write_time, - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, - stats.interrupts + COALESCE(delay_time, 0) AS delay_time, + COALESCE(system_time, 0) AS system_time, + COALESCE(user_time, 0) AS user_time, + COALESCE(total_time, 0) AS total_time, + COALESCE(interrupts, 0) AS interrupts FROM - pg_database db, - pg_class rel, - pg_namespace ns, - pg_stat_vacuum_indexes(rel.oid) stats -WHERE - db.datname = current_database() AND - rel.oid = stats.relid AND - ns.oid = rel.relnamespace AND - rel.relkind = 'i'; + pg_class rel + JOIN pg_namespace ns ON ns.oid = rel.relnamespace + LEFT JOIN pg_stat_vacuum_indexes(rel.oid) stats ON true +WHERE rel.relkind = 'i'; CREATE VIEW pg_stat_vacuum_database AS SELECT db.oid as dboid, db.datname AS dbname, - stats.db_blks_read, - stats.db_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, - - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, + COALESCE(stats.db_blks_read, 0) AS db_blks_read, + COALESCE(stats.db_blks_hit, 0) AS db_blks_hit, + COALESCE(stats.total_blks_dirtied, 0) AS total_blks_dirtied, + COALESCE(stats.total_blks_written, 0) AS total_blks_written, - stats.blk_read_time, - stats.blk_write_time, + COALESCE(stats.wal_records, 0) AS wal_records, + COALESCE(stats.wal_fpi, 0) AS wal_fpi, + COALESCE(stats.wal_bytes, 0) AS wal_bytes, - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, + COALESCE(stats.blk_read_time, 0) AS blk_read_time, + COALESCE(stats.blk_write_time, 0) AS blk_write_time, - stats.interrupts + COALESCE(stats.delay_time, 0) AS delay_time, + COALESCE(stats.system_time, 0) AS system_time, + COALESCE(stats.user_time, 0) AS user_time, + COALESCE(stats.total_time, 0) AS total_time, + COALESCE(stats.interrupts, 0) AS interrupts FROM - pg_database db LEFT JOIN pg_stat_vacuum_database(db.oid) stats -ON - db.oid = stats.dboid; \ No newline at end of file + pg_database db + LEFT JOIN pg_stat_vacuum_database(db.oid) stats ON true; \ No newline at end of file diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 4d1c099b37e..cac34fbe64f 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -2107,7 +2107,7 @@ pg_stat_have_stats(PG_FUNCTION_ARGS) static void tuplestore_put_for_database(Oid dbid, ReturnSetInfo *rsinfo, - PgStatShared_Database *dbentry) + PgStat_StatDBEntry *dbentry) { Datum values[EXTVACDBSTAT_COLUMNS]; bool nulls[EXTVACDBSTAT_COLUMNS]; @@ -2118,28 +2118,28 @@ tuplestore_put_for_database(Oid dbid, ReturnSetInfo *rsinfo, values[i++] = ObjectIdGetDatum(dbid); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.total_blks_read); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.total_blks_hit); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.total_blks_dirtied); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.total_blks_written); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.total_blks_read); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.total_blks_hit); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.total_blks_dirtied); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.total_blks_written); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.wal_records); - values[i++] = Int64GetDatum(dbentry->stats.vacuum_ext.wal_fpi); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.wal_records); + values[i++] = Int64GetDatum(dbentry->vacuum_ext.wal_fpi); /* Convert to numeric, like pg_stat_statements */ - snprintf(buf, sizeof buf, UINT64_FORMAT, dbentry->stats.vacuum_ext.wal_bytes); + snprintf(buf, sizeof buf, UINT64_FORMAT, dbentry->vacuum_ext.wal_bytes); values[i++] = DirectFunctionCall3(numeric_in, CStringGetDatum(buf), ObjectIdGetDatum(0), Int32GetDatum(-1)); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.blk_read_time); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.blk_write_time); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.delay_time); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.system_time); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.user_time); - values[i++] = Float8GetDatum(dbentry->stats.vacuum_ext.total_time); - values[i++] = Int32GetDatum(dbentry->stats.vacuum_ext.interrupts); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.blk_read_time); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.blk_write_time); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.delay_time); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.system_time); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.user_time); + values[i++] = Float8GetDatum(dbentry->vacuum_ext.total_time); + values[i++] = Int32GetDatum(dbentry->vacuum_ext.interrupts); Assert(i == rsinfo->setDesc->natts); tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, values, nulls); @@ -2236,8 +2236,9 @@ pg_stats_vacuum(FunctionCallInfo fcinfo, ExtVacReportType type, int ncolumns) if (OidIsValid(relid)) { tabentry = pgstat_fetch_stat_tabentry(relid); - if (tabentry == NULL || tabentry->vacuum_ext.type != type) - /* Table don't exists or isn't an heap relation. */ + + if ((tabentry == NULL || tabentry->vacuum_ext.type != type)) + /* Table don't exists or isn't a heap or index relation. */ return; tuplestore_put_for_relation(relid, rsinfo, tabentry); @@ -2245,7 +2246,7 @@ pg_stats_vacuum(FunctionCallInfo fcinfo, ExtVacReportType type, int ncolumns) else { SnapshotIterator hashiter; - PgStat_SnapshotEntry *entry; + PgStat_SnapshotEntry *entry; pgstat_update_snapshot(PGSTAT_KIND_RELATION); @@ -2265,22 +2266,18 @@ pg_stats_vacuum(FunctionCallInfo fcinfo, ExtVacReportType type, int ncolumns) } else if (type == PGSTAT_EXTVAC_DB) { - PgStatShared_Database *dbentry; - PgStat_EntryRef *entry_ref; - Oid dbid = PG_GETARG_OID(0); + PgStat_StatDBEntry *dbentry; + Oid dbid = PG_GETARG_OID(0); if (OidIsValid(dbid)) { - entry_ref = pgstat_get_entry_ref_locked(PGSTAT_KIND_DATABASE, - dbid, InvalidOid, false); - dbentry = (PgStatShared_Database *) entry_ref->shared_stats; + dbentry = pgstat_fetch_stat_dbentry(dbid); if (dbentry == NULL) - /* Table doesn't exist or isn't a heap relation */ + /* Database doesn't exist */ return; tuplestore_put_for_database(dbid, rsinfo, dbentry); - pgstat_unlock_entry(entry_ref); } } } @@ -2316,4 +2313,4 @@ pg_stat_vacuum_database(PG_FUNCTION_ARGS) pg_stats_vacuum(fcinfo, PGSTAT_EXTVAC_DB, EXTVACDBSTAT_COLUMNS); PG_RETURN_VOID(); -} \ No newline at end of file + } \ No newline at end of file diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 8359cf3e984..f8112d54f52 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -2239,82 +2239,80 @@ pg_stat_user_tables| SELECT relid, WHERE ((schemaname <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name])) AND (schemaname !~ '^pg_toast'::text)); pg_stat_vacuum_database| SELECT db.oid AS dboid, db.datname AS dbname, - stats.db_blks_read, - stats.db_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, - stats.blk_read_time, - stats.blk_write_time, - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, - stats.interrupts + COALESCE(stats.db_blks_read, (0)::bigint) AS db_blks_read, + COALESCE(stats.db_blks_hit, (0)::bigint) AS db_blks_hit, + COALESCE(stats.total_blks_dirtied, (0)::bigint) AS total_blks_dirtied, + COALESCE(stats.total_blks_written, (0)::bigint) AS total_blks_written, + COALESCE(stats.wal_records, (0)::bigint) AS wal_records, + COALESCE(stats.wal_fpi, (0)::bigint) AS wal_fpi, + COALESCE(stats.wal_bytes, (0)::numeric) AS wal_bytes, + COALESCE(stats.blk_read_time, (0)::double precision) AS blk_read_time, + COALESCE(stats.blk_write_time, (0)::double precision) AS blk_write_time, + COALESCE(stats.delay_time, (0)::double precision) AS delay_time, + COALESCE(stats.system_time, (0)::double precision) AS system_time, + COALESCE(stats.user_time, (0)::double precision) AS user_time, + COALESCE(stats.total_time, (0)::double precision) AS total_time, + COALESCE(stats.interrupts, 0) AS interrupts FROM (pg_database db - LEFT JOIN LATERAL pg_stat_vacuum_database(db.oid) stats(dboid, db_blks_read, db_blks_hit, total_blks_dirtied, total_blks_written, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) ON ((db.oid = stats.dboid))); + LEFT JOIN LATERAL pg_stat_vacuum_database(db.oid) stats(dboid, db_blks_read, db_blks_hit, total_blks_dirtied, total_blks_written, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) ON (true)); pg_stat_vacuum_indexes| SELECT rel.oid AS relid, ns.nspname AS schema, rel.relname, - stats.total_blks_read, - stats.total_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, - stats.rel_blks_read, - stats.rel_blks_hit, - stats.pages_deleted, - stats.tuples_deleted, - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, - stats.blk_read_time, - stats.blk_write_time, - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, - stats.interrupts - FROM pg_database db, - pg_class rel, - pg_namespace ns, - LATERAL pg_stat_vacuum_indexes(rel.oid) stats(relid, total_blks_read, total_blks_hit, total_blks_dirtied, total_blks_written, rel_blks_read, rel_blks_hit, pages_deleted, tuples_deleted, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) - WHERE ((db.datname = current_database()) AND (rel.oid = stats.relid) AND (ns.oid = rel.relnamespace) AND (rel.relkind = 'i'::"char")); + COALESCE(stats.total_blks_read, (0)::bigint) AS total_blks_read, + COALESCE(stats.total_blks_hit, (0)::bigint) AS total_blks_hit, + COALESCE(stats.total_blks_dirtied, (0)::bigint) AS total_blks_dirtied, + COALESCE(stats.total_blks_written, (0)::bigint) AS total_blks_written, + COALESCE(stats.rel_blks_read, (0)::bigint) AS rel_blks_read, + COALESCE(stats.rel_blks_hit, (0)::bigint) AS rel_blks_hit, + COALESCE(stats.pages_deleted, (0)::bigint) AS pages_deleted, + COALESCE(stats.tuples_deleted, (0)::bigint) AS tuples_deleted, + COALESCE(stats.wal_records, (0)::bigint) AS wal_records, + COALESCE(stats.wal_fpi, (0)::bigint) AS wal_fpi, + COALESCE(stats.wal_bytes, (0)::numeric) AS wal_bytes, + COALESCE(stats.blk_read_time, (0)::double precision) AS blk_read_time, + COALESCE(stats.blk_write_time, (0)::double precision) AS blk_write_time, + COALESCE(stats.delay_time, (0)::double precision) AS delay_time, + COALESCE(stats.system_time, (0)::double precision) AS system_time, + COALESCE(stats.user_time, (0)::double precision) AS user_time, + COALESCE(stats.total_time, (0)::double precision) AS total_time, + COALESCE(stats.interrupts, 0) AS interrupts + FROM ((pg_class rel + JOIN pg_namespace ns ON ((ns.oid = rel.relnamespace))) + LEFT JOIN LATERAL pg_stat_vacuum_indexes(rel.oid) stats(relid, total_blks_read, total_blks_hit, total_blks_dirtied, total_blks_written, rel_blks_read, rel_blks_hit, pages_deleted, tuples_deleted, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) ON (true)) + WHERE (rel.relkind = 'i'::"char"); pg_stat_vacuum_tables| SELECT rel.oid AS relid, ns.nspname AS schema, rel.relname, - stats.total_blks_read, - stats.total_blks_hit, - stats.total_blks_dirtied, - stats.total_blks_written, - stats.rel_blks_read, - stats.rel_blks_hit, - stats.pages_scanned, - stats.pages_removed, - stats.pages_frozen, - stats.pages_all_visible, - stats.tuples_deleted, - stats.tuples_frozen, - stats.dead_tuples, - stats.index_vacuum_count, - stats.rev_all_frozen_pages, - stats.rev_all_visible_pages, - stats.wal_records, - stats.wal_fpi, - stats.wal_bytes, - stats.blk_read_time, - stats.blk_write_time, - stats.delay_time, - stats.system_time, - stats.user_time, - stats.total_time, - stats.interrupts - FROM pg_database db, - pg_class rel, - pg_namespace ns, - LATERAL pg_stat_vacuum_tables(rel.oid) stats(relid, total_blks_read, total_blks_hit, total_blks_dirtied, total_blks_written, rel_blks_read, rel_blks_hit, pages_scanned, pages_removed, pages_frozen, pages_all_visible, tuples_deleted, tuples_frozen, dead_tuples, index_vacuum_count, rev_all_frozen_pages, rev_all_visible_pages, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) - WHERE ((db.datname = current_database()) AND (rel.oid = stats.relid) AND (ns.oid = rel.relnamespace) AND (rel.relkind = 'r'::"char")); + COALESCE(stats.total_blks_read, (0)::bigint) AS total_blks_read, + COALESCE(stats.total_blks_hit, (0)::bigint) AS total_blks_hit, + COALESCE(stats.total_blks_dirtied, (0)::bigint) AS total_blks_dirtied, + COALESCE(stats.total_blks_written, (0)::bigint) AS total_blks_written, + COALESCE(stats.rel_blks_read, (0)::bigint) AS rel_blks_read, + COALESCE(stats.rel_blks_hit, (0)::bigint) AS rel_blks_hit, + COALESCE(stats.pages_scanned, (0)::bigint) AS pages_scanned, + COALESCE(stats.pages_removed, (0)::bigint) AS pages_removed, + COALESCE(stats.pages_frozen, (0)::bigint) AS pages_frozen, + COALESCE(stats.pages_all_visible, (0)::bigint) AS pages_all_visible, + COALESCE(stats.tuples_deleted, (0)::bigint) AS tuples_deleted, + COALESCE(stats.tuples_frozen, (0)::bigint) AS tuples_frozen, + COALESCE(stats.dead_tuples, (0)::bigint) AS dead_tuples, + COALESCE(stats.index_vacuum_count, (0)::bigint) AS index_vacuum_count, + COALESCE(stats.rev_all_frozen_pages, (0)::bigint) AS rev_all_frozen_pages, + COALESCE(stats.rev_all_visible_pages, (0)::bigint) AS rev_all_visible_pages, + COALESCE(stats.wal_records, (0)::bigint) AS wal_records, + COALESCE(stats.wal_fpi, (0)::bigint) AS wal_fpi, + COALESCE(stats.wal_bytes, (0)::numeric) AS wal_bytes, + COALESCE(stats.blk_read_time, (0)::double precision) AS blk_read_time, + COALESCE(stats.blk_write_time, (0)::double precision) AS blk_write_time, + COALESCE(stats.delay_time, (0)::double precision) AS delay_time, + COALESCE(stats.system_time, (0)::double precision) AS system_time, + COALESCE(stats.user_time, (0)::double precision) AS user_time, + COALESCE(stats.total_time, (0)::double precision) AS total_time, + COALESCE(stats.interrupts, 0) AS interrupts + FROM ((pg_class rel + JOIN pg_namespace ns ON ((ns.oid = rel.relnamespace))) + LEFT JOIN LATERAL pg_stat_vacuum_tables(rel.oid) stats(relid, total_blks_read, total_blks_hit, total_blks_dirtied, total_blks_written, rel_blks_read, rel_blks_hit, pages_scanned, pages_removed, pages_frozen, pages_all_visible, tuples_deleted, tuples_frozen, dead_tuples, index_vacuum_count, rev_all_frozen_pages, rev_all_visible_pages, wal_records, wal_fpi, wal_bytes, blk_read_time, blk_write_time, delay_time, system_time, user_time, total_time, interrupts) ON (true)) + WHERE (rel.relkind = 'r'::"char"); pg_stat_wal| SELECT wal_records, wal_fpi, wal_bytes, diff --git a/src/test/regress/expected/vacuum_index_statistics.out b/src/test/regress/expected/vacuum_index_statistics.out index 4f6e305710e..166de176e29 100644 --- a/src/test/regress/expected/vacuum_index_statistics.out +++ b/src/test/regress/expected/vacuum_index_statistics.out @@ -35,9 +35,10 @@ DELETE FROM vestat WHERE x % 2 = 0; SELECT vt.relname,relpages,pages_deleted,tuples_deleted FROM pg_stat_vacuum_indexes vt, pg_class c WHERE vt.relname = 'vestat_pkey' AND vt.relid = c.oid; - relname | relpages | pages_deleted | tuples_deleted ----------+----------+---------------+---------------- -(0 rows) + relname | relpages | pages_deleted | tuples_deleted +-------------+----------+---------------+---------------- + vestat_pkey | 30 | 0 | 0 +(1 row) SELECT relpages AS irp FROM pg_class c diff --git a/src/test/regress/expected/vacuum_tables_and_db_statistics.out b/src/test/regress/expected/vacuum_tables_and_db_statistics.out index 94dd3214349..7a0b3ba96e1 100644 --- a/src/test/regress/expected/vacuum_tables_and_db_statistics.out +++ b/src/test/regress/expected/vacuum_tables_and_db_statistics.out @@ -26,8 +26,6 @@ SELECT pg_stat_force_next_flush(); (1 row) \set sample_size 10000 -SET vacuum_freeze_min_age = 0; -SET vacuum_freeze_table_age = 0; --SET stats_fetch_consistency = snapshot; CREATE TABLE vestat (x int) WITH (autovacuum_enabled = off, fillfactor = 10); INSERT INTO vestat SELECT x FROM generate_series(1,:sample_size) as x; @@ -40,7 +38,8 @@ FROM pg_stat_vacuum_tables vt, pg_class c WHERE vt.relname = 'vestat' AND vt.relid = c.oid; relname | pages_frozen | tuples_deleted | relpages | pages_scanned | pages_removed ---------+--------------+----------------+----------+---------------+--------------- -(0 rows) + vestat | 0 | 0 | 455 | 0 | 0 +(1 row) SELECT relpages AS rp FROM pg_class c @@ -179,10 +178,7 @@ FROM pg_stat_vacuum_tables WHERE relname = 'vestat'; SELECT pages_frozen AS pf, pages_all_visible AS pv, rev_all_frozen_pages AS hafp,rev_all_visible_pages AS havp FROM pg_stat_vacuum_tables WHERE relname = 'vestat' \gset -UPDATE vestat SET x = x1001; -ERROR: column "x1001" does not exist -LINE 1: UPDATE vestat SET x = x1001; - ^ +UPDATE vestat SET x = x+1001; VACUUM (PARALLEL 0, BUFFER_USAGE_LIMIT 128) vestat; SELECT pages_frozen > :pf AS pages_frozen,pages_all_visible > :pv AS pages_all_visible,rev_all_frozen_pages > :hafp AS rev_all_frozen_pages,rev_all_visible_pages > :havp AS rev_all_visible_pages FROM pg_stat_vacuum_tables WHERE relname = 'vestat'; @@ -259,8 +255,6 @@ WHERE dbname = 'regression_statistic_vacuum_db'; (1 row) \c regression_statistic_vacuum_db -RESET vacuum_freeze_min_age; -RESET vacuum_freeze_table_age; DROP TABLE vestat CASCADE; \c regression_statistic_vacuum_db1; SELECT count(*) diff --git a/src/test/regress/sql/vacuum_tables_and_db_statistics.sql b/src/test/regress/sql/vacuum_tables_and_db_statistics.sql index af1281b3b63..a3ddc9419de 100644 --- a/src/test/regress/sql/vacuum_tables_and_db_statistics.sql +++ b/src/test/regress/sql/vacuum_tables_and_db_statistics.sql @@ -21,8 +21,7 @@ SET track_functions TO 'all'; SELECT pg_stat_force_next_flush(); \set sample_size 10000 -SET vacuum_freeze_min_age = 0; -SET vacuum_freeze_table_age = 0; + --SET stats_fetch_consistency = snapshot; CREATE TABLE vestat (x int) WITH (autovacuum_enabled = off, fillfactor = 10); INSERT INTO vestat SELECT x FROM generate_series(1,:sample_size) as x; @@ -145,7 +144,7 @@ FROM pg_stat_vacuum_tables WHERE relname = 'vestat'; SELECT pages_frozen AS pf, pages_all_visible AS pv, rev_all_frozen_pages AS hafp,rev_all_visible_pages AS havp FROM pg_stat_vacuum_tables WHERE relname = 'vestat' \gset -UPDATE vestat SET x = x1001; +UPDATE vestat SET x = x+1001; VACUUM (PARALLEL 0, BUFFER_USAGE_LIMIT 128) vestat; SELECT pages_frozen > :pf AS pages_frozen,pages_all_visible > :pv AS pages_all_visible,rev_all_frozen_pages > :hafp AS rev_all_frozen_pages,rev_all_visible_pages > :havp AS rev_all_visible_pages @@ -204,8 +203,6 @@ WHERE dbname = 'regression_statistic_vacuum_db'; \c regression_statistic_vacuum_db -RESET vacuum_freeze_min_age; -RESET vacuum_freeze_table_age; DROP TABLE vestat CASCADE; \c regression_statistic_vacuum_db1;