pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
Domains and Indexes
8+ messages / 3 participants
[nested] [flat]

* Domains and Indexes
@ 2002-08-11 21:15  Rod Taylor <rbt@zort.ca>
  0 siblings, 4 replies; 8+ messages in thread

From: Rod Taylor @ 2002-08-11 21:15 UTC (permalink / raw)
  To: 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.

Attachments:

index.patch (text/x-patch, 698B) download Index: src/backend/commands/indexcmds.c =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/indexcmds.c,v retrieving revision 1.80 diff -c -r1.80 indexcmds.c *** src/backend/commands/indexcmds.c 2002/08/02 18:15:06 1.80 --- src/backend/commands/indexcmds.c 2002/08/11 21:14:13 *************** *** 482,487 **** --- 482,490 ---- Oid exactOid = InvalidOid; Oid compatibleOid = InvalidOid; + /* It could be a domain */ + 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
^ permalink raw reply [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-11 21:32  Tom Lane <tgl@sss.pgh.pa.us>
  parent: Rod Taylor <rbt@zort.ca>
  3 siblings, 0 replies; 8+ messages in thread

From: Tom Lane @ 2002-08-11 21:32 UTC (permalink / raw)
  To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers

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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-14 05:29  Bruce Momjian <pgman@candle.pha.pa.us>
  parent: Rod Taylor <rbt@zort.ca>
  3 siblings, 1 reply; 8+ messages in thread

From: Bruce Momjian @ 2002-08-14 05:29 UTC (permalink / raw)
  To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers


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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-14 11:55  Rod Taylor <rbt@zort.ca>
  parent: Bruce Momjian <pgman@candle.pha.pa.us>
  0 siblings, 1 reply; 8+ messages in thread

From: Rod Taylor @ 2002-08-14 11:55 UTC (permalink / raw)
  To: Bruce Momjian <pgman@candle.pha.pa.us>; +Cc: pgsql-hackers

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
> 





^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-14 17:38  Bruce Momjian <pgman@candle.pha.pa.us>
  parent: Rod Taylor <rbt@zort.ca>
  0 siblings, 0 replies; 8+ messages in thread

From: Bruce Momjian @ 2002-08-14 17:38 UTC (permalink / raw)
  To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers


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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-15 02:53  Bruce Momjian <pgman@candle.pha.pa.us>
  parent: Rod Taylor <rbt@zort.ca>
  3 siblings, 0 replies; 8+ messages in thread

From: Bruce Momjian @ 2002-08-15 02:53 UTC (permalink / raw)
  To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers


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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-15 02:54  Bruce Momjian <pgman@candle.pha.pa.us>
  parent: Rod Taylor <rbt@zort.ca>
  3 siblings, 1 reply; 8+ messages in thread

From: Bruce Momjian @ 2002-08-15 02:54 UTC (permalink / raw)
  To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers


[ 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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread

* Re: Domains and Indexes
@ 2002-08-15 03:04  Bruce Momjian <pgman@candle.pha.pa.us>
  parent: Bruce Momjian <pgman@candle.pha.pa.us>
  0 siblings, 0 replies; 8+ messages in thread

From: Bruce Momjian @ 2002-08-15 03:04 UTC (permalink / raw)
  To: Bruce Momjian <pgman@candle.pha.pa.us>; +Cc: Rod Taylor <rbt@zort.ca>; pgsql-hackers


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



^ permalink  raw  reply  [nested|flat] 8+ messages in thread


end of thread, other threads:[~2002-08-15 03:04 UTC | newest]

Thread overview: 8+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2002-08-11 21:15 Domains and Indexes Rod Taylor <rbt@zort.ca>
2002-08-11 21:32 ` Tom Lane <tgl@sss.pgh.pa.us>
2002-08-14 05:29 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-14 11:55   ` Rod Taylor <rbt@zort.ca>
2002-08-14 17:38     ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 02:53 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 02:54 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 03:04   ` Bruce Momjian <pgman@candle.pha.pa.us>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox