Gavin Sherry <swm(at)linuxworld(dot)com(dot)au> writes:
> Without looking at the actual data, it seems like
> PhonyHeapTupleSatisfiesNow() in GetRawDatabaseInfo() might be to blame.
That was my theory too, but having looked at the tuple, it's perfectly
valid. However, it appears that its xmin is way in the past, which
means that snapshot-aware scans won't see it. I think what happened is
that the DBA of this database (Dave says it ain't him!) never did any
database-wide vacuums, and thereby allowed the info in pg_database to
get old enough to slide out of the transaction window without being
frozen :-(
regards, tom lane