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

Reply via email to