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