mirror of
https://github.com/postgres/postgres.git
synced 2025-11-16 15:02:33 +03:00
Appears there is a problem finding the opclass when indexing a domain.
CREATE DOMAIN newint as int4;
CREATE TABLE tab (col newint unique);
ERROR: data type newint has no default operator class for access method
"btree"
You must specify an operator class for the index or define a
default operator class for the data type
Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
compatible matches. Fetching getBaseType() of the attribute fixes the
problem for domains (see attachment).
Rod Taylor
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.81 2002/08/07 21:45:01 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.82 2002/08/15 02:53:35 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@@ -482,6 +482,9 @@ GetDefaultOpClass(Oid attrType, Oid accessMethodId)
|
|||||||
Oid exactOid = InvalidOid;
|
Oid exactOid = InvalidOid;
|
||||||
Oid compatibleOid = InvalidOid;
|
Oid compatibleOid = InvalidOid;
|
||||||
|
|
||||||
|
/* It could be a domain */
|
||||||
|
attrType = getBaseType(attrType);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We scan through all the opclasses available for the access method,
|
* We scan through all the opclasses available for the access method,
|
||||||
* looking for one that is marked default and matches the target type
|
* looking for one that is marked default and matches the target type
|
||||||
|
|||||||
Reference in New Issue
Block a user