diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c index 11ee536..92d943c 100644 *** a/src/backend/catalog/catalog.c --- b/src/backend/catalog/catalog.c *************** *** 38,43 **** --- 38,44 ---- #include "catalog/pg_shseclabel.h" #include "catalog/pg_subscription.h" #include "catalog/pg_tablespace.h" + #include "catalog/pg_type.h" #include "catalog/toasting.h" #include "miscadmin.h" #include "storage/fd.h" *************** GetNewOidWithIndex(Relation relation, Oi *** 340,345 **** --- 341,354 ---- ScanKeyData key; bool collides; + /* + * We should never be asked to generate a new pg_type OID during + * pg_upgrade; doing so would risk collisions with the OIDs it wants to + * assign. Hitting this assert means there's some path where we failed to + * ensure that a type OID is determined by commands in the dump script. + */ + Assert(!IsBinaryUpgrade || RelationGetRelid(relation) != TypeRelationId); + InitDirtySnapshot(SnapshotDirty); /* Generate new OIDs until we find one not in the table */ *************** GetNewRelFileNode(Oid reltablespace, Rel *** 391,396 **** --- 400,412 ---- bool collides; BackendId backend; + /* + * If we ever get here during pg_upgrade, there's something wrong; all + * relfilenode assignments during a binary-upgrade run should be + * determined by commands in the dump script. + */ + Assert(!IsBinaryUpgrade); + switch (relpersistence) { case RELPERSISTENCE_TEMP: