Looks like a bug to me, at least -- opclasses are registered using the opclass Oid, not the access method Oid, right?
-- Alvaro Herrera (<alvherre[a]alvh.no-ip.org>) "The eagle never lost so much time, as when he submitted to learn of the crow." (William Blake)
Index: opclasscmds.c =================================================================== RCS file: /home/alvherre/cvs/pgsql/src/backend/commands/opclasscmds.c,v retrieving revision 1.35 diff -c -r1.35 opclasscmds.c *** opclasscmds.c 14 Jul 2005 21:46:29 -0000 1.35 --- opclasscmds.c 22 Aug 2005 22:07:13 -0000 *************** *** 926,931 **** --- 926,933 ---- errmsg("operator class \"%s\" does not exist for access method \"%s\"", opcname, access_method))); + opcOid = HeapTupleGetOid(tup); + } else { *************** *** 977,983 **** CatalogUpdateIndexes(rel, tup); /* Update owner dependency reference */ ! changeDependencyOnOwner(OperatorClassRelationId, amOid, newOwnerId); } heap_close(rel, NoLock); --- 979,985 ---- CatalogUpdateIndexes(rel, tup); /* Update owner dependency reference */ ! changeDependencyOnOwner(OperatorClassRelationId, opcOid, newOwnerId); } heap_close(rel, NoLock);
---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org