Mario Weilguni <mweilguni@sime.com> writes:
> I checked it again, it are exactly 301 files from oid2names (2 were header).
> This info is from the database itself:
> cms=# SELECT count(1) from pg_class ;
> count
> -------
> 476
> (1 row)
> cms=# SELECT count(1), relkind from pg_class group by relkind;
> count | relkind
> -------+---------
> 7 | S
> 299 | i
> 103 | r
> 1 | s
> 43 | t
> 23 | v
> And there are 443 files in the directory (without pg_internal.init, pgsql_tmp, PG_VERSION, and one pg_largeobject
file16404.1)
> Lets see:
> 476 entries - 23 views - 1 pg_xactlock - 7 sequences makes 445 entities, still off by 2. But it seems oid2name does
notlist some files.
The sequences should have files, so I make it 452 pg_class rows that
should have corresponding files. However, those rows that have
relisshared = 't' correspond to files in $PGDATA/global, not files
in your per-database directory. In 7.2 I believe there should be ten
such rows, one of which is pg_xactlock, so 443 seems the correct count.
Could you make a list of the pg_class.relfilenode values for
'S','i','r','t' rows (excluding relisshared rows), and compare that
against what oid2name is reporting to see what it is missing or
getting wrong?
regards, tom lane