Thread: Domains and Indexes
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
Rod Taylor <rbt@zort.ca> writes: > However, I have to wonder why GetDefaultOpClass doesn't simply use the > first Binary Compatible opclass. Because that would completely destroy the point of having multiple opclasses for a datatype: you'd only do so if they *act different*. Therefore, having the system choose one at random is a Bad Idea(tm). regards, tom lane
Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it within the next 48 hours. --------------------------------------------------------------------------- Rod Taylor wrote: > 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, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Sorry Bruce, this was included as a part of the patch of the below subject: Re: [PATCHES] Dump serials as serial -- not a sequence Patch may be smart enough to say 'already applied'. On Wed, 2002-08-14 at 01:29, Bruce Momjian wrote: > > Your patch has been added to the PostgreSQL unapplied patches list at: > > http://candle.pha.pa.us/cgi-bin/pgpatches > > I will try to apply it within the next 48 hours. > > --------------------------------------------------------------------------- > > > Rod Taylor wrote: > > 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, skipping... ] > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 4: Don't 'kill -9' the postmaster > > -- > Bruce Momjian | http://candle.pha.pa.us > pgman@candle.pha.pa.us | (610) 359-1001 > + If your life is a hard drive, | 13 Roberts Road > + Christ can be your backup. | Newtown Square, Pennsylvania 19073 > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org >
Thanks. I will keep it in the queue for CVS commit message sake. --------------------------------------------------------------------------- Rod Taylor wrote: > Sorry Bruce, this was included as a part of the patch of the below > subject: > > Re: [PATCHES] Dump serials as serial -- not a sequence > > > Patch may be smart enough to say 'already applied'. > > > On Wed, 2002-08-14 at 01:29, Bruce Momjian wrote: > > > > Your patch has been added to the PostgreSQL unapplied patches list at: > > > > http://candle.pha.pa.us/cgi-bin/pgpatches > > > > I will try to apply it within the next 48 hours. > > > > --------------------------------------------------------------------------- > > > > > > Rod Taylor wrote: > > > 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, skipping... ] > > > > > > > > ---------------------------(end of broadcast)--------------------------- > > > TIP 4: Don't 'kill -9' the postmaster > > > > -- > > Bruce Momjian | http://candle.pha.pa.us > > pgman@candle.pha.pa.us | (610) 359-1001 > > + If your life is a hard drive, | 13 Roberts Road > > + Christ can be your backup. | Newtown Square, Pennsylvania 19073 > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 6: Have you searched our list archives? > > > > http://archives.postgresql.org > > > > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Your patch has been added to the PostgreSQL unapplied patches list at: http://candle.pha.pa.us/cgi-bin/pgpatches I will try to apply it within the next 48 hours. --------------------------------------------------------------------------- Rod Taylor wrote: > 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, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
[ Sorry for previous message saying it was added to queue.] Patch applied. Thanks. --------------------------------------------------------------------------- Rod Taylor wrote: > 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, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
I backed this out. It is part of a later patch still in the queue. --------------------------------------------------------------------------- Bruce Momjian wrote: > > [ Sorry for previous message saying it was added to queue.] > > Patch applied. Thanks. > > --------------------------------------------------------------------------- > > > Rod Taylor wrote: > > 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, skipping... ] > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 4: Don't 'kill -9' the postmaster > > -- > Bruce Momjian | http://candle.pha.pa.us > pgman@candle.pha.pa.us | (610) 359-1001 > + If your life is a hard drive, | 13 Roberts Road > + Christ can be your backup. | Newtown Square, Pennsylvania 19073 > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073