The following bug has been logged on the website:
Bug reference: 14042
Logged by: digoal
Email address: digoal@126.com
PostgreSQL version: 9.5.1
Operating system: CentOS 6.x x64
Description:
When PostgreSQL crashed during database have temp table, database not
cleanup the temp table's info in pg_class.
and there is some bad thing, if no one create the same name temp table after
restart. this temp table will a zombie in pg_class, and vacuum freeze cann't
reduce it's age and database's age.
test:
create temp table t(id int);
don't disconnect this session.
and then:
pg_ctl stop -m immediate
and then
pg_ctl start
and then
select * from pg_namespace;
select age(relfrozenxid),relname from pg_class where relname='t';
select txid_current();
generate some xid;
vauum freeze pg_temp_??.t;
and the table not reduce age.
select age(relfrozenxid),relname from pg_class where relname='t';
and database's age cann't reduce by
vacuum freeze;