| From: | Rod Taylor <rbt(at)zort(dot)ca> |
|---|---|
| To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Domains and Indexes |
| Date: | 2002-08-11 21:15:47 |
| Message-ID: | 1029100548.239.7.camel@jester |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
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).
However, I have to wonder why GetDefaultOpClass doesn't simply use the
first Binary Compatible opclass. When there is more than one usable it
doesn't do anything useful.
| Attachment | Content-Type | Size |
|---|---|---|
| index.patch | text/x-patch | 699 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2002-08-11 21:17:35 | pgsql-server/ oc/src/sgml/release.sgml rc/back ... |
| Previous Message | Joe Conway | 2002-08-11 20:09:43 | Re: [GENERAL] workaround for lack of REPLACE() function |