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

index 3500303d824cc6677e2101fb5869233d1f46cb95..6310cfc7e5a210d7a2db8cf3f3daec3423e04825 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 302f9a75ce77ba9490c87be6e36e31a7179a07db..e9c197aa35aaecbe5008a367d1dc2fe055d6830e 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);