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.
11 Aug 2002 17:15:47 -0400
Rod Taylor <rbt@zort.ca>
Domains and Indexes
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

Sun, 11 Aug 2002 17:32:15 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: Domains and Indexes 

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

Wed, 14 Aug 2002 01:29:35 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Domains and Indexes
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
> 



14 Aug 2002 07:55:52 -0400
Rod Taylor <rbt@zort.ca>
Re: Domains and Indexes

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, Pennsylvania 19073

Wed, 14 Aug 2002 13:38:59 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Domains and Indexes

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

Wed, 14 Aug 2002 22:53:46 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Domains and Indexes

[ 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

Wed, 14 Aug 2002 22:54:05 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Domains and Indexes

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, Pennsylvania 19073

Wed, 14 Aug 2002 23:04:09 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Domains and Indexes