The "VACUUM ANALYZE tablename" command does not have the same effect on
table metadata under 7.2.1 and 7.2.3. In particular, I've noted that
pg_class.reltuples is not updated by vacuuming after a delete.
Here is a sequence of SQL commands to demonstrate the difference. Under
7.2.1, the resulting last three displays of the pg_class.reltuples value
will be zero (0), while under 7.2.3 it will be 10.
create table foo (a char(1));
copy foo from stdin;
a
a
a
a
a
a
a
a
a
a
\.
\x
\t
select count(*) from foo;
select reltuples from pg_class where relname = 'foo';
vacuum foo;
select reltuples from pg_class where relname = 'foo';
vacuum analyze foo;
select reltuples from pg_class where relname = 'foo';
analyze foo;
select reltuples from pg_class where relname = 'foo';
delete from foo;
select reltuples from pg_class where relname = 'foo';
select count(*) from foo;
select reltuples from pg_class where relname = 'foo';
vacuum foo;
select reltuples from pg_class where relname = 'foo';
vacuum analyze foo;
select reltuples from pg_class where relname = 'foo';
analyze foo;
select reltuples from pg_class where relname = 'foo';
drop table foo;