OSDN Git Service

Make domain types indexable. Rod Taylor & Tom Lane.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 16 Aug 2002 20:55:09 +0000 (20:55 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 16 Aug 2002 20:55:09 +0000 (20:55 +0000)
src/backend/commands/indexcmds.c
src/backend/utils/adt/ruleutils.c

index 3500303..6310cfc 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.83 2002/08/15 03:04:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.84 2002/08/16 20:55:09 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -482,6 +482,9 @@ GetDefaultOpClass(Oid attrType, Oid accessMethodId)
        Oid                     exactOid = InvalidOid;
        Oid                     compatibleOid = InvalidOid;
 
+       /* If it's a domain, look at the base type instead */
+       attrType = getBaseType(attrType);
+
        /*
         * We scan through all the opclasses available for the access method,
         * looking for one that is marked default and matches the target type
index 302f9a7..e9c197a 100644 (file)
@@ -3,7 +3,7 @@
  *                             back to source text
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.114 2002/08/08 17:00:19 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.115 2002/08/16 20:55:09 tgl Exp $
  *
  *       This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -2660,6 +2660,10 @@ get_opclass_name(Oid opclass, Oid actual_datatype,
        char       *opcname;
        char       *nspname;
 
+       /* Domains use their base type's default opclass */
+       if (OidIsValid(actual_datatype))
+               actual_datatype = getBaseType(actual_datatype);
+
        ht_opc = SearchSysCache(CLAOID,
                                                        ObjectIdGetDatum(opclass),
                                                        0, 0, 0);