From ad7d3bddeabfc46c007e211f8ef4d45180b2d638 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 16 Aug 2002 20:55:09 +0000
Subject: [PATCH] Make domain types indexable.  Rod Taylor & Tom Lane.

---
 src/backend/commands/indexcmds.c  | 5 ++++-
 src/backend/utils/adt/ruleutils.c | 6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 3500303d824..6310cfc7e5a 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -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
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 302f9a75ce7..e9c197aa35a 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -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);
-- 
GitLab