I have encountered another problem with pg_upgrade, while migrating from 8.4 to 
9.0 (beta2, as well as beta3) on Windows XP Pro.

I have a table with a regclass column, which references other tables in the 
same database:

CREATE TABLE common_inst.reg_asset
(
  asset_id integer NOT NULL,
  table_name regclass,
  CONSTRAINT asset_registered_pkey PRIMARY KEY (asset_id)
)

Sometimes after I migrate the database, the values in the table_name column 
show integer numbers (e.g. '284551' for a table named 
'common_inst.asset_spot_equity_index') instead of table references. These 
numbers are the OIDs of the tables in the old database, but in the new database 
these OIDs have no referent.

FWIW, when looking at the pg_class entries for the referenced tables, I have 
noticed that in the old database the table OID and the column relfilenode have 
different values. In the migrated database the values are the same and coincide 
with relfilenode in the old database.

For example,

Old database:

Table name: common_inst.asset_spot_equity_index
pg_class.oid = 284551
pg_class.relfilenode = 288011

Migrated database:

Table name: common_inst.asset_spot_equity_index
pg_class.oid = 288011
pg_class.relfilenode = 288011


I am trying to obtain a binary dump of a small test database where this issue 
could be reproduced, but so far, no luck. At present, the least such database 
is 1.5 GB compressed and contains a lot of proprietary info. I would welcome 
any suggestions on how to do this.

Thanks,
Dmitry

Reply via email to